GRUB2 Configuration on RHEL & Rocky (Artikel 078)
Verwaltung des Bootloaders GRUB2 unter RHEL. Erfahren Sie den Umgang mit grubby, die BLS-Struktur und die Unterschiede zwischen BIOS und UEFI-Systemen.
# GRUB2 on RHEL: Den Bootloader im Griff
TL;DR / Management Summary In RHEL 8 und 9 hat sich die Verwaltung von GRUB2 massiv geändert. Wir editieren keine kryptischen Konfigurationsdateien mehr. Stattdessen nutzt Red Hat die Boot Loader Specification (BLS) und das Werkzeug grubby. Dies ermöglicht ein sicheres Verwalten von Kernel-Parametern, ohne die Gefahr, das gesamte System durch einen Tippfehler in der
grub.cfgunbootbar zu machen.
# 1. Einführung & Architektur
UEFI, BIOS und BLS.
GRUB2 ist in RHEL modular. Anstatt alle Einträge in einer Datei zu speichern, liegt für jeden installierten Kernel eine separate Datei unter /boot/loader/entries/.
# Dateipfade (RHEL Standard)
- BIOS:
/boot/grub2/grub.cfg - UEFI:
/boot/efi/EFI/redhat/grub.cfg(Achtung: In RHEL 9 oft nur ein Symlink auf/boot/grub2/grub.cfg!).
graph TD
A[Kernel Update / Admin Action] --> B[grubby tool]
B --> C[BLS Fragment: /boot/loader/entries/xyz.conf]
D[Boot Process] --> E[GRUB2 Binary]
E -->|Reads| F[grub.cfg]
F -->|Includes| C
C -->|Loads| G[vmlinuz & initramfs]
# 2. Der moderne Weg: grubby
Änderungen ohne Schmerzen.
Nutzen Sie niemals vi für die grub.cfg. Nutzen Sie grubby.
# Kernel Parameter hinzufügen
Angenommen, wir wollen den Grafiktreiber deaktivieren:
sudo grubby --update-kernel=ALL --args="nomodeset"
# Parameter entfernen
sudo grubby --update-kernel=ALL --remove-args="nomodeset"
# Default Kernel setzen
# Welcher Kernel bootet standardmäßig?
grubby --default-kernel
# Anderen Kernel wählen
sudo grubby --set-default=/boot/vmlinuz-5.14.0-xxx
# 3. Die klassische Methode (Fallback)
Wenn grubby nicht ausreicht.
Wenn Sie globale Einstellungen (z.B. Timeout) ändern wollen, nutzen Sie /etc/default/grub.
# Konfiguration anpassen
# In /etc/default/grub
GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)"
# Konfiguration neu generieren
# Auf BIOS und modernen UEFI RHEL 9 Systemen meist:
sudo grub2-mkconfig -o /boot/grub2/grub.cfg
# 4. Day-2 Operations: Rescue & Boot-Analyse
Den Fehler finden.
# In den Rescue-Mode booten
Wenn das System nicht startet:
- Im GRUB-Menü
edrücken. - An die Zeile
linuxden Parameterrd.breakhängen. CTRL+Xzum Booten.- Das System hält in der
initramfsan. Mounten Sie/sysrootbeschreibbar:mount -o remount,rw /sysrootchroot /sysroot
# 5. Troubleshooting & “War Stories”
Praxisfallen in der Red Hat Welt.
# Story 1: “Der UEFI-Verlust”
Symptom: Nach einem fehlgeschlagenen grub2-mkconfig findet das UEFI-Mainboard kein Boot-Device mehr.
Ursache: Der Admin hat den Pfad /boot/efi/EFI/redhat/grub.cfg überschrieben, aber RHEL erwartet dort oft nur einen Pointer auf die Haupt-Config.
Lösung: Nutzen Sie in RHEL 9 immer den Pfad /boot/grub2/grub.cfg für mkconfig. Das System kümmert sich via Symlink darum.
# Story 2: “Duplicate Menu Entries”
Symptom: Im Boot-Menü tauchen Kernel-Versionen doppelt auf.
Ursache: Manuelle Änderungen in /boot/loader/entries/ oder Reste von alten Kernel-Installationen.
Lösung: Nutzen Sie dnf remove kernel-<version>, um alte Kernel sauber zu deinstallieren. DNF bereinigt die BLS-Einträge automatisch.
# 6. Fazit & Empfehlung
- grubby: Gewöhnen Sie sich an
grubby. Es ist schneller und sicherer. - Backups: Sichern Sie die
/etc/default/grub, bevor Sie Änderungen machen. - Security: Schützen Sie das GRUB-Menü mit einem Passwort (
grub2-setpassword), um zu verhindern, dass Unbefugte Kernel-Parameter wieinit=/bin/bashhinzufügen.
# Anhang: Cheatsheet
| Aufgabe | Befehl |
|---|---|
| Infos zum Default Kernel | grubby --info=DEFAULT |
| Alle Kernel-Parameter sehen | cat /proc/cmdline |
| GRUB-Passwort setzen | grub2-setpassword |
| BLS-Einträge auflisten | ls /boot/loader/entries/ |
| Config neu bauen | grub2-mkconfig -o /boot/grub2/grub.cfg |
| Boot-Log anzeigen | journalctl -b |
| Kernel-Module listen | lsmod |