Wprowadzam zmiany w moim pliku grub pod /etc/default/grub
. W niektórych tutorialach, które widziałem sudo update-grub
i innych sudo update-grub2
. Jaka jest różnica?
Nie ma różnicy.
Ubuntu 9.10 i nowsze mają GRUB2 zainstalowany, ale sudo update-grub
nadal dominuje jako standardowe polecenie.
sudo update-grub
i sudo update-grub2
są równoważne, więc nie ma znaczenia, który z nich uruchomisz. /usr/sbin/update-grub2
to tylko symboliczny link do /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
W rzeczywistości, ogólnie mówiąc, czasami jedno polecenie może być dowiązaniem symbolicznym drugiego, a jednak zachowują się inaczej, ponieważ plik wykonywalny sprawdza, w jaki sposób zostało wywołane (tj. Pod jaką nazwą) i zachowuje się odpowiednio.
Oznacza to nie sprawa dla update-grub2
i update-grub
chociaż, które są dostarczane przez oba pakiety, np grub-pc
które zapewniają Grub2. Co więcej, w /usr/sbin/update-grub
rzeczywistości jest to tylko krótki skrypt powłoki, który wykonuje większość swojej pracy za pomocą innego polecenia, i możemy spojrzeć na jego pełny 3-liniowy kod źródłowy (w Ubuntu 12.04), aby zobaczyć, że nazwa użyta do wywołania go nie jest sprawdzana:
#!/bin/sh
set -e
exec grub-mkconfig -o /boot/grub/grub.cfg "$@"
"$@"
rozwija się do wszystkich argumentów wiersza poleceń przekazanych po nazwie update-grub
lub update-grub2
, ale nie samej nazwy. I to jest jedyne miejsce w skrypcie, w którym w ogóle sprawdzana jest składnia wiersza poleceń.