GRUB2-Bootmenü unter Linux anpassen

CompTIACompTIABeginner
Jetzt üben

💡 Dieser Artikel wurde von AI-Assistenten übersetzt. Um die englische Version anzuzeigen, können Sie hier klicken

Einleitung

In diesem Lab lernen Sie, wie Sie das GRUB2-Bootmenü in einer Linux-Umgebung anpassen. GRUB2, der 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 werden praktische Erfahrungen sammeln, indem Sie mit seiner primären Konfigurationsdatei, /etc/default/grub, arbeiten, um das Boot-Erlebnis nach Ihren Bedürfnissen zu ändern.

Sie beginnen damit, die Standard-GRUB2-Konfiguration abzurufen und zu inspizieren. Als Nächstes ändern Sie wichtige Parameter wie GRUB_TIMEOUT, um die Anzeigedauer des Bootmenüs zu ändern, und GRUB_DEFAULT, um den Standard-Boot-Eintrag 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 überprüfen, ob Ihre Anpassungen korrekt konfiguriert sind.

Hinweis: Da dies eine temporäre und wegwerfbare virtuelle LabEx-Umgebung ist, können wir keinen tatsächlichen Systemneustart durchführen, um die Änderungen am Bootmenü in Aktion zu sehen. Stattdessen lernen Sie, die Konfigurationsänderungen zu überprüfen, indem Sie die generierten GRUB2-Dateien untersuchen. Dies ist eine ebenso wichtige Fähigkeit für Systemadministratoren, um ihre Konfigurationen vor dem Neustart von Produktionssystemen zu validieren.

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. Es ist das erste Programm, das beim Start Ihres Computers ausgeführt wird, und seine Aufgabe ist es, den Linux-Kernel in den Speicher zu laden und dann 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 Timeout 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 überprü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 dessen Inhalt im Terminal anzuzeigen.

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

sudo cat /etc/default/grub

Sie sehen eine Ausgabe, die der folgenden ähnelt. Die genauen 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 bestimmt, wie lange (in Sekunden) das GRUB2-Menü angezeigt wird, bevor automatisch der Standardeintrag gestartet wird.
  • GRUB_DEFAULT: Dies gibt an, welches Betriebssystem oder welcher Kernel standardmäßig gestartet wird.

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. Insbesondere erhöhen Sie das Timeout des Menüs und legen einen bestimmten Standard-Boot-Eintrag fest. Um die Datei /etc/default/grub zu bearbeiten, verwenden Sie nano, einen einfachen und intuitiven Texteditor für die Kommandozeile. Da es sich um eine Systemdatei handelt, müssen Sie sudo verwenden, um die erforderlichen Berechtigungen zum Bearbeiten zu erhalten.

Öffnen Sie zunächst die Datei mit nano mit sudo-Berechtigungen.

sudo nano /etc/default/grub

Der nano-Editor öffnet sich und zeigt den Inhalt der Datei an. Nun nehmen Sie zwei Änderungen vor:

  1. Ändern Sie den Wert von GRUB_TIMEOUT:
    Suchen Sie die Zeile, die mit GRUB_TIMEOUT beginnt. Sie ist wahrscheinlich auf 1 gesetzt. Verwenden Sie Ihre 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 der Standardeintrag automatisch gestartet wird.

    Die Zeile sollte nach Ihrer Änderung wie folgt aussehen:

    GRUB_TIMEOUT=15
  2. Ändern Sie den Parameter GRUB_DEFAULT:
    Suchen Sie die Zeile, die mit GRUB_DEFAULT beginnt. Ihr Wert ist möglicherweise saved. Ändern Sie diesen Wert auf 0. Durch Setzen von GRUB_DEFAULT=0 wird GRUB2 angewiesen, den ersten Eintrag in der Menüliste automatisch zu starten (die Liste ist nullindiziert, daher ist 0 der erste Eintrag).

    Die Zeile sollte nach Ihrer Ä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 Strg + O (der Befehl "Write Out"), um die Änderungen zu speichern.
  • nano fragt Sie nach dem zu schreibenden Dateinamen. Drücken Sie einfach Enter.
  • Drücken Sie Strg + X, um den nano-Editor zu beenden 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 von GRUB2-Konfigurationsänderungen

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 eine neue Konfigurationsdatei basierend auf Ihren Änderungen zu generieren.

Generieren der neuen GRUB2-Konfiguration

Nachdem Sie die Datei /etc/default/grub geändert haben, müssen Sie diese Änderungen anwenden, indem Sie eine neue GRUB2-Konfigurationsdatei generieren. 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 sehen, die der folgenden ähnelt:

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

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

Überprüfen Ihrer Konfigurationsänderungen

Überprüfen wir, 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 reflektiert werden:

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 als Nächstes, ob diese Einstellungen auf die generierte GRUB2-Konfigurationsdatei angewendet 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 gute Praxis, Backups wichtiger Konfigurationsdateien zu erstellen, bevor Sie Änderungen vornehmen:

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

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

