Grub2 Installation
GRUB neu installieren
Diese Seite beschreibt, wie der Bootloader nach einem Defekt wieder
hergestellt wird. Voraussetzung ist ein System, das entweder normal läuft
oder über ein Rescue-System mit chroot erreichbar ist.
- Vor allen Schritten den Firmware-Modus feststellen
- [ -d /sys/firmware/efi ] && echo UEFI || echo BIOS
Der Modus entscheidet, welcher der beiden folgenden Abschnitte gilt. Ein im BIOS-Modus installiertes System lässt sich nicht durch Umschalten der Firmware auf EFI starten und umgekehrt.
Debian
MBR
- Grub wird in den MBR der angegebenen Festplatte geschrieben
- grub-install /dev/sda
- Erstellen der GRUB-Konfigurationsdatei
- update-grub
Geschrieben werden dabei zwei Bereiche: die ersten 446 Byte der Platte
mit dem Bootcode und der Bereich ab Sektor 1 bis zum Beginn der ersten
Partition mit core.img. Die Partitionstabelle in Byte 447
bis 510 bleibt unangetastet.
- Benötigtes Paket
- apt install grub-pc
EFI
- Grub wird in die EFI-Systempartition geschrieben
- grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=debian --recheck
- Erstellen der GRUB-Konfigurationsdatei
- update-grub
- Kontrolle der Firmware-Einträge
- efibootmgr -v
--bootloader-id=debian legt das Verzeichnis
/boot/efi/EFI/debian an und erzeugt gleichzeitig den
passenden Eintrag im NVRAM der Firmware. --recheck verwirft
eine vorhandene Gerätezuordnung und ermittelt sie neu – sinnvoll, wenn
sich die Plattenreihenfolge geändert hat.
- Benötigte Pakete
- apt install grub-efi-amd64 shim-signed
- Ablage der Konfiguration
- /boot/grub/grub.cfg
update-grub ist unter Debian nur ein Aufruf von
grub-mkconfig -o /boot/grub/grub.cfg. Die Menüeinträge
werden dabei vollständig neu aus den vorhandenen Kerneln in
/boot erzeugt.
Rocky
MBR
- Grub wird in den MBR der angegebenen Festplatte geschrieben
- grub2-install /dev/sda
- Erstellen der GRUB-Konfigurationsdatei
- grub2-mkconfig -o /boot/grub2/grub.cfg
- Benötigtes Paket
- dnf install grub2-pc
Bei einer Installation, die von vornherein im EFI-Modus aufgesetzt wurde,
ist grub2-pc nicht vorhanden und grub2-install
schlägt mit einer Fehlermeldung zum fehlenden Zielformat fehl.
EFI
Unter Rocky wird der Bootloader in der EFI-Systempartition nicht mit
grub2-install geschrieben, sondern über die Pakete
bereitgestellt. Die Binärdateien sind signiert, ein selbst erzeugter
Loader würde unter Secure Boot von der Firmware abgelehnt.
- Bootloader und Shim aus den Paketen wiederherstellen
- dnf reinstall grub2-efi-x64 shim-x64
- Erstellen der GRUB-Konfigurationsdatei
- grub2-mkconfig -o /boot/grub2/grub.cfg
- Firmware-Eintrag neu anlegen, falls er fehlt
- efibootmgr -c -d /dev/sda -p 1 -L "Rocky Linux" -l '\EFI\rocky\shimx64.efi'
- Kontrolle der Firmware-Einträge
- efibootmgr -v
Bei efibootmgr -c bezeichnet -d die Platte und
-p die Nummer der EFI-Systempartition. Der Pfad hinter
-l wird mit Backslashes angegeben, weil die Firmware ihn so
erwartet, und muss in einfache Anführungszeichen gesetzt werden, damit die
Shell die Backslashes nicht interpretiert.
ℹ️ Hinweis: Unter Rocky liegt die erzeugte Konfiguration für BIOS und EFI
gleichermaßen unter /boot/grub2/grub.cfg. Die Datei
/boot/efi/EFI/rocky/grub.cfg ist nur ein Verweis auf diese
Hauptkonfiguration und darf nicht mit grub2-mkconfig
überschrieben werden. Ältere Anleitungen, die für EFI nach
/boot/efi/EFI/redhat/grub.cfg schreiben lassen, stammen aus
der Zeit vor RHEL 9 und führen zu einem nicht mehr startenden System.
Unterschied bei den Menüeinträgen
Debian erzeugt aus den vorhandenen Kerneln eine vollständige
grub.cfg mit allen Menüeinträgen.
Rocky verwendet die Boot Loader Specification: Für jeden Kernel liegt eine
eigene Datei unter /boot/loader/entries, die
grub.cfg liest diese Dateien nur ein.
- Vorhandene Einträge unter Rocky anzeigen
- ls /boot/loader/entries/
- grubby --info=ALL
- Standardkernel unter Rocky setzen
- grubby --set-default /boot/vmlinuz-$(uname -r)
- Bootparameter unter Rocky dauerhaft ergänzen
- grubby --update-kernel=ALL --args="quiet"
Unter Rocky ist grubby damit das Werkzeug für den Alltag;
grub2-mkconfig wird nur nach Änderungen an
/etc/default/grub oder nach einem Defekt der
Hauptkonfiguration benötigt.
Reparatur aus dem Rescue-System
Startet das System gar nicht mehr, wird von einem Installationsmedium im Rettungsmodus gebootet und die Installation eingehängt.
- Dateisysteme einhängen
- mount /dev/sda2 /mnt
- mount /dev/sda1 /mnt/boot/efi
- for i in dev proc sys run; do mount --bind /$i /mnt/$i; done
- In die Installation wechseln
- chroot /mnt
Danach gelten die Kommandos der Abschnitte oben unverändert.
ℹ️ Hinweis: Ohne die eingehängten Verzeichnisse /dev,
/proc und /sys kann grub-install
die Platten nicht erkennen und bricht mit einer Fehlermeldung zur
Gerätezuordnung ab. Das Einhängen von /boot/efi entfällt auf
BIOS-Systemen.