Die Grub Shell
Lizenz: Dieser Artikel wurde als problematisch in Bezug auf der Lizenz markiert, dafür kann es verschiedene Gründe geben:
Bitte hilf mit alle diese Fragen zunächst zu klären, danach kann dieser Hinweis entfernt werden. |
Die Grub Shell
Es kann ja mal passieren, dass man eine Festplatte mit einem nicht mehr benötigten Betriebsystem ausbaut, oder eine Partition löscht, so dass die Angaben in der `/boot/grub/menu.lst` nicht mehr stimmen. Selbstverständlich hat jeder für so einen Fall eine Live-CD in der Westentasche und führt in einer `chroot`-Umgebung `update-grub` aus und gut. Es gibt aber noch einen anderen Weg über den Grub Prompt, der den Vorteil hat, dass man keine Live-CD benötigt und sich den Umweg über `chroot` spart. Die schlichten Voraussetzungen bestehen darin, dass `grub` geladen wird und man in etwa weiß, wo die Rootpartition zu suchen ist.
Nomenklatur
Grub fängt bei Null an zu zählen und verwendet keine Buchstaben. Die erste Zahl entspricht den Festplatten, die zweite den Partitionen. So drückt sich `dev/hda2` bei grub in `(hd0,1)` aus.
US-Layout der Tastatur
Hier ist noch kein lokales Tastaturlayout vorhanden, daher muss man ein paar Tasten anders bedienen als beschriftet. Zum Beispiel:
Taste(nkombi) | Ausgabe im US-Layout |
---|---|
z | y |
y | z |
- | / |
Shift+- | ? |
< | \ |
Shift+< | | |
ö | ; |
Shift-ö | : |
ä | ' |
Shift+ä | " |
ß | - |
´ | = |
Shift+2 | @ |
Shift+3 | # |
Shift+8 | * |
Shift+9 | ( |
Shift+0 | ) |
Rootdevice, Kernel und Initrd laden
Beim Booten erscheint das Auswahlmenü von Grub, welches aber durch die Veränderung der Konstellation der Festplatten und/oder Partitionen keinen Zugriff auf den Kernel liefert. Also muss es abgebrochen werden, was mit der Taste "c" erreicht wird. Nun erscheint das Grub-Prompt:
grub>
Zwingend erforderlich sind nun zwei Angaben:
a. Die Partition, auf welcher sich der Kernel befindet. a. Der Pfad zum Kernel und Optionen für denselben.
Nehmen wir an, der Kernel befindet sich auf `/dev/hda5`, so folgt die Eingabe:
grub> root (hd0,4) Filesystem is ext2fs, partition type 0x03
Die zweite Zeile ist die Erfolgsmeldung, es ist eine Linuxpartition erwischt worden. Falls ein Fehler gemeldet wird, liegt entweder ein Syntaxfehler vor oder man hat die falsche Partition erwischt. Das ist aber unbesorglich, kaputtgehen kann hier gar nichts, einfach noch einmal probieren.
Übrigens verfügt die Grub-Shell an diesem Punkt schon über eine History, so dass man mit <Pfeil oben> den letzten Befehl lädt und ihn bearbeiten kann.
Die Kommandos, welche die Grub-Shell zur Verfügung stellt, kann man mit
grub> help
abrufen. Weitere Informationen zu einem bestimmten Befehl gibt
grub> help BEFEHL
Hier kann es nützlich sein, die `menu.lst` einzusehen.
grub> cat /boot/grub/menu.lst
Der Befehl `cat` verhält sich hier ähnlich wie `more`, so dass die Datei seitenweise durchgeblättert wird.
Sodann muss der Kernel mit seinen Optionen geladen werden:
grub> kernel /vmlinuz root=/dev/hda5 ro vga=791 [Linux-bzImage, setup 0x1e00, size=0x134055]
Widerum ist die zweite Zeile die Bestätigung, dass der Befehl erfolgreich war.
Nun folgen noch
grub> initrd /initrd.img
und
Booten
grub> boot