Anpassen des GRUB2-Bootmenüs unter Linux

LinuxBeginner
Jetzt üben

Einführung

In diesem Lab lernen Sie, wie Sie das GRUB2-Bootmenü in einer Linux-Umgebung anpassen. GRUB2 (GRand Unified Bootloader) ist das erste Programm, das beim Start Ihres Computers ausgeführt wird und für das Laden des Linux-Kernels verantwortlich ist. Sie sammeln praktische Erfahrungen bei der Arbeit mit der primären Konfigurationsdatei /etc/default/grub, um den Bootvorgang an Ihre Bedürfnisse anzupassen.

Sie beginnen damit, die Standard-GRUB2-Konfiguration aufzurufen und zu untersuchen. Anschließend ändern Sie wichtige Parameter wie GRUB_TIMEOUT, um die Anzeigedauer des Bootmenüs zu steuern, und GRUB_DEFAULT, um den Standard-Booteintrag festzulegen. Zum Abschluss des Labs wenden Sie diese Änderungen an, indem Sie mit dem Befehl grub2-mkconfig eine neue GRUB2-Konfigurationsdatei generieren, und lernen, wie Sie die korrekte Konfiguration Ihrer Anpassungen überprüfen.

Hinweis: Da es sich um eine temporäre und flüchtige LabEx-Umgebung handelt, können wir keinen tatsächlichen Systemneustart durchführen, um die Änderungen am Bootmenü live zu sehen. Stattdessen lernen Sie, die Konfigurationsänderungen durch Überprüfung der generierten GRUB2-Dateien zu validieren – eine ebenso wichtige Fähigkeit für Systemadministratoren, um Konfigurationen vor dem Neustart von Produktionssystemen zu verifizieren.

Zugriff auf die GRUB2-Standardkonfigurationsdatei /etc/default/grub

In diesem Schritt lernen Sie, wie Sie auf die Hauptkonfigurationsdatei von GRUB2 zugreifen und diese einsehen können. GRUB2 (GRand Unified Bootloader, Version 2) ist der Standard-Bootloader für die meisten modernen Linux-Distributionen. Er ist das erste Programm, das beim Start Ihres Computers ausgeführt wird, und seine Aufgabe besteht darin, den Linux-Kernel in den Arbeitsspeicher zu laden und das Betriebssystem zu starten.

Die primäre Konfigurationsdatei, mit der Sie das Verhalten von GRUB2 anpassen, befindet sich unter /etc/default/grub. Diese Datei enthält Schlüssel-Wert-Paare, die Einstellungen wie das Zeitlimit des Bootmenüs, das standardmäßig zu startende Betriebssystem und zusätzliche Kernel-Parameter steuern.

Bevor Sie Änderungen vornehmen, ist es wichtig, die aktuelle Konfiguration zu prüfen. Da /etc/default/grub eine Systemdatei ist, die dem Benutzer root gehört, müssen Sie den Befehl sudo verwenden, um darauf zuzugreifen. Wir verwenden den Befehl cat, um den Inhalt im Terminal anzuzeigen.

Führen Sie den folgenden Befehl aus, um den Inhalt der GRUB2-Standardkonfigurationsdatei anzuzeigen:

sudo cat /etc/default/grub

Um eine einfache Referenz zu haben, die Sie später im Lab vergleichen können, speichern Sie die aktuellen Einstellungen für das Zeitlimit und den Standardeintrag in einer Datei in Ihrem Home-Verzeichnis:

sudo grep -E "^(GRUB_TIMEOUT|GRUB_DEFAULT)" /etc/default/grub | tee ~/grub-current-settings.txt >/dev/null

Sie sehen eine Ausgabe ähnlich der folgenden. Die genauen Werte können je nach Systemkonfiguration leicht abweichen.

GRUB_TIMEOUT=1
GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)"
GRUB_DEFAULT=saved
GRUB_DISABLE_SUBMENU=true
GRUB_TERMINAL_OUTPUT="console"
GRUB_CMDLINE_LINUX="crashkernel=1G-4G:192M,4G-64G:256M,64G-:512M rhgb quiet net.ifnames=0 console=tty0 console=ttyS0,115200n8 no_timer_check iommu=pt crash_kexec_post_notifiers=1 nvme_core.io_timeout=4294967295 nvme_core.admin_timeout=4294967295"
GRUB_DISABLE_RECOVERY="true"
GRUB_ENABLE_BLSCFG=true

Betrachten wir kurz zwei wichtige Parameter aus dieser Datei:

  • GRUB_TIMEOUT: Dieser Wert bestimmt, wie lange (in Sekunden) das GRUB2-Menü angezeigt wird, bevor der Standardeintrag automatisch gestartet wird.
  • GRUB_DEFAULT: Dieser Parameter legt fest, welches Betriebssystem oder welcher Kernel standardmäßig gebootet werden soll.