GRUB2-Konfiguration beheben und validieren

In diesem letzten Schritt lernen Sie wichtige Techniken zur Fehlerbehebung bei GRUB2-Konfigurationen und wie Sie Ihre Änderungen validieren können. Diese Fähigkeiten sind für Systemadministratoren unerlässlich, die sicherstellen müssen, dass ihre GRUB2-Änderungen korrekt funktionieren, bevor sie Produktionssysteme neu starten.

GRUB2-Konfigurationssyntax prüfen

Überprüfen Sie, ob Ihre GRUB2-Konfiguration keine Syntaxfehler aufweist, indem Sie den integrierten Syntaxprüfer verwenden:

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

Wenn keine Fehler vorhanden sind, gibt dieser Befehl lautlos zurück. Syntaxfehler werden mit Zeilennummern angezeigt, was Ihnen hilft, Probleme zu identifizieren und zu beheben.

GRUB2-Verzeichnisstruktur verstehen

Erkunden Sie die Verzeichnisstruktur der GRUB2-Konfiguration, um zu verstehen, wie sie funktioniert. Beachten Sie, dass für den Zugriff auf dieses Verzeichnis Root-Privilegien 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 Nummernpräfix, das die Ausführungsreihenfolge bestimmt. Sie sehen verschiedene Skripte wie:

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

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

Verfügbare Boot-Einträge anzeigen

Untersuchen wir, welche Boot-Einträge in Ihrer generierten Konfiguration verfügbar sind:

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

Dieser Befehl zeigt Menüeintrag-Referenzen und tatsächliche Menüeinträge an. Die Ausgabe kann sowohl Konfigurationsvariablen (wie menuentry_id_option) als auch tatsächliche Boot-Menüeinträge enthalten. Suchen Sie nach Zeilen, die vollständige Menüeintrag-Definitionen enthalten.

Timeout- und Standardeinstellungen überprüfen

Überprüfen Sie, ob Ihre Timeout- und Standardeinstellungen korrekt konfiguriert sind:

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

Sie sehen mehrere Timeout- und Standardeinstellungen in der Konfigurationsdatei. Dies ist normal, da GRUB2 für verschiedene Szenarien unterschiedliche Timeout-Werte 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: Legt das Hauptmenü-Timeout auf 15 Sekunden fest

Informationen zur 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 wechseln.
  2. Boot-Einträge bearbeiten: Drücken Sie e, um einen Boot-Eintrag vor dem Booten zu bearbeiten.
  3. Rettungsmodus verwenden: Wenn GRUB2 seine Konfiguration nicht finden kann, wechselt es in den Rettungsmodus.

Gängige 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 Konfigurationsüberprüfung

Führen wir eine abschließende Ü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-Boot-Einstellungen geändert
  • Konfigurationsänderungen mit grub2-mkconfig angewendet
  • GRUB2-Konfigurationen überprüft und behoben
  • Backup-Verfahren für kritische Boot-Dateien erstellt
  • GRUB2-Verzeichnisstruktur und Wiederherstellungsoptionen verstanden
  • Fähigkeiten erworben, um Konfigurationen vor Systemneustarts zu validieren

Ihre GRUB2-Konfiguration ist nun ordnungsgemäß mit einem Timeout von 15 Sekunden und dem ersten Menüeintrag als Standard angepasst. In einer Produktionsumgebung würden diese Änderungen beim nächsten Systemneustart wirksam und bieten eine benutzerfreundlichere Boot-Erfahrung.

Zusammenfassung

In diesem umfassenden Labor haben Sie praktische Erfahrungen mit wesentlichen GRUB2-Bootloader-Anpassungs- und Fehlerbehebungstechniken 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 lernten, diese Änderungen mit dem Befehl grub2-mkconfig anzuwenden und zu überprüfen, ob Ihre Änderungen ordnungsgemäß implementiert wurden.

Zu den wichtigsten Fähigkeiten, die Sie entwickelt haben, gehören das Verständnis der GRUB2-Konfigurationsstruktur, die sichere Änderung der Datei /etc/default/grub, die korrekte Anwendung von Konfigurationsänderungen sowie die Implementierung ordnungsgemäßer Überprüfungs- und Sicherungsverfahren. Sie lernten auch wesentliche Fehlerbehebungstechniken, einschließlich Syntaxprüfung, Konfigurationsvalidierung und das Verständnis von GRUB2-Wiederherstellungsoptionen, die für Systemadministratoren entscheidend sind.

Das Labor konzentrierte sich auf 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 lernten, Befehle wie grub2-script-check zur Syntaxvalidierung und verschiedene grep-Befehle zu verwenden, um zu überprüfen, ob Ihre Änderungen ordnungsgemäß auf die generierten Konfigurationsdateien angewendet wurden.

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