没有区别。

Ubuntu 9.10及更高版本已安装GRUB2,但sudo update-grub仍然以标准命令为准。

sudo update-grubsudo update-grub2是等同的,所以运行哪一个并不重要。 /usr/sbin/update-grub2仅仅是一个符号链接到/usr/sbin/update-grub

ls -l `which update-grub update-grub2`
#output
-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-grub2update-grub不一样的区别,虽然,这都是由像包提供grub-pc提供GRUB2。此外,/usr/sbin/update-grub实际上只是一个简短的shell脚本,通过另一个命令完成大部分工作,我们可以看看它的完整的3行源代码(在Ubuntu 12.04中),看看用于调用它的名称没有被检查:

#!/bin/sh
set -e
exec grub-mkconfig -o /boot/grub/grub.cfg "$@"

"$@"扩展到所有的名字后,通过命令行参数update-grubupdate-grub2,但不是这个名字本身。而这是脚本中唯一一个检查命令行语法的地方。

所以,一般情况直接运行sudo update-grub即可。

参考:

https://askubuntu.com/questions/167763/what-is-difference-between-update-grub-and-update-grub2

https://askubuntu.com/questions/591873/why-is-there-an-update-grub-and-a-update-grub2-command

05-11 18:17