Im nächsten Schritt lernen Sie, wie Sie diese Parameter ändern, um das Verhalten des Bootmenüs anzupassen.

Ändern der Parameter GRUB_TIMEOUT und GRUB_DEFAULT

In diesem Schritt ändern Sie die GRUB2-Konfigurationsdatei, um das Verhalten des Bootmenüs anzupassen. Konkret werden Sie das Zeitlimit des Menüs erhöhen und einen spezifischen Standard-Booteintrag festlegen. Um die Datei /etc/default/grub zu bearbeiten, verwenden Sie nano, einen einfachen und intuitiven Texteditor für die Befehlszeile. Da es sich um eine Systemdatei handelt, müssen Sie sudo verwenden, um die erforderlichen Berechtigungen für die Bearbeitung zu erhalten.

Öffnen Sie zunächst die Datei mit nano und sudo-Rechten:

sudo nano /etc/default/grub

Der nano-Editor öffnet sich und zeigt den Inhalt der Datei an. Nehmen Sie nun die folgenden zwei Änderungen vor:

  1. Ändern des GRUB_TIMEOUT-Werts: Suchen Sie die Zeile, die mit GRUB_TIMEOUT beginnt. Sie ist wahrscheinlich auf 1 gesetzt. Verwenden Sie die Pfeiltasten, um den Cursor zu dieser Zeile zu bewegen, und ändern Sie den Wert von 1 auf 15. Dadurch wartet das GRUB2-Menü 15 Sekunden, bevor es automatisch bootet.

    Die Zeile sollte nach der Änderung wie folgt aussehen:

    GRUB_TIMEOUT=15
    
  2. Ändern des GRUB_DEFAULT-Parameters: Suchen Sie die Zeile, die mit GRUB_DEFAULT beginnt. Der Wert könnte saved sein. Ändern Sie diesen Wert auf 0. Die Einstellung GRUB_DEFAULT=0 weist GRUB2 an, automatisch den ersten Eintrag in der Menüliste zu starten (die Liste ist nullindiziert, daher ist 0 der erste Eintrag).

    Die Zeile sollte nach der Änderung wie folgt aussehen:

    GRUB_DEFAULT=0
    

Sobald Sie diese Änderungen vorgenommen haben, müssen Sie die Datei speichern und nano beenden:

  • Drücken Sie Ctrl + O (den "Write Out"-Befehl), um die Änderungen zu speichern.
  • nano fragt Sie nach der Bestätigung des Dateinamens. Drücken Sie einfach Enter.
  • Drücken Sie Ctrl + X, um den nano-Editor zu verlassen und zu Ihrer Shell-Eingabeaufforderung zurückzukehren.

Sie haben nun die GRUB2-Standardeinstellungen erfolgreich geändert. Im nächsten Schritt wenden Sie diese Änderungen an.

Anwenden und Überprüfen der GRUB2-Konfigurationsänderungen

In diesem Schritt wenden Sie die Konfigurationsänderungen an, die Sie im vorherigen Schritt vorgenommen haben, und lernen, wie Sie überprüfen, ob GRUB2 korrekt konfiguriert wurde. Sie verwenden den Befehl grub2-mkconfig, um basierend auf Ihren Änderungen eine neue Konfigurationsdatei zu generieren.

Generieren der neuen GRUB2-Konfiguration

Nachdem Sie die Datei /etc/default/grub geändert haben, müssen Sie diese Änderungen durch Generieren einer neuen GRUB2-Konfigurationsdatei anwenden. Der Befehl grub2-mkconfig liest die Einstellungen aus /etc/default/grub und die Skripte in /etc/grub.d/, um die endgültige GRUB2-Konfiguration zu erstellen.

Führen Sie den folgenden Befehl aus, um die neue Konfiguration zu generieren:

sudo grub2-mkconfig -o /boot/grub2/grub.cfg

Sie sollten eine Ausgabe ähnlich der folgenden sehen:

Generating grub configuration file ...
Adding boot menu entry for UEFI Firmware Settings ...
done

Dieser Befehl durchsucht Ihr System nach verfügbaren Kernels, liest Ihre Konfigurationseinstellungen und erstellt die finale GRUB2-Menükonfiguration.

Überprüfen Ihrer Konfigurationsänderungen

Lassen Sie uns überprüfen, ob Ihre Änderungen korrekt auf die GRUB2-Konfiguration angewendet wurden. Überprüfen Sie zunächst, ob Ihre geänderten Einstellungen in der Datei /etc/default/grub korrekt übernommen wurden:

