Grub2 Installation: Unterschied zwischen den Versionen
| (5 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
| Zeile 1: | Zeile 1: | ||
| − | =MBR= | + | = GRUB neu installieren = |
| − | Grub wird in den MBR der | + | |
| − | + | Diese Seite beschreibt, wie der Bootloader nach einem Defekt wieder | |
| − | *grub-install /dev/sda | + | hergestellt wird. Voraussetzung ist ein System, das entweder normal läuft |
| − | + | oder über ein Rescue-System mit <code>chroot</code> erreichbar ist. | |
| − | *grub- | + | |
| − | =EFI= | + | ;Vor allen Schritten den Firmware-Modus feststellen |
| − | *grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id= | + | * [ -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 <code>core.img</code>. 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 | ||
| + | |||
| + | <code>--bootloader-id=debian</code> legt das Verzeichnis | ||
| + | <code>/boot/efi/EFI/debian</code> an und erzeugt gleichzeitig den | ||
| + | passenden Eintrag im NVRAM der Firmware. <code>--recheck</code> 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 | ||
| + | |||
| + | <code>update-grub</code> ist unter Debian nur ein Aufruf von | ||
| + | <code>grub-mkconfig -o /boot/grub/grub.cfg</code>. Die Menüeinträge | ||
| + | werden dabei vollständig neu aus den vorhandenen Kerneln in | ||
| + | <code>/boot</code> 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 <code>grub2-pc</code> nicht vorhanden und <code>grub2-install</code> | ||
| + | schlägt mit einer Fehlermeldung zum fehlenden Zielformat fehl. | ||
| + | |||
| + | === EFI === | ||
| + | |||
| + | Unter Rocky wird der Bootloader in der EFI-Systempartition nicht mit | ||
| + | <code>grub2-install</code> 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 <code>efibootmgr -c</code> bezeichnet <code>-d</code> die Platte und | ||
| + | <code>-p</code> die Nummer der EFI-Systempartition. Der Pfad hinter | ||
| + | <code>-l</code> 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 <code>/boot/grub2/grub.cfg</code>. Die Datei | ||
| + | <code>/boot/efi/EFI/rocky/grub.cfg</code> ist nur ein Verweis auf diese | ||
| + | Hauptkonfiguration und darf nicht mit <code>grub2-mkconfig</code> | ||
| + | überschrieben werden. Ältere Anleitungen, die für EFI nach | ||
| + | <code>/boot/efi/EFI/redhat/grub.cfg</code> 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 | ||
| + | <code>grub.cfg</code> mit allen Menüeinträgen. | ||
| + | |||
| + | Rocky verwendet die Boot Loader Specification: Für jeden Kernel liegt eine | ||
| + | eigene Datei unter <code>/boot/loader/entries</code>, die | ||
| + | <code>grub.cfg</code> 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 <code>grubby</code> damit das Werkzeug für den Alltag; | ||
| + | <code>grub2-mkconfig</code> wird nur nach Änderungen an | ||
| + | <code>/etc/default/grub</code> 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 <code>/dev</code>, | ||
| + | <code>/proc</code> und <code>/sys</code> kann <code>grub-install</code> | ||
| + | die Platten nicht erkennen und bricht mit einer Fehlermeldung zur | ||
| + | Gerätezuordnung ab. Das Einhängen von <code>/boot/efi</code> entfällt auf | ||
| + | BIOS-Systemen.}} | ||
Aktuelle Version vom 26. August 2026, 14:38 Uhr
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.