我正在对 下的 grub 文件进行一些更改/etc/default/grub
。在一些教程中我见过sudo update-grub
,而在其他教程中sudo update-grub2
。有什么区别?
答案1
没有区别。
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
though,它们都由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
,但不扩展为名称本身。这是脚本中唯一检查命令行语法的地方。