sudo grep -E "(GRUB_TIMEOUT|GRUB_DEFAULT)" /etc/default/grub

Sie sollten eine Ausgabe sehen, die Ihre geänderten Werte anzeigt:

GRUB_TIMEOUT=15
GRUB_DEFAULT=0

Überprüfen Sie anschließend, ob diese Einstellungen in die generierte GRUB2-Konfigurationsdatei übernommen wurden:

sudo grep -E "(timeout|default)" /boot/grub2/grub.cfg | head -5

Dies zeigt Ihnen, wie Ihre Einstellungen in der tatsächlichen GRUB2-Konfigurationsdatei erscheinen.

Erstellen eines Konfigurations-Backups

Es ist immer eine bewährte Praxis, Backups wichtiger Konfigurationsdateien zu erstellen, bevor Änderungen vorgenommen werden:

sudo cp /boot/grub2/grub.cfg /boot/grub2/grub.cfg.backup

Dies erstellt eine Sicherungskopie, die Sie bei Bedarf wiederherstellen können.

Fehlerbehebung und Validierung der GRUB2-Konfiguration

In diesem letzten Schritt lernen Sie grundlegende Techniken zur Fehlerbehebung bei GRUB2-Konfigurationen kennen und erfahren, wie Sie Ihre Änderungen validieren. Diese Fähigkeiten sind für Systemadministratoren entscheidend, um sicherzustellen, dass ihre GRUB2-Anpassungen korrekt funktionieren, bevor Produktionssysteme neu gestartet werden.

Überprüfen der GRUB2-Konfigurationssyntax

Stellen Sie sicher, dass Ihre GRUB2-Konfiguration keine Syntaxfehler enthält, indem Sie den integrierten Syntax-Checker verwenden:

sudo grub2-script-check /boot/grub2/grub.cfg

Wenn keine Fehler vorliegen, gibt dieser Befehl keine Rückmeldung. Eventuelle Syntaxfehler werden mit Zeilennummern angezeigt, was Ihnen hilft, Probleme zu identifizieren und zu beheben.

Verständnis der GRUB2-Verzeichnisstruktur

Erkunden Sie die Verzeichnisstruktur der GRUB2-Konfiguration, um deren Funktionsweise zu verstehen. Beachten Sie, dass für den Zugriff auf dieses Verzeichnis Root-Rechte erforderlich sind:

sudo ls -la /etc/grub.d/

Dies zeigt Ihnen alle Skripte, die verschiedene Teile des GRUB2-Menüs generieren. Jedes Skript hat ein numerisches Präfix, das die Ausführungsreihenfolge bestimmt. Sie werden verschiedene Skripte sehen, wie zum Beispiel:

  • 00_header: Legt die grundlegende GRUB2-Konfiguration fest
  • 00_tuned: Tuned-spezifische Konfigurationen
  • 01_users: Benutzerkonfigurationen
  • 10_linux: Findet und fügt Linux-Kernels hinzu
  • 20_linux_xen: Unterstützung für den Xen-Hypervisor
  • 30_os-prober: Sucht nach anderen Betriebssystemen
  • 40_custom: Enthält benutzerdefinierte Menüeinträge

Die tatsächlichen Skripte können je nach Systemkonfiguration und installierten Paketen variieren.

Anzeigen der verfügbaren Booteinträge

Lassen Sie uns untersuchen, welche Booteinträge in Ihrer generierten Konfiguration verfügbar sind:

sudo grep "menuentry" /boot/grub2/grub.cfg | head -10

Dieser Befehl zeigt Ihnen Verweise auf Menüeinträge sowie die tatsächlichen Menüeinträge an. Die Ausgabe kann sowohl Konfigurationsvariablen (wie menuentry_id_option) als auch tatsächliche Bootmenüeinträge enthalten. Achten Sie auf Zeilen, die vollständige Definitionen von Menüeinträgen enthalten.

Überprüfen von Timeout- und Standardeinstellungen

Überprüfen Sie, ob Ihr Timeout und die Standardeinstellungen korrekt konfiguriert sind:

sudo grep -E "set timeout|set default" /boot/grub2/grub.cfg

Sie werden mehrere Timeout- und Standardeinstellungen in der Konfigurationsdatei sehen. Dies ist normal, da GRUB2 unterschiedliche Timeout-Werte für verschiedene Szenarien verwendet:

  • Haupt-Timeout (normalerweise 15 Sekunden, wie konfiguriert)
  • Bedingte Timeouts für spezielle Situationen
  • Verschiedene Timeout-Stile (Menü, versteckt)

Die wichtigsten zu überprüfenden Einstellungen sind:

  • set default="0" - Legt den ersten Menüeintrag als Standard fest
  • set timeout=15 - Setzt das Haupt-Menü-Timeout auf 15 Sekunden

Lernen über GRUB2-Wiederherstellung

Das Verständnis der GRUB2-Wiederherstellung ist für die Fehlerbehebung bei Boot-Problemen unerlässlich. In Notfällen können Sie:

  1. Auf die GRUB2-Befehlszeile zugreifen: Drücken Sie c im GRUB2-Menü, um in den Befehlszeilenmodus zu gelangen
  2. Booteinträge bearbeiten: Drücken Sie e, um einen Booteintrag vor dem Start zu bearbeiten
  3. Rettungsmodus verwenden: Wenn GRUB2 seine Konfiguration nicht finden kann, wechselt es in den Rettungsmodus

Häufige Wiederherstellungsbefehle sind:

  • ls: Listet verfügbare Partitionen und Dateien auf
  • set root=(hd0,1): Legt die Root-Partition fest
  • linux /boot/vmlinuz root=/dev/sda1: Lädt einen Kernel
  • boot: Startet den Bootvorgang

Abschließende Konfigurationsprüfung

Führen wir eine letzte Überprüfung Ihrer vollständigen GRUB2-Konfiguration durch:

sudo cat /etc/default/grub | grep -E "(TIMEOUT|DEFAULT)"

Dies bestätigt, dass Ihre Grundeinstellungen korrekt in der Quellkonfigurationsdatei gespeichert sind.

Was Sie erreicht haben:

  • GRUB2-Timeout und Standard-Booteinstellungen geändert
  • Konfigurationsänderungen mit grub2-mkconfig angewendet
  • Gelernt, GRUB2-Konfigurationen zu überprüfen und Fehler zu beheben
  • Backup-Verfahren für kritische Boot-Dateien erstellt
  • Die GRUB2-Verzeichnisstruktur und Wiederherstellungsoptionen verstanden
  • Fähigkeiten erworben, Konfigurationen vor Systemneustarts zu validieren

Ihre GRUB2-Konfiguration ist nun ordnungsgemäß mit einem 15-sekündigen Timeout und dem ersten Menüeintrag als Standard angepasst. In einer Produktionsumgebung würden diese Änderungen beim nächsten Systemneustart wirksam werden und für ein benutzerfreundlicheres Boot-Erlebnis sorgen.

Zusammenfassung

In diesem umfassenden Lab haben Sie praktische Erfahrungen mit grundlegenden Techniken zur Anpassung und Fehlerbehebung des GRUB2-Bootloaders gesammelt. Sie begannen mit der Untersuchung der Standard-GRUB2-Konfiguration und änderten dann wichtige Parameter wie GRUB_TIMEOUT und GRUB_DEFAULT, um das Verhalten des Bootmenüs anzupassen. Sie haben gelernt, diese Änderungen mit dem Befehl grub2-mkconfig anzuwenden und zu überprüfen, ob Ihre Modifikationen korrekt implementiert wurden.

Zu den wichtigsten Fähigkeiten, die Sie entwickelt haben, gehören das Verständnis der GRUB2-Konfigurationsstruktur, das sichere Bearbeiten der Datei /etc/default/grub, das korrekte Anwenden von Konfigurationsänderungen sowie die Implementierung geeigneter Verifizierungs- und Backup-Verfahren. Sie haben zudem grundlegende Techniken zur Fehlerbehebung kennengelernt, einschließlich Syntaxprüfung, Konfigurationsvalidierung und das Verständnis von GRUB2-Wiederherstellungsoptionen, die für Systemadministratoren unerlässlich sind.

Das Lab betonte praktische Fähigkeiten, die Systemadministratoren in realen Szenarien benötigen, insbesondere die Fähigkeit, GRUB2-Konfigurationen zu validieren, bevor sie auf Produktionssysteme angewendet werden. Sie haben gelernt, Befehle wie grub2-script-check zur Syntaxvalidierung und verschiedene grep-Befehle zu verwenden, um sicherzustellen, dass Ihre Änderungen korrekt auf die generierten Konfigurationsdateien angewendet wurden.

Diese Fähigkeiten bereiten Sie darauf vor, Boot-Konfigurationsszenarien souverän zu handhaben und Boot-bezogene Probleme in Linux-Unternehmensumgebungen effektiv zu beheben. Die von Ihnen geübten Verifizierungstechniken sind besonders wertvoll, um sicherzustellen, dass GRUB2-Konfigurationen korrekt sind, bevor Produktionssysteme neu gestartet werden.