没有区别。
Ubuntu 9.10及更高版本已安装GRUB2,但sudo update-grub
仍然以标准命令为准。
sudo update-grub
和sudo 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-grub2
和update-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-grub
或update-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