Anpassen des GRUB2-Bootmenüs unter Linux

CompTIABeginner
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 im Umgang mit der Hauptkonfigurationsdatei /etc/default/grub, um das Boot-Erlebnis nach Ihren Wünschen zu gestalten.

Zunächst greifen Sie auf die Standardkonfiguration von GRUB2 zu und inspizieren diese. Danach modifizieren Sie wichtige Parameter wie GRUB_TIMEOUT, um die Anzeigedauer des Bootmenüs zu ändern, 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 Übernahme Ihrer Anpassungen verifizieren.

Hinweis: Da es sich hierbei um eine virtuelle LabEx-Umgebung handelt, die temporär und flüchtig ist, können wir keinen tatsächlichen Systemneustart durchführen, um die Änderungen am Bootmenü live zu sehen. Stattdessen lernen Sie, die Konfigurationsänderungen durch die Untersuchung der generierten GRUB2-Dateien zu überprüfen. Dies ist eine ebenso wichtige Fähigkeit für Systemadministratoren, um Konfigurationen zu validieren, bevor sie Produktivsysteme neu starten.

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

In diesem Schritt lernen Sie, wie Sie auf die Hauptkonfigurationsdatei für GRUB2 zugreifen und diese anzeigen. GRUB2 (GRand Unified Bootloader, Version 2) ist der Standard-Bootloader für die meisten modernen Linux-Distributionen. Er ist das erste Programm, das beim Starten des Computers ausgeführt wird. Seine Aufgabe besteht darin, den Linux-Kernel in den Arbeitsspeicher zu laden und anschließend 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 auszugeben.

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

sudo cat /etc/default/grub

Sie sehen eine Ausgabe ähnlich der folgenden. Die exakten Werte können je nach Konfiguration Ihres Systems 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 legt fest, wie viele Sekunden das GRUB2-Menü angezeigt wird, bevor automatisch der Standardeintrag gebootet wird.
  • GRUB_DEFAULT: Hier wird spezifiziert, welches Betriebssystem oder welcher Kernel standardmäßig gestartet werden soll.

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

Modifizieren der Parameter GRUB_TIMEOUT und GRUB_DEFAULT

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

Öffnen Sie zuerst die Datei mit nano und sudo-Berechtigungen.

sudo nano /etc/default/grub

Der Editor nano öffnet sich und zeigt den Dateiinhalt an. Nehmen Sie nun zwei Änderungen vor:

  1. Ändern des Wertes für GRUB_TIMEOUT: Suchen Sie die Zeile, die mit GRUB_TIMEOUT beginnt. Wahrscheinlich ist sie auf 1 gesetzt. Bewegen Sie den Cursor mit den Pfeiltasten zu dieser Zeile und ändern Sie den Wert von 1 auf 15. Dadurch wartet das GRUB2-Menü 15 Sekunden lang, bevor es automatisch bootet.

    Die Zeile sollte nach Ihrer Änderung so aussehen:

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

    Die Zeile sollte nach Ihrer Änderung so aussehen:

    GRUB_DEFAULT=0
    

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

  • Drücken Sie Strg + O (den Befehl "Write Out"), um die Änderungen zu speichern.
  • nano fragt nach dem zu schreibenden Dateinamen. Bestätigen Sie einfach mit Enter.
  • Drücken Sie Strg + X, um den Editor zu beenden und zur Eingabeaufforderung zurückzukehren.

Sie haben die GRUB2-Standardeinstellungen nun erfolgreich modifiziert. Im nächsten Schritt werden Sie diese Änderungen anwenden.

GRUB2-Konfigurationsänderungen anwenden und verifizieren

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

Generieren der neuen GRUB2-Konfiguration

Nachdem Sie die Datei /etc/default/grub geändert haben, müssen Sie diese Änderungen wirksam machen, indem Sie eine neue GRUB2-Konfigurationsdatei generieren. Der Befehl grub2-mkconfig liest die Einstellungen aus /etc/default/grub sowie die Skripte in /etc/grub.d/ aus, um die finale 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 dieser sehen:

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

Dieser Befehl scannt Ihr System nach verfügbaren Kerneln, liest Ihre Konfigurationseinstellungen ein und erstellt die endgültige GRUB2-Menükonfiguration.

Verifizieren Ihrer Konfigurationsänderungen

Lassen Sie uns überprüfen, ob Ihre Änderungen ordnungsgemäß in die GRUB2-Konfiguration übernommen wurden. Prüfen Sie zunächst, ob sich Ihre modifizierten Einstellungen in der Datei /etc/default/grub widerspiegeln:

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

Sie sollten eine Ausgabe mit Ihren geänderten Werten sehen:

GRUB_TIMEOUT=15
GRUB_DEFAULT=0

Verifizieren Sie als Nächstes, dass 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 ratsam, Sicherungskopien von wichtigen Konfigurationsdateien zu erstellen, bevor man Änderungen vornimmt:

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

Dies erstellt eine Backup-Kopie, die Sie bei Bedarf wiederherstellen können.

Fehlerbehebung und Validierung der GRUB2-Konfiguration

In diesem letzten Schritt lernen Sie wichtige Techniken zur Fehlerbehebung für GRUB2-Konfigurationen kennen und erfahren, wie Sie Ihre Änderungen validieren. Diese Fähigkeiten sind entscheidend für Systemadministratoren, um sicherzustellen, dass ihre GRUB2-Modifikationen korrekt funktionieren, bevor sie Produktivsysteme neu starten.

Überprüfen der GRUB2-Konfigurationssyntax

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

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

Wenn keine Fehler vorliegen, gibt dieser Befehl nichts aus. Etwaige Syntaxfehler werden mit Zeilennummern angezeigt, was Ihnen hilft, Probleme schnell 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/

Hier sehen Sie alle Skripte, die die verschiedenen Teile des GRUB2-Menüs generieren. Jedes Skript hat ein numerisches Präfix, das die Reihenfolge der Ausführung bestimmt. Sie finden dort verschiedene Skripte wie:

  • 00_header: Legt die grundlegende GRUB2-Konfiguration fest.
  • 00_tuned: Spezifische Konfigurationen für den Tuned-Dienst.
  • 01_users: Benutzerkonfigurationen.
  • 10_linux: Sucht und fügt Linux-Kernel 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

Untersuchen wir, welche Booteinträge in Ihrer generierten Konfiguration verfügbar sind:

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

Dieser Befehl zeigt Referenzen auf Menüeinträge und die tatsächlichen Einträge an. Die Ausgabe kann sowohl Konfigurationsvariablen (wie menuentry_id_option) als auch echte Bootmenü-Einträge enthalten. Achten Sie auf Zeilen, die vollständige Definitionen von menuentry enthalten.

Verifizieren der Timeout- und Standardeinstellungen

Prüfen Sie, ob Ihre Timeout- und 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. Das ist normal, da GRUB2 unterschiedliche Zeitwerte für verschiedene Szenarien verwendet:

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

Die wichtigsten zu prüfenden Einstellungen sind:

  • set default="0" – Setzt den ersten Menüeintrag als Standard.
  • set timeout=15 – Setzt das Hauptmenü-Zeitlimit auf 15 Sekunden.

Informationen zur GRUB2-Wiederherstellung

Das Verständnis der GRUB2-Wiederherstellung ist für die Behebung von Boot-Problemen unerlässlich. In Notsituationen können Sie:

  1. Auf die GRUB2-Kommandozeile zugreifen: Drücken Sie im GRUB2-Menü c, um in den Kommandozeilenmodus zu gelangen.
  2. Booteinträge bearbeiten: Drücken Sie e, um einen Booteintrag vor dem Starten zu editieren.
  3. Den Rescue-Modus nutzen: Wenn GRUB2 seine Konfiguration nicht finden kann, wechselt es in den Rescue-Modus.

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 Basiseinstellungen korrekt in der Quellkonfigurationsdatei gespeichert sind.

Was Sie erreicht haben:

  • GRUB2-Timeout und Standard-Booteinstellungen modifiziert.
  • Konfigurationsänderungen mit grub2-mkconfig angewendet.
  • Gelernt, GRUB2-Konfigurationen zu verifizieren und Fehler zu beheben.
  • Backup-Verfahren für kritische Boot-Dateien erstellt.
  • Die GRUB2-Verzeichnisstruktur und Wiederherstellungsoptionen verstanden.
  • Fähigkeiten zur Validierung von Konfigurationen vor Systemneustarts erworben.

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

Zusammenfassung

In diesem umfassenden Lab haben Sie praktische Erfahrungen mit der Anpassung des GRUB2-Bootloaders und Techniken zur Fehlerbehebung gesammelt. Sie haben damit begonnen, die Standard-GRUB2-Konfiguration zu untersuchen, und anschließend wichtige Parameter wie GRUB_TIMEOUT und GRUB_DEFAULT modifiziert, um das Verhalten des Bootmenüs anzupassen. Sie haben gelernt, diese Änderungen mit dem Befehl grub2-mkconfig anzuwenden und sicherzustellen, dass Ihre Modifikationen korrekt umgesetzt 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 ordnungsgemäßer Verifizierungs- und Backup-Verfahren. Zudem haben Sie essenzielle Techniken zur Fehlerbehebung kennengelernt, darunter die Syntaxprüfung, die Konfigurationsvalidierung und das Verständnis von GRUB2-Wiederherstellungsoptionen, die für Systemadministratoren unerlässlich sind.

Das Lab legte besonderen Wert auf praktische Fertigkeiten, die Systemadministratoren in realen Szenarien benötigen – insbesondere die Fähigkeit, GRUB2-Konfigurationen zu validieren, bevor sie auf Produktivsysteme angewendet werden. Sie haben gelernt, Befehle wie grub2-script-check zur Syntaxvalidierung und verschiedene grep-Befehle zu nutzen, um zu prüfen, ob Ihre Änderungen korrekt in die generierten Konfigurationsdateien übernommen wurden.

Diese Kenntnisse bereiten Sie darauf vor, Szenarien der Boot-Konfiguration souverän zu handhaben und bootrelevante Probleme in Linux-Unternehmensumgebungen effektiv zu lösen. Die von Ihnen geübten Verifizierungstechniken sind besonders wertvoll, um die Korrektheit von GRUB2-Konfigurationen vor einem Neustart kritischer Systeme sicherzustellen.