Ich nehme einige Änderungen an meiner Grub-Datei unter /etc/default/grub
vor . In einigen Tutorials habe ich sudo update-grub
gesehen und andere sudo update-grub2
. Was ist der Unterschied?
Beste Antwort
Es gibt keinen Unterschied.
Ubuntu 9.10 und höher haben GRUB2 installiert, aber sudo update-grub
hat sich nach wie vor als Standardbefehl durchgesetzt.
sudo update-grub
und sudo update-grub2
sind gleichwertig, also spielt es keine Rolle, welche Sie ausführen. /usr/sbin/update-grub2
ist nur ein symbolischer Link zu /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
-
Eigentlich allgemein manchmal kann ein Befehl ein symbolischer Link zu einem anderen sein, und doch verhalten sie sich unterschiedlich, weil die ausführbare Datei wie prüft es wurde aufgerufen (d. h. mit welchem Namen) und verhält sich entsprechend.
Das ist nicht der Fall für
update-grub2
undupdate-grub
die beide von Paketen wiegrub-pc
bereitgestellt werden die GRUB2 bereitstellen. Außerdem/usr/sbin/update-grub
ist eigentlich nur ein kurzes Shell-Skript, das den größten Teil seiner Arbeit durch einen weiteren Befehl erledigt, und wir können uns seinen vollständigen dreizeiligen Quellcode (in Ubuntu 12.04) ansehen, um zu sehen, dass der Name, der zum Aufrufen verwendet wird, nicht überprüft wird:#!/bin/sh set -e exec grub-mkconfig -o /boot/grub/grub.cfg "[email protected]"
"[email protected]"
erweitert sich auf alle Befehlszeilenargumente, die nach dem Namenupdate-grub
übergeben werden oderupdate-grub2
, aber nicht diesen Namen selbst. Und dies ist die einzige Stelle im Skript, an der die Befehlszeilensyntax überhaupt überprüft wird.