Відповіді:
Різниці немає.
У 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
, але не самого цього імені. І це єдине місце в сценарії, що синтаксис командного рядка перевіряється взагалі.