Die Grub Shell

Aus DebianforumWiki
Zur Navigation springen Zur Suche springen
Wiki ‹ Rund um den Kernel ‹ Die Grub Shell


LizenzOffen.png Lizenz: Dieser Artikel wurde als problematisch in Bezug auf der Lizenz markiert, dafür kann es verschiedene Gründe geben:
  • die Lizenz des Ursprünglichen Artikels ist unbekannt oder nicht kompatiblen mit der CC by SA
  • durch die Migration wurden der/die ursprüngliche(n) Autor(en) aus der History gelöscht
  • es wurden Inhalte ohne Zustimmung des ursprünglichen Autors übernommen
  • es gibt andere urheberrechtliche Bedenken gegen diesen Artikel.

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