Grub-Reparaturen

Grub 2: So optimieren Sie den Linux-Bootmanager

Der Bootloader Grub 2 sorgt für den Start von Linux und anderen Systemen. Wie Sie Grub 2 anpassen und bei Problemen reparieren, lesen Sie in diesem Artikel.

Der Grand Unified Bootloader 2 ist bei fast allen Linux-Distributionen Standard. Der Bootloader ist das erste Programm, das ein PC nach dem Einschalten ausführt. Er ermöglicht über ein Menü die Wahl zwischen mehreren Betriebssystemen. Ist nur Linux installiert, lädt er den Kernel, der dann das Betriebssystem initialisiert. Bei einer Multiboot-Konfiguration leitet Grub die Anforderung beispielsweise an den Windows-Bootloader weiter.

Grub 2 muss mit einer Vielzahl unterschiedlicher Konfigurationen zurechtkommen. Aktuelle PCs booten standardmäßig von einer Partition im GPT-Format und verwenden Uefi-Firmware. Bei älteren PCs gibt es ein Bios und MBR-Partitionen. Linux kann auf Partitionen mit den Dateisystemen Ext2 bis Ext4 oder BTRFS installiert sein. Und dann gilt es auch noch, Soft- und Hardware-Raid und LVM zu berücksichtigen.

Wie Sie mögliche Fehler beheben und Grub 2 individuell anpassen, erfahren Sie in diesem Artikel. Wir beziehen uns auf Ubuntu 15.04. Die Anleitungen funktionieren genau so oder ganz ähnlich auch bei anderen Distributionen.

1. So funktioniert Grub 2

Super Grub 2 Disk sucht nach Installationen auf der Festplatte und zeigt sie in einem Menü an. Der Linux-Start funktioniert auch bei defekter Grub-Umgebung.
Super Grub 2 Disk sucht nach Installationen auf der Festplatte und zeigt sie in einem Menü an. Der Linux-Start funktioniert auch bei defekter Grub-Umgebung.

Bei herkömmlichem Bios werden bei der Linux-Installation 512 Bytes des Grub-2-Bootloaders („boot.img“) in den MBR (Master Boot Record) der ersten Festplatte geschrieben. Damit findet der Bootloader den ersten Sektor der Datei „/boot/grub/core.img“ und führt den enthaltenen Code aus. Dieser lädt Module, die für den Zugriff auf das Dateisystem nötig sind, und zeigt das Bootmenü an.

Ist Linux im Uefi-Modus installiert, liegt der Bootloader in der EFI-Partition, die in das Dateisystem unter „/boot/efi“ eingebunden ist. Für jedes System gibt es ein eigenes Verzeichnis – etwa „/boot/efi/EFI/ubuntu“. Die Bootloader-Dateien „grubx64.efi. shimx64.efi“ und „MokManager.efi“ sind in einer Secure-Boot-Umgebung nötig. „grub.cfg“ enthält einen Verweis auf die Konfigurationsdatei „/boot/grub/grub.cfg“, die Definitionen für das Bootmenü enthält.

Die Konfiguration von Grub 2 erfolgt automatisch über die Scripts unter „/etc/grub.d“. Das wichtigste Script „10_linux“ sucht unter „/boot“ nach Linux-Kerneln („vmlinuz-*“) und Ramdisk-Dateien („initrd.img-*“) und erstellt die Einträge für das Bootmenü. „30_os-prober“ ist für die Suche nach Betriebssystemen wie Mac-OS und Windows zuständig. „30_uefi_firmware“ bindet Dateien von der EFI-Partition ins Menü ein. Die Scripts werden bei jedem Upgrade auf einen neuen Kernel automatisch ausgeführt.


Standards setzen: Variablen in der Datei „/etc/default/grub“ steuern das Verhalten von Grub 2. Sie können etwa einen höheren Wert hinter „GRUB_TIMEOUT=“ eintragen, um die Wartezeit zu verlängern, bevor das Standardsystem bootet. Die Angaben hinter „GRUB_CMDLINE_LINUX_DEFAULT“ werden als Kernel-Parameter an den Standardeintrag angehängt. Bei Ubuntu steht hier „quiet splash“. Wenn Sie beide Parameter entfernen, sehen Sie beim Booten zur Diagnose von Fehlern die Textausgaben des Systems auf dem Bildschirm.

Nach Änderungen aktualisieren Sie die Konfiguration mit diesem Terminal-Befehl:

sudo update-grub

Das Script führt der Reihe nach alle Scripts in „/etc/grub.d“ aus, ermittelt dabei alle Betriebssysteme und erstellt die Datei „/boot/grub/grub.cfg“. Dabei werden auch Systeme berücksichtigt, die Sie auf einem USB-Laufwerk eingerichtet haben. Wenn Sie das nicht wünschen, entfernen Sie die USB-Datenträger vorher.