Answers:
没有区别。
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
,虽然,这都是由像包提供grub-pc
提供GRUB2。此外,/usr/sbin/update-grub
它实际上只是一个简短的shell脚本,它通过另一个命令来完成其大部分工作,我们可以查看其完整的三行源代码(在Ubuntu 12.04中),以查看用于调用它的名称没有被检查:
#!/bin/sh
set -e
exec grub-mkconfig -o /boot/grub/grub.cfg "$@"
"$@"
扩展到名称update-grub
或之后传递的所有命令行参数update-grub2
,但不扩展名称本身。这是脚本中唯一检查命令行语法的地方。