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-grub2aupdate-grubačkoli oba jsou poskytovány balíčky jakogrub-pckteré poskytují GRUB2. Dále/usr/sbin/update-grubje 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-grubneboupdate-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.