В чем разница между update-grub и update-grub2?

Я делаю некоторые изменения в моем файле grub в /etc/default/grub. В некоторых уроках я видел sudo update-grub и другие sudo update-grub2. В чем разница?

51
задан 23 April 2018 в 19:42

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, хотя оба они предоставляются пакетами, подобными grub-pc, которые предоставляют GRUB2. Кроме того, /usr/sbin/update-grub на самом деле является просто коротким сценарием оболочки, который выполняет большую часть своей работы с помощью еще одной команды, и мы можем посмотреть на его полный трехстрочный исходный код (в Ubuntu 12.04), чтобы увидеть, что имя, используемое для его вызова, является не проверено:

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

    "$@" распространяется на все аргументы командной строки, передаваемые после имени update-grub или update-grub2, но не само это имя. И это единственное место в скрипте, где синтаксис командной строки вообще проверяется.

0
ответ дан 23 April 2018 в 19:42

Другие вопросы по тегам:

Похожие вопросы: