Was ist der Unterschied zwischen update-grub und update-grub2?

51

Ich nehme einige Änderungen an meiner Grub-Datei unter vor /etc/default/grub. In einigen Tutorials habe ich sudo update-grubund andere gesehen sudo update-grub2. Was ist der Unterschied?

Gerep
quelle

Antworten:

66

Es gibt keinen Unterschied.

Ubuntu 9.10 und höher haben GRUB2 installiert, sudo update-grubhat sich jedoch als Standardbefehl durchgesetzt.

sudo update-grubund sudo update-grub2sind gleichwertig, es spielt also keine Rolle, welchen Sie ausführen. /usr/sbin/update-grub2ist 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-grub2und update-grubobwohl, die von Paketen beide vorgesehen sind , wie grub-pcdiese bieten GRUB2. Darüber hinaus /usr/sbin/update-grubhandelt 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-gruboder ü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.

Eliah Kagan
quelle