Grub2 Installation: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
 
(5 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
=MBR=
+
= GRUB neu installieren =
Grub wird in den MBR der angeben Festplatte geschrieben: (BSP)
+
 
;[Achtung, Bootreihenfolge im BIOS/UEFI beachten!]
+
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 auf einer Partition: (BSP)
+
oder über ein Rescue-System mit <code>chroot</code> erreichbar ist.
*grub-install --force /dev/sda3
+
 
=EFI=
+
;Vor allen Schritten den Firmware-Modus feststellen
*grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=ubuntu --recheck
+
* [ -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.