Provádím nějaké změny v mém souboru grub pod /etc/default/grub
. V některých návodech jsem viděl sudo update-grub
a další sudo update-grub2
. Jaký je rozdíl?
Nejlepší odpověď
Není v tom žádný rozdíl.
Ubuntu 9.10 a novější mají nainstalovaný GRUB2, ale sudo update-grub
stále převládá jako standardní příkaz.
sudo update-grub
a sudo update-grub2
jsou ekvivalentní, takže nezáleží na tom, který z nich spustíte. /usr/sbin/update-grub2
je pouze symbolický odkaz na /usr/sbin/update-grub
.
[email protected]:~$ 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
-
Vlastně obecně řečeno někdy může být jeden příkaz symbolickým odkazem na jiný, a přesto se chovají jinak, protože spustitelný soubor kontroluje jak bylo vyvoláno (tj. pod jakým jménem) a podle toho se chová.
To není tento případ pro
update-grub2
aupdate-grub
ačkoli oba jsou poskytovány balíčky jakogrub-pc
které poskytují GRUB2. Dále/usr/sbin/update-grub
je ve skutečnosti jen krátký skript shellu, který většinu své práce provádí prostřednictvím dalšího příkazu, a můžeme se podívat na jeho úplný 3řádkový zdrojový kód (v Ubuntu 12.04), abychom viděli, že název použitý k jeho vyvolání není zaškrtnutý:#!/bin/sh set -e exec grub-mkconfig -o /boot/grub/grub.cfg "[email protected]"
"[email protected]"
expanduje na všechny argumenty příkazového řádku předané za jménemupdate-grub
neboupdate-grub2
, ale ne toto jméno samotné. A toto je jediné místo ve skriptu, kde se syntaxe příkazového řádku vůbec kontroluje.