update-grub 和 update-grub2 有什么区别?

update-grub 和 update-grub2 有什么区别?

我正在对 下的 grub 文件进行一些更改/etc/default/grub。在一些教程中我见过sudo update-grub,而在其他教程中sudo update-grub2。有什么区别?

答案1

没有区别。

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

sudo update-grubsudo 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-grub2update-grubthough,它们都由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,但不扩展为名称本身。这是脚本中唯一检查命令行语法的地方。

相关内容