Відповіді:
Різниці немає.
У 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це лише короткий скрипт оболонки, який робить більшу частину своєї роботи за допомогою ще однієї команди, і ми можемо подивитися на його повний 3-рядковий вихідний код (в Ubuntu 12.04), щоб побачити, що ім'я, яке використовується для виклику, не перевіряється:
#!/bin/sh
set -e
exec grub-mkconfig -o /boot/grub/grub.cfg "$@"
"$@"розширюється на всі аргументи командного рядка, передані після імені update-grubабо update-grub2, але не самого цього імені. І це єдине місце в сценарії, що синтаксис командного рядка перевіряється взагалі.