update-grub和update-grub2有什么区别?
我在/etc/default/grub
下对我的grub文件进行了一些更改。 在一些教程中,我见过sudo update-grub
和其他sudo update-grub2
。 有什么不同?
没有区别。
Ubuntu 9.10及更高版本安装了GRUB2,但是sudo update-grub
仍然作为标准命令占了上风。
sudo update-grub
和sudo update-grub2
是等价的,所以你运行哪一个并不重要。 /usr/sbin/update-grub2
只是/usr/sbin/update-grub
的符号链接 。
ek@Del:~$ ls -l `which update-grub update-grub2` -rwxr-xr-x 1 root root 64 May 17 03:07 /usr/sbin/update-grub lrwxrwxrwx 1 root root 11 May 17 03:22 /usr/sbin/update-grub2 -> update-grub
-
实际上, 一般来说,有时一个命令可以是另一个命令的符号链接,但它们的行为却不同,因为可执行文件检查它是如何被调用的(即,以什么名称)并相应地表现。
但不是
update-grub2
和update-grub
,它们都是由提供GRUB2的grub-pc
等软件包提供的。 此外,/usr/sbin/update-grub
实际上只是一个简短的shell脚本,通过另一个命令完成大部分工作,我们可以查看其完整的3行源代码(在Ubuntu 12.04中)以查看该名称用于调用它的未检查:#!/bin/sh set -e exec grub-mkconfig -o /boot/grub/grub.cfg "$@"
"$@"
扩展到名称update-grub
或update-grub2
之后传递的所有命令行参数,但不是该名称本身。 这是脚本中唯一一个检查命令行语法的地方。