Ich nehme einige Änderungen an meiner Grub-Datei unter vor /etc/default/grub
. In einigen Tutorials habe ich sudo update-grub
und andere gesehen sudo update-grub2
. Was ist der Unterschied?
Es gibt keinen Unterschied.
Ubuntu 9.10 und höher haben GRUB2 installiert, sudo update-grub
hat sich jedoch als Standardbefehl durchgesetzt.
sudo update-grub
und sudo update-grub2
sind gleichwertig, es spielt also keine Rolle, welchen Sie ausführen. /usr/sbin/update-grub2
ist nur eine symbolische Verknüpfung zu /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
Tatsächlich kann im Allgemeinen manchmal ein Befehl eine symbolische Verknüpfung eines anderen sein, und dennoch verhalten sie sich unterschiedlich, da die ausführbare Datei prüft, wie sie aufgerufen wurde (dh mit welchem Namen) und sich entsprechend verhält.
Das ist nicht der Fall für update-grub2
und update-grub
obwohl, die von Paketen beide vorgesehen sind , wie grub-pc
diese bieten GRUB2. Darüber hinaus /usr/sbin/update-grub
handelt es sich eigentlich nur um ein kurzes Shell-Skript, das die meiste Arbeit über einen weiteren Befehl leistet, und wir können anhand des vollständigen dreizeiligen Quellcodes (in Ubuntu 12.04) feststellen, dass der zum Aufrufen verwendete Name nicht überprüft wurde:
#!/bin/sh
set -e
exec grub-mkconfig -o /boot/grub/grub.cfg "$@"
"$@"
Erweitert auf alle Befehlszeilenargumente, die nach dem Namen update-grub
oder übergeben werden update-grub2
, jedoch nicht auf diesen Namen. Und dies ist die einzige Stelle im Skript, an der die Befehlszeilensyntax überhaupt überprüft wird.