Die Hauptaufgabe des Bootloaders Grub 2 besteht darin, den Linux-Kernel von der Festplatte zu starten. Grub kann auch das Kommando an andere Bootloader übergeben, etwa dem von Windows, und Systeme aus ISO-Dateien booten. Das ist beispielsweise für Diagnosetools oder Reparatursysteme nützlich. Für die Untersuchung der Bootumgebung bietet Grub eine eigene Shell, über die sich das System auch manuell starten lässt. Die Bedienung ist zwar wenig intuitiv, bei Startproblemen kann die Grub-Shell jedoch eine große Hilfe sein.
Grub funktioniert in der Regel auch dann noch, wenn etwas falsch konfiguriert ist und Linux deswegen nicht startet. Zur Analyse der Grub-beziehungsweise Bootumgebung dient die Grub-Shell. Bei Fehlern landen Sie meist automatisch in der Shell. Wenn nicht, halten Sie nach dem Einschalten des PCs die Shift-Taste gedrückt. Danach sehen Sie das Grub-Menü und gelangen über die C-Taste in die Shell.
Die Bedienung der Grub-Shell erfolgt ähnlich wie in einem Terminalfenster der Bash-Shell unter Linux. Welche Befehle es gibt, lassen Sie sich über
pager=1
help
anzeigen, jeweils gefolgt von der Eingabetaste. Grub verwendet die US-amerikanische Tastaturbelegung. Wo Sie die Zeichen auf einer deutschen Tastatur finden, zeigt die Tabelle „Tastaturbelegung in der Grub-Shell“. „pager=1“ sorgt bei der langen Liste für die Ausgabe jeweils einer Bildschirmseite, mit der Leertaste blättern Sie weiter.
Sie benötigen nur wenige Befehle, um ein Linux-System zu starten. Mit
ls
lassen Sie sich die Partitionen anzeigen. Tippen Sie
ls (hd
ein und drücken Sie die Tab-Taste. Grub gibt dann als mögliche Geräte beispielsweise „hd0 hd1“ aus. Angenommen, Linux ist auf der ersten Partition der ersten Festplatte mit MBR-Partitionsstil installiert. Wenn Sie
ls (hd0,
eintippen und dann die Tab-Taste drücken, ergänzt Grub automatisch „ls (hd0, msdos1)“, wenn nur eine Partition vorhanden ist. Andernfalls sehen Sie Angaben zu den möglichen Partitionen, die Sie dann selbst ergänzen müssen. An das Ende der Zeile fügen Sie noch ein „/“ an, dann können Sie sich mit der Tab-Taste Ordner und Dateien anzeigen lassen. Den Inhalt eines Ordners ermitteln Sie etwa mit
ls (hd0,msdos1)/boot/
gefolgt von der Tab-Taste. Hier liegen der Linux-Kernel und die dazugehörige Ramdisk. Mit den folgenden vier Zeilen lässt sich ein Linux-System starten:
set root=(hd0,msdos1)
linux /boot/vmlinuz-4.15.0-29- generic root=/dev/sd[XY] ro
initrd /boot/initrd.img-4.15.0-29 generic
boot
Die Namen der Dateien passen Sie für Ihr System an, „/dev/sd[XY]“ ersetzen Sie durch den Gerätepfad der Linux-Installation. Bei „hd0,msdos1“ ist das „/dev/sda1“, bei „hd1,msdos1“ verwenden Sie „/dev/sdb1“ und so weiter. Sollte das System im Uefi-Modus installiert sein, lautet die Bezeichnung der Partition beispielsweise „hd0,gpt2“, was im Dateisystem „/dev/sda2“ entspricht.
Wurde Linux erfolgreich gestartet, lässt sich Grub über diese beiden Befehlszeilen im Terminal neu installieren:
grub-install /dev/sd[X]
update-grub
„/dev/sd[X]“ ersetzen Sie durch den Laufwerkspfad der Festplatte, auf der das System installiert ist. Bei einem Uefi-System genügt „update-grub“.