Zum Inhalt springenZur Seitennavigation springen: vorherige Seite [Zugriffstaste p]/nächste Seite [Zugriffstaste n]
documentation.suse.com / SUSE Linux Enterprise Desktop-Dokumentation / Verwaltungshandbuch / Booten eines Linux-Systems / Der Bootloader GRUB 2
Gilt für SUSE Linux Enterprise Desktop 15 SP6

18 Der Bootloader GRUB 2

In diesem Kapitel wird die Konfiguration von GRUB 2, dem unter SUSE Linux Enterprise Desktop verwendeten Bootloader, beschrieben. Diese Anwendung ist der Nachfolger des bisherigen Bootloaders GRUB (nunmehr als GRUB Legacy bezeichnet). GRUB 2 ist seit Version 12 als standardmäßiger Bootloader in SUSE® Linux Enterprise Desktop eingebunden. Für die Konfiguration der wichtigsten Einstellungen steht ein YaST-Modul bereit. Eine Übersicht über den Bootvorgang finden Sie in Kapitel 16, Einführung in den Bootvorgang. Weitere Informationen zur Unterstützung von Secure Boot finden Sie in Kapitel 17, UEFI (Unified Extensible Firmware Interface).

18.1 Hauptunterschiede zwischen GRUB Legacy und GRUB 2

  • Die Konfiguration wird in unterschiedlichen Dateien gespeichert.

  • Es werden mehr Dateisysteme unterstützt (z. B. Btrfs).

  • Dateien auf LVM- oder RAID-Geräten können direkt gelesen werden.

  • Die Benutzeroberfläche kann übersetzt und mit Themen gestaltet werden.

  • Es steht ein Mechanismus zum Laden von Modulen bereit, die weitere Funktionen (z. B. Dateisysteme) unterstützen

  • Es werden automatisch Boot-Einträge für andere Kernel und Betriebssysteme (z. B. Windows) gesucht und erzeugt.

  • Eine minimale Konsole (ähnlich wie Bash aufgebaut) steht zur Verfügung.

18.2 Konfigurationsdateistruktur

Die Konfiguration von GRUB 2 umfasst die folgenden Dateien:

/boot/grub2/grub.cfg

Diese Datei enthält die Konfiguration der Menüpunkte in GRUB 2. Die Datei ersetzt die Datei menu.lst in GRUB Legacy. grub.cfg sollte nicht bearbeitet werden. Die Datei wird automatisch durch den Befehl grub2-mkconfig -o /boot/grub2/grub.cfg generiert.

/boot/grub2/custom.cfg

Diese optionale Datei wird beim Booten direkt aus grub.cfg erzeugt. Hiermit können Sie benutzerdefinierte Einträge in das Bootmenü aufnehmen. Ab SUSE Linux Enterprise Desktop 12 SP2 werden diese Einträge auch geparst, wenn grub-once verwendet wird.

/etc/default/grub

Diese Datei steuert die Benutzereinstellungen für GRUB 2 und enthält in der Regel zusätzliche Umgebungseinstellungen, beispielsweise Hintergründe und Themen.

Skripte unter /etc/grub.d/

Die Skripte in diesem Verzeichnis werden beim Ausführen des Befehls grub2-mkconfig -o /boot/grub2/grub.cfg gelesen. Die zugehörigen Anweisungen werden in die Hauptkonfigurationsdatei /boot/grub/grub.cfg integriert.

/etc/sysconfig/bootloader

Diese Konfigurationsdatei enthält bestimmte Grundeinstellungen wie den Bootloader-Typ und ob die UEFI Secure Boot-Unterstützung aktiviert werden soll.

/boot/grub2/x86_64-efi, /boot/grub2/power-ieee1275

Diese Konfigurationsdateien enthalten architekturspezifische Optionen.

GRUB 2 kann auf mehrere Weisen gesteuert werden. Booteinträge aus einer vorhandenen Konfiguration können im grafischen Menü (Eröffnungsbildschirm) ausgewählt werden. Die Konfiguration wird aus der Datei /boot/grub2/grub.cfg geladen, die aus anderen Konfigurationsdateien kompiliert wird (siehe unten). Alle GRUB 2-Konfigurationsdateien gelten als Systemdateien und Sie benötigen root-Berechtigungen, um sie bearbeiten zu können.

Anmerkung
Anmerkung: Aktivieren von Konfigurationsänderungen

Nach einer manuellen Änderung der GRUB 2-Konfigurationsdateien müssen Sie grub2-mkconfig -o /boot/grub2/grub.cfg ausführen, damit die Änderungen in Kraft treten. Sollten Sie die Konfiguration jedoch mit YaST geändert haben, ist dies nicht nötig, da YaST diesen Befehl automatisch ausführt.

18.2.1 Die Datei /boot/grub2/grub.cfg

Hinter dem grafischen Eröffnungsbildschirm mit dem Bootmenü steht die GRUB 2-Konfigurationsdatei /boot/grub2/grub.cfg, die alle Informationen zu allen Partitionen oder Betriebssystemen enthält, die über das Menü gebootet werden können.

GRUB 2 liest bei jedem Systemstart die Menüdatei direkt vom Dateisystem neu ein. Es besteht also kein Bedarf, GRUB 2 nach jeder Änderung an der Konfigurationsdatei neu zu installieren. Beim Installieren oder Entfernen von Kernels wird grub.cfg automatisch neu aufgebaut.

grub.cfg wird aus der Datei /etc/default/grub und den Skripten kompiliert, die sich beim Ausführen des Befehls grub2-mkconfig -o /boot/grub2/grub.cfg im Verzeichnis /etc/grub.d/ befinden. Ändern Sie die Datei daher in keinem Fall manuell. Bearbeiten Sie stattdessen die zugehörigen Ursprungsdateien, oder bearbeiten Sie die Konfiguration mit dem YaST-Bootloader-Modul (siehe Abschnitt 18.3, „Konfigurieren des Bootloaders mit YaST“).

18.2.2 Die Datei /etc/default/grub

In dieser Datei finden Sie allgemeinere Optionen für GRUB 2, beispielsweise den Zeitraum, über den das Menü angezeigt wird, oder das standardmäßig zu bootende Betriebssystem. Mit dem folgenden Befehl erhalten Sie eine Liste aller verfügbaren Optionen:

> grep "export GRUB_DEFAULT" -A50 /usr/sbin/grub2-mkconfig | grep GRUB_

Sie können benutzerdefinierte Variablen einführen und sie später in den Skripten im Verzeichnis /etc/grub.d verwenden.

Aktualisieren Sie nach der Bearbeitung von /etc/default/grub die Hauptkonfigurationsdatei mit grub2-mkconfig -o /boot/grub2/grub.cfg.

Anmerkung
Anmerkung: Bereich

Alle in dieser Datei angegebenen Optionen sind allgemeine Optionen, die für alle Booteinträge gelten. Zu den für einen Xen-Hypervisor spezifischen Optionen gehört die Teilzeichenfolge _XEN_.

Wichtig
Wichtig: Versehen von inneren Anführungszeichen mit Escape-Zeichen

Komplexere Optionen mit Leerzeichen erfordern Anführungszeichen, damit sie als eine Option verarbeitet werden. Solche inneren Anführungszeichen müssen korrekt mit Escape-Zeichen versehen werden, zum Beispiel:

GRUB_CMDLINE_LINUX_XEN="debug loglevel=9 log_buf_len=5M \"ddebug_query=file drivers/xen/xen-acpi-processor.c +p\""
GRUB_DEFAULT

Hiermit legen Sie den Bootmenüeintrag fest, der standardmäßig gebootet werden soll. Als Wert ist eine Zahl, der vollständige Name eines Menüeintrags oder der Eintrag saved (Gespeichert) zulässig.

Mit GRUB_DEFAULT=2 wird der dritte Bootmenüeintrag gebootet (gezählt ab 0).

Mit GRUB_DEFAULT="2>0" wird der erste Untermenüeintrag im dritten übergeordneten Menüeintrag gebootet.

Mit GRUB_DEFAULT="Example boot menu entry" wird der Menüeintrag mit dem Titel Example boot menu entry gebootet.

Mit GRUB_DEFAULT=saved wird der Eintrag gebootet, der mit dem Befehl grub2-once oder grub2-set-default angegeben wurde. Während mit grub2-reboot der Standard-Booteintrag nur für das nächste Neubooten festgelegt wird, bestimmt grub2-set-default den Standard-Booteintrag bis zur nächsten Änderung. grub2-editenv list zeigt den nächsten Booteintrag an.

GRUB_HIDDEN_TIMEOUT

Hiermit wird ein bestimmter Zeitraum (in Sekunden) abgewartet, bis der Benutzer eine Taste drückt. Während dieses Zeitraums wird erst dann ein Menü angezeigt, wenn der Benutzer eine Taste drückt. Wird während des angegebenen Zeitraums keine Taste gedrückt, so wird die Steuerung an GRUB_TIMEOUT übergeben. GRUB_HIDDEN_TIMEOUT=0 prüft zunächst, ob Umschalttaste gedrückt wurde. Falls ja, wird das Bootmenü angezeigt; ansonsten wird sofort der Standard-Menüeintrag gebootet. Dies ist die Standardeinstellung, wenn GRUB 2 nur ein bootfähiges Betriebssystem erkennt.

GRUB_HIDDEN_TIMEOUT_QUIET

Bei false wird ein Countdown-Zähler auf einem leeren Bildschirm angezeigt, wenn die Funktion GRUB_HIDDEN_TIMEOUT aktiv ist.

GRUB_TIMEOUT

Dies ist der Zeitraum (in Sekunden), über den das Bootmenü angezeigt wird, bevor der Standard-Booteintrag automatisch gebootet wird. Sobald Sie eine Taste drücken, wird die Zeitbegrenzung aufgehoben und GRUB 2 wartet darauf, dass Sie manuell die gewünschte Auswahl treffen. Mit GRUB_TIMEOUT=-1 wird das Menü so lange angezeigt, bis Sie den gewünschten Booteintrag manuell auswählen.

GRUB_CMDLINE_LINUX

Die Einträge in dieser Zeile werden an die Booteinträge für den normalen Modus und den Wiederherstellungsmodus angehängt. Hiermit können Sie zusätzliche Kernel-Parameter im Booteintrag angeben.

GRUB_CMDLINE_LINUX_DEFAULT

Dieser Eintrag entspricht GRUB_CMDLINE_LINUX, jedoch mit dem Unterschied, dass die Einträge nur im normalen Modus angehängt werden.

GRUB_CMDLINE_LINUX_RECOVERY

Dieser Eintrag entspricht GRUB_CMDLINE_LINUX, jedoch mit dem Unterschied, dass die Einträge nur im Wiederherstellungsmodus angehängt werden.

GRUB_CMDLINE_LINUX_XEN_REPLACE

Dieser Eintrag ersetzt die GRUB_CMDLINE_LINUX-Parameter für alle Xen-Boot-Einträge.

GRUB_CMDLINE_LINUX_XEN_REPLACE_DEFAULT

Dieser Eintrag entspricht GRUB_CMDLINE_LINUX_XEN_REPLACE, jedoch mit dem Unterschied, dass nur Parameter von GRUB_CMDLINE_LINUX_DEFAULT ersetzt werden.

GRUB_CMDLINE_XEN

Diese Einträge werden an die Xen-Menüeinträge des Xen-Hypervisors für den normalen Modus und den Wiederherstellungsmodus übergeben. Beispiel:

GRUB_CMDLINE_XEN="loglvl=all guest_loglvl=all"
Tipp
Tipp: Xen-Hypervisor-Optionen

Eine vollständige Liste der Xen-Hypervisor-Optionen finden Sie unter https://xenbits.xen.org/docs/unstable/misc/xen-command-line.html.

GRUB_CMDLINE_XEN_DEFAULT

Dieser Eintrag entspricht GRUB_CMDLINE_XEN, jedoch mit dem Unterschied, dass die Einträge nur im normalen Modus angehängt werden.

GRUB_TERMINAL

Hiermit wird ein Eingabe-/Ausgabe-Terminal-Geräte angegeben und aktiviert. Mögliche Werte sind console (PC-BIOS- und EFI-Konsolen), serial (serielle Terminals), ofconsole (Open-Firmware-Konsolen) sowie der Standardwert gfxterm (Ausgabe im Grafikmodus). Sollen mehrere Geräte aktiviert werden, setzen Sie die Optionen in Anführungszeichen, beispielsweise GRUB_TERMINAL="console serial".

GRUB_GFXMODE

Dies ist die Auflösung für das grafische Terminal gfxterm. Sie können nur Modi verwenden, die von Ihrer Grafikkarte (VBE) unterstützt werden. Die Standardeinstellung lautet „auto“; hiermit wird nach Möglichkeit eine bevorzugte Auflösung ausgewählt. Mit dem Befehl videoinfo in der GRUB 2-Befehlszeile werden die verfügbaren Bildschirmauflösungen für GRUB 2 angezeigt. Zum Öffnen der Befehlszeile drücken Sie C, wenn der GRUB 2-Bootmenübildschirm angezeigt wird.

Außerdem können Sie eine Farbtiefe an die Einstellung für die Auflösung anhängen, z. B. GRUB_GFXMODE=1280x1024x24.

GRUB_BACKGROUND

Hiermit legen Sie ein Hintergrundbild für das grafische Terminal gfxterm fest. Das Bild muss in einer Datei gespeichert sein, die GRUB 2 beim Booten lesen kann, und die Dateinamenerweiterung muss .png, .tga, .jpg oder .jpeg lauten. Falls erforderlich, wird das Bild auf die Bildschirmgröße skaliert.

GRUB_DISABLE_OS_PROBER

Bei true wird die automatische Suche nach anderen Betriebssystemen deaktiviert. Nur die Kernel-Images in /boot/ und die Optionen aus Ihren eigenen Skripten in /etc/grub.d/ werden erkannt.

SUSE_BTRFS_SNAPSHOT_BOOTING

Bei true kann GRUB 2 direkt in Snapper-Snapshots booten. Weitere Informationen finden Sie im Abschnitt 10.3, „System-Rollback durch Booten aus Snapshots“.

Im GNU GRUB manual erhalten Sie eine vollständige Liste der Optionen.

18.2.3 Skripte in /etc/grub.d

Die Skripte in diesem Verzeichnis werden beim Ausführen des Befehls grub2-mkconfig -o /boot/grub2/grub.cfg gelesen. Ihre Anweisungen sind in /boot/grub2/grub.cfg integriert. Die Reihenfolge der Menüpunkte in grub.cfg ergibt sich aus der Reihenfolge, in der die Dateien in diesem Verzeichnis ausgeführt werden. Dateien mit einer Zahl am Anfang des Dateinamens werden zuerst ausgeführt, beginnend mit der niedrigsten Zahl. 00_header wird beispielsweise vor 10_linux ausgeführt, das wiederum vor 40_custom ausgeführt wird. Dateien mit einem Buchstaben an der ersten Stelle im Dateinamen werden nach den Dateien mit Zahlen am Anfang ausgeführt. Nur ausführbare Dateien erzeugen beim Ausführen von grub.cfg eine Ausgabe in grub2-mkconfig. Standardmäßig sind alle Dateien im Verzeichnis /etc/grub.d ausführbar.

Tipp
Tipp: Permanenter benutzerdefinierter Inhalt in grub.cfg

/boot/grub2/grub.cfg wird bei jedem Ausführen von grub2-mkconfig neu kompiliert, sodass benutzerdefinierte Inhalte verloren gehen. Um Ihre Zeilen direkt in /boot/grub2/grub.cfg einzufügen, ohne dass sie nach der Ausführung von grub2-mkconfig verloren gehen, fügen Sie sie zwischen folgenden Zeilen ein:

### BEGIN /etc/grub.d/90_persistent ###

und

### END /etc/grub.d/90_persistent ###

Das Skript 90_persistent sorgt dafür, dass diese Inhalte erhalten bleiben.

Hier finden Sie eine Liste der wichtigsten Skripten:

00_header

Hiermit werden Umgebungsvariablen festgelegt, beispielsweise der Speicherort von Systemdateien, Anzeigeeinstellungen, Themen und zuvor gespeicherte Einträge. Außerdem werden die Voreinstellungen aus der Datei /etc/default/grub importiert. In der Regel sind keine Änderungen an dieser Datei notwendig.

10_linux

Hiermit werden Linux-Kernel im root-Gerät erkannt und relevante Menüeinträge erstellt. Hierbei wird auch die zugehörige Option für den Wiederherstellungsmodus berücksichtigt (sofern aktiviert). Auf der Hauptmenüseite wird nur der jüngste Kernel angezeigt; weitere Kernel werden in einem Untermenü aufgeführt.

30_os-prober

Bei diesem Skript werden Linux und andere Betriebssysteme mithilfe von os-prober gesucht und die Ergebnisse werden in das GRUB 2-Menü eingetragen. Das Skript bietet Abschnitte für die Erkennung bestimmter anderer Betriebssysteme (z. B. Windows oder macOS).

40_custom

Mit dieser Datei können Sie schnell und einfach benutzerdefinierte Booteinträge in grub.cfg einbinden. Der Bestandteil exec tail -n +3 $0 am Anfang darf dabei nicht geändert werden.

Die Verarbeitungsreihenfolge ergibt sich aus den Zahlen am Anfang des Skriptnamens, wobei das Skript mit der niedrigsten Zahl zuerst ausgeführt wird. Wenn mehrere Skripte mit derselben Zahl beginnen, entscheidet die alphabetische Sortierung des vollständigen Namens über die endgültige Reihenfolge.

Tipp
Tipp: /boot/grub2/custom.cfg

Wenn Sie die Datei /boot/grub2/custom.cfg erstellen und mit Inhalt füllen, wird sie automatisch beim Booten direkt hinter 40_custom in /boot/grub2/grub.cfg eingefügt.

18.2.4 Zuordnung von BIOS-Laufwerken und Linux-Geräten

In GRUB Legacy wurden die Linux-Geräte mithilfe der Konfigurationsdatei device.mapaus den Nummern der BIOS-Laufwerke abgeleitet. Die Zuordnung von BIOS-Laufwerken und Linux-Geräten ist jedoch nicht in jedem Fall fehlerfrei erkennbar. Wenn Sie beispielsweise die Reihenfolge der IDE- und SCSI-Laufwerke in der BIOS-Konfiguration vertauschen, entsteht in GRUB Legacy eine falsche Reihenfolge.

In GRUB 2 werden beim Erzeugen der Datei grub.cfg dagegen Geräte-ID-Zeichenfolgen (UUIDs) oder Dateisystemkennungen erzeugt, damit dieses Problem vermieden wird. In GRUB 2 wird eine interaktive temporäre Gerätezuordnung genutzt, die in der Regel ausreicht, insbesondere bei Systemen mit nur einer Festplatte.

Falls die automatische Zuordnung in GRUB 2 außer Kraft gesetzt werden soll, legen Sie eine benutzerdefinierte Zuordnungsdatei mit dem Dateinamen /boot/grub2/device.map an. Im nachfolgenden Beispiel wird die Zuordnung so geändert, dass DISK 3 das Bootlaufwerk ist. Die GRUB 2-Partitionsnummern beginnen mit 1, nicht mit 0 wie in GRUB 2 Legacy.

(hd1)  /dev/disk-by-id/DISK3 ID
(hd2)  /dev/disk-by-id/DISK1 ID
(hd3)  /dev/disk-by-id/DISK2 ID

18.2.5 Ändern von Menüeinträgen während des Bootvorgangs

Das direkte Bearbeiten von Menüeinträgen eröffnet einen Ausweg, wenn das System aufgrund einer fehlerhaften Konfiguration nicht mehr gebootet werden kann. Hiermit können Sie außerdem neue Einstellungen testen, ohne die bestehende Systemkonfiguration ändern zu müssen.

  1. Wählen Sie im grafischen Bootmenü den zu bearbeitenden Eintrag mit den Pfeiltasten aus.

  2. Drücken Sie E. Der Texteditor wird geöffnet.

  3. Wechseln Sie mit den Pfeiltasten zur Zeile, die bearbeitet werden soll.

    Booteditor in GRUB 2
    Abbildung 18.1: Booteditor in GRUB 2

    Anschließend haben Sie zwei Möglichkeiten:

    1. Zum Bearbeiten der Kernel-Parameter fügen Sie die gewünschten Parameter (jeweils durch ein Leerzeichen getrennt) am Ende der Zeile an, die mit linux oder linuxefi beginnt. Unter https://en.opensuse.org/Linuxrc finden Sie eine vollständige Liste der Parameter.

    2. Alternativ bearbeiten Sie die zu ändernden Optionen, z. B. die Kernelversion. Mit der Taste →| erhalten Sie die möglichen Vervollständigungsoptionen.

  4. Mit F10 booten Sie das System mit den vorgenommenen Änderungen, mit Esc verwerfen Sie Ihre Änderungen und kehren zum GRUB 2-Menü zurück.

Auf diese Weise vorgenommene Änderungen gelten nur für den aktuellen Bootvorgang und werden nicht dauerhaft gespeichert.

Wichtig
Wichtig: Tastaturbelegung während des Bootvorgangs

Beim Bootvorgang ist nur die amerikanische Tastaturbelegung verfügbar. Siehe Abbildung 9.1, „US-Tastaturbelegung“.

Anmerkung
Anmerkung: Bootloader auf den Installationsmedien

Die Installationsmedien für Systeme mit herkömmlichen BIOS enthalten nach wie vor GRUB Legacy als Bootloader. Zum Hinzufügen von Bootparametern wählen Sie einen Eintrag aus und beginnen Sie mit der Eingabe. Die Ergänzungen des Installations-Booteintrags werden dauerhaft im installierten System gespeichert.

18.2.6 Festlegen eines Bootpassworts

GRUB 2 unterstützt schon vor dem Booten des Betriebssystems den Zugriff auf Dateisysteme. Dies bedeutet, dass Benutzer ohne root-Berechtigungen auf Dateien des Linux-Systems zugreifen können, auf die sie nach dem Booten keinen Zugriff haben. Um diese Zugriffe oder das Booten bestimmter Menüeinträge zu verhindern, können Sie ein Bootpasswort festlegen.

Wichtig
Wichtig: Booten erfordert ein Passwort

Das Bootpasswort muss dann bei jedem Booten eingegeben werden; das System wird also nicht automatisch gebootet.

Legen Sie das Bootpasswort gemäß den nachfolgenden Anweisungen fest. Alternativ verwenden Sie YaST (Bootloader durch Passwort schützen ).

  1. Verschlüsseln Sie das Passwort mit grub2-mkpasswd-pbkdf2::

    > sudo grub2-mkpasswd-pbkdf2
    Password: ****
    Reenter password: ****
    PBKDF2 hash of your password is grub.pbkdf2.sha512.10000.9CA4611006FE96BC77A...
  2. Fügen Sie die resultierende Zeichenfolge zusammen mit dem Befehl set superusers in die Datei /etc/grub.d/40_custom ein.

    set superusers="root"
    password_pbkdf2 root grub.pbkdf2.sha512.10000.9CA4611006FE96BC77A...
  3. Führen Sie zum Importieren der Änderungen in der Hauptkonfigurationsdatei Folgendes aus:

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

Nach dem Neubooten werden Sie von GRUB 2 aufgefordert, einen Benutzernamen und ein Passwort einzugeben, sobald Sie versuchen, einen Menüeintrag zu booten. Geben Sie root und das Passwort ein, das Sie während des Befehls grub2-mkpasswd-pbkdf2 eingegeben haben. Wenn der Berechtigungsnachweis fehlerfrei ist, bootet das System den angegebenen Booteintrag.

Weitere Informationen finden Sie in https://www.gnu.org/software/grub/manual/grub/grub.html#Security.

18.2.7 Autorisierter Zugriff auf Bootmenüeinträge

Sie können GRUB 2 so konfigurieren, dass der Zugriff auf die Bootmenüeinträge abhängig von der Autorisierungsstufe gewährt wird. Sie können mehrere mit Passwörtern geschützte Benutzerkonten konfigurieren und ihnen Zugriff auf verschiedene Menüeinträge zuweisen. So konfigurieren Sie die Autorisierung in GRUB 2:

  1. Erstellen und verschlüsseln Sie ein Passwort für jedes Benutzerkonto, das Sie in GRUB 2 verwenden möchten. Führen Sie den Befehl grub2-mkpasswd-pbkdf2 aus (siehe Abschnitt 18.2.6, „Festlegen eines Bootpassworts“).

  2. Löschen Sie die Datei /etc/grub.d/10_linux. Damit wird die Ausgabe der standardmäßigen GRUB 2-Menüeinträge verhindert.

  3. Bearbeiten Sie die Datei /boot/grub2/custom.cfg und fügen Sie manuell benutzerdefinierte Menüeinträge hinzu. Die folgende Schablone ist ein Beispiel, das Sie je nach Anwendungsfall individuell anpassen können:

    set superusers=admin
    password admin ADMIN_PASSWORD
    password maintainer MAINTAINER_PASSWORD
    
    menuentry 'Operational mode' {
      insmod ext2
      set root=hd0,1
      echo 'Loading Linux ...'
      linux /boot/vmlinuz root=/dev/vda1 $GRUB_CMDLINE_LINUX_DEFAULT $GRUB_CMDLINE_LINUX mode=operation
      echo 'Loading Initrd ...'
      initrd /boot/initrd
    }
    
    menuentry 'Maintenance mode' --users maintainer {
      insmod ext2
      set root=hd0,1
      echo 'Loading Linux ...'
      linux /boot/vmlinuz root=/dev/vda1 $GRUB_CMDLINE_LINUX_DEFAULT $GRUB_CMDLINE_LINUX mode=maintenance
      echo 'Loading Initrd ...'
      initrd /boot/initrd
    }
  4. Importieren Sie die Änderungen in der Hauptkonfigurationsdatei:

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

Im obigen Beispiel:

  • Das GRUB 2-Menü hat zwei Einträge – Operational mode (Betriebsmodus) und Maintenance mode (Wartungsmodus).

  • Wenn kein Benutzer angegeben ist, ist der Zugriff auf beide Bootmenüeinträge möglich, doch niemand kann auf die GRUB 2-Befehlszeile zugreifen oder vorhandene Menüeinträge bearbeiten.

  • Der admin-Benutzer kann auf die GRUB 2-Befehlszeile zugreifen und vorhandene Menüeinträge bearbeiten.

  • Der maintenance-Benutzer kann den Menüeintrag für die Wiederherstellung auswählen.

18.3 Konfigurieren des Bootloaders mit YaST

Mit dem YaST-Modul ist die Konfiguration des Bootloaders auf Ihrem SUSE Linux Enterprise Desktop am einfachsten. Wählen Sie im YaST-Kontrollzentrum die Option System › Bootloader. Das Modul zeigt die aktuelle Bootloader-Konfiguration des Systems und ermöglicht Ihnen, Änderungen vorzunehmen.

Verwenden Sie den Karteireiter Boot-Code-Optionen, um die Einstellungen in Bezug auf Typ, Speicherort und erweiterte Bootloader-Einstellungen anzuzeigen und zu ändern. Sie können festlegen, ob GRUB 2 im Standardmodus oder im EFI-Modus verwendet werden soll.

Wichtig
Wichtig: GRUB2-EFI für EFI-Systeme erforderlich

Bei einem EFI-System können Sie nur GRUB2-EFI installieren, da das System ansonsten nicht mehr bootfähig ist.

Wichtig
Wichtig: Neuinstallation des Bootloaders

Um den Bootloader neu zu installieren, muss eine Einstellung in YaST geändert und wieder zurückgesetzt werden. Um beispielsweise GRUB2-EFI neu zu installieren, wählen Sie zuerst GRUB2 aus und wechseln Sie sofort wieder zurück zu GRUB2-EFI.

Ansonsten wird der Bootloader möglicherweise nur zum Teil neu installiert.

Anmerkung
Anmerkung: Benutzerdefinierter Bootloader

Wenn Sie einen anderen Bootloader außer den aufgeführten Bootloadern verwenden möchten, wählen Sie Keinen Bootloader installieren. Lesen Sie die Dokumentation Ihres Bootloaders sorgfältig durch, bevor Sie diese Option auswählen.

18.3.1 Speicherort des Bootloaders und Boot-Code-Optionen

Der Standardspeicherort des Bootloaders ist abhängig von der Partitionseinrichtung – es handelt sich entweder um den Master Boot Record (MBR) oder den Bootsektor der Partition /. Um den Speicherort des Bootloaders zu ändern, gehen Sie wie folgt vor:

Vorgehen 18.1: Speicherort des Bootloaders ändern
  1. Wählen Sie den Karteireiter Boot-Code-Optionen und anschließend eine der folgenden Optionen für Speicherort des Bootloaders:

    Booten vom Master Boot Record

    Hiermit wird der Bootloader in den MBR der Festplatte installiert, auf der sich das Verzeichnis /boot befindet. In der Regel ist dies die Festplatte, die in / eingehängt ist. Falls /boot in einer anderen Partition auf einer anderen Festplatte eingehängt ist, wird entsprechend der MBR der anderen Festplatte herangezogen.

    Booten von der root-Partition

    Der Bootloader wird in den Bootsektor der Partition / installiert.

    Benutzerdefinierte root-Partition

    Mit dieser Option können Sie den Speicherort des Bootloaders manuell angeben.

  2. Klicken Sie auf OK, um die Änderungen zu übernehmen.

Bootcode-Optionen
Abbildung 18.2: Bootcode-Optionen

Die Registerkarte Boot-Code-Optionen enthält die folgenden zusätzlichen Optionen:

Aktives Flag in Partitionstabelle für Bootpartition festlegen

Aktiviert die Partition, die das Verzeichnis /boot enthält. Bei POWER-Systemen wird die PReP-Partition aktiviert. Verwenden Sie diese Option auf Systemen mit älterem BIOS und/oder älteren Betriebssystemen, da diese Systeme unter Umständen nicht von einer nicht aktiven Partition gebootet werden können. Diese Option kann problemlos aktiviert bleiben.

Generischen Bootcode in MBR schreiben

Wenn der MBR einen benutzerdefinierten „Nicht-GRUB-Code“ enthält, ersetzt diese Option diesen Code durch einen generischen, betriebssystemunabhängigen Code. Wenn Sie diese Option deaktivieren, ist das System eventuell nicht mehr bootfähig.

Unterstützung für Trusted Boot aktivieren

Startet TrustedGRUB2, womit die Funktion für Trusted Computing (Trusted Platform Module (TPM)) unterstützt wird. Weitere Informationen finden Sie unter https://github.com/Sirrix-AG/TrustedGRUB2.

Der Abschnitt Flag für geschützten MBR enthält folgende Optionen:

set

Diese Option eignet sich für das herkömmliche Booten mit Legacy-BIOS.

entfernen

Diese Option eignet sich für das UEFI-Booten.

nicht ändern

Dies ist in der Regel die beste Option, wenn bereits ein funktionsfähiges System vorliegt.

In den meisten Fällen verwendet YaST standardmäßig die jeweils richtige Option.

18.3.2 Anpassen der Festplattenreihenfolge

Wenn der Rechner mit mehreren Festplatten ausgestattet ist, können Sie die Bootreihenfolge für die Festplatten festlegen. GRUB 2 wird auf der ersten Festplatte in der Liste installiert, wenn vom MBR gebootet wird. Auf dieser Festplatte wird SUSE Linux Enterprise Desktop standardmäßig installiert. Die restlichen Einträge in der Liste bilden Hinweise für den Geräte-Mapper von GRUB 2 (siehe Abschnitt 18.2.4, „Zuordnung von BIOS-Laufwerken und Linux-Geräten“).

Warnung
Warnung: Nicht bootfähiges System

Der Standardwert gilt in der Regel für nahezu alle Bereitstellungen. Wenn Sie die Bootreihenfolge der Festplatten falsch ändern, ist das System beim nächsten Booten unter Umständen nicht mehr bootfähig. Dies ist beispielsweise der Fall, wenn die erste Festplatte in der Liste nicht in der BIOS-Bootreihenfolge aufgeführt und der MBR der anderen Festplatten in der Liste leer ist.

Vorgehen 18.2: Festlegen der Festplattenreihenfolge
  1. Öffnen Sie die Registerkarte Boot-Code-Optionen.

  2. Klicken Sie auf Festplatten-Bootreihenfolge bearbeiten.

  3. Ändern Sie bei mehreren aufgeführten Festplatten deren Reihenfolge mit einem Klick auf Auf oder Ab.

  4. Klicken Sie zweimal auf OK, um die Änderungen zu speichern.

18.3.3 Konfigurieren der erweiterten Optionen

Erweiterte Bootparameter lassen sich über die Registerkarte Bootloader-Optionen konfigurieren.

18.3.3.1 Registerkarte Bootloader-Optionen

Bootloader-Optionen
Abbildung 18.3: Bootloader-Optionen
Zeitlimit des Bootloaders

Zum Ändern des Werts für Zeitüberschreitung in Sekunden geben Sie einen neuen Wert ein, und klicken Sie mit der Maus auf die entsprechenden Pfeilschaltfläche.

Fremdes OS testen

Mit dieser Option sucht der Bootloader nach anderen Systemen, z. B. Windows oder andere Linux-Installationen.

Menü beim Booten verbergen

Blendet das Bootmenü aus und bootet den Standardeintrag.

Anpassen des Standard-Boot-Eintrags

Wählen Sie den gewünschten Eintrag in der Liste Standard-Bootabschnitt aus. Beachten Sie, dass das Zeichen > im Namen des Booteintrags den Bootabschnitt und den zugehörigen Unterabschnitt begrenzt.

Bootloader durch Passwort schützen

Schützt den Bootloader und das System mit einem zusätzlichen Passwort. Details zur manuellen Konfiguration finden Sie in Abschnitt 18.2.6, „Festlegen eines Bootpassworts“. Das Bootpasswort muss bei jedem Booten eingegeben werden, wenn diese Option aktiviert ist. Das System wird also nicht automatisch gebootet. Wenn Sie jedoch das Verhalten von GRUB 1 bevorzugen, aktivieren Sie zusätzlich Nur Eintragsänderungen schützen. Bei dieser Einstellung darf jeder eine Boot-Eingabe auswählen und das System booten. Das Passwort für den GRUB 2 root-Benutzer ist jedoch nur zum Ändern der Boot-Einträge erforderlich.

18.3.3.2 Registerkarte Kernel-Parameter

Kernel-Parameter
Abbildung 18.4: Kernel-Parameter
Optionaler Kernel-Befehlszeilenparameter

Geben Sie hier optionale Kernel-Parameter an, um Systemfunktionen zu aktivieren/deaktivieren, Treiber hinzuzufügen usw

CPU-Mitigationen

SUSE hat mindestens einen Kernel-Boot-Befehlszeilenparameter für alle Software-Mitigationen veröffentlicht, die zur Vorbeugung von CPU-Seitenkanalangriffen bereitgestellt wurden. Einige Parameter führen unter Umständen zu Leistungseinbußen. Bringen Sie die Sicherheit und Leistung je nach Ihrer Situation mit einer der folgenden Optionen ins Gleichgewicht:

Automatisch Aktiviert alle erforderlichen Mitigationen für Ihr CPU-Modell, schützt jedoch nicht vor CPU-übergreifenden Thread-Angriffen. Diese Einstellung kann die Leistung in gewissem Maße einschränken, je nach Auslastung.

Auto + kein SMT Aktiviert alle verfügbaren Sicherheitsmitigationen. Aktiviert alle erforderlichen Mitigationen für Ihr CPU-Modell. Darüber hinaus wird Simultaneous Multithreading (SMT) deaktiviert, sodass Seitenkanalangriffe über mehrere CPU-Threads unterbunden werden. Diese Einstellung kann die Leistung weiter einschränken, je nach Auslastung.

Aus Deaktiviert alle Mitigationen. Es sind Seitenkanalangriffe gegen die CPU möglich, je nach CPU-Modell. Diese Einstellung wirkt sich nicht auf die Leistung aus.

Manuell Gibt keine Mitigationsstufe vor. Legen Sie die CPU-Mitigationen manuell über die Kernel-Befehlszeilenoptionen fest.

Grafik-Konsole benutzen

Wenn diese Option aktiviert ist, wird das Bootmenü nicht im Textmodus dargestellt, sondern in einem grafischen Begrüßungsbildschirm. Die Auflösung des Bootbildschirms wird standardmäßig automatisch festgelegt, doch Sie können diese manuell über Konsolenauflösung festlegen. Die Datei mit der Definition des Grafikthemas wird mit der Konsolenthema-Dateiauswahl angegeben. Ändern Sie diese Einstellung nur, wenn Sie ein eigenes benutzerdefiniertes Thema anwenden möchten.

Serielle Konsole verwenden

Wenn Ihr Computer über eine serielle Konsole gesteuert wird, aktivieren Sie diese Option und geben Sie an, welcher COM-Port in welcher Geschwindigkeit verwendet werden soll. Informationen finden Sie unter info grub oder https://www.gnu.org/software/grub/manual/grub.html#Serial-terminal

18.4 Nützliche Kommandos in GRUB 2

grub2-mkconfig

Generiert eine neue Datei /boot/grub2/grub.cfg basierend auf /etc/default/grub und den Skripten von /etc/grub.d/.

Beispiel 18.1: Verwendung von grub2-mkconfig
grub2-mkconfig -o /boot/grub2/grub.cfg
Tipp
Tipp: Syntaxprüfung

Wenn Sie grub2-mkconfig ohne Parameter ausführen, wird die Konfiguration an STDOUT ausgegeben und kann dort abgerufen werden. Zur Syntaxprüfung führen Sie grub2-script-check aus, sobald die Datei /boot/grub2/grub.cfg geschrieben wurde.

Wichtig
Wichtig: Mit grub2-mkconfig können UEFI Secure-Boottabellen nicht repariert werden

Wenn Sie UEFI Secure Boot verwenden und Ihr System GRUB 2 nicht mehr ordnungsgemäß erreichen kann, müssen Sie möglicherweise zusätzlich Shim neu installieren und die UEFI-Boottabelle regenerieren. Verwenden Sie hierzu den folgenden Befehl:

# shim-install --config-file=/boot/grub2/grub.cfg
grub2-mkrescue

Hiermit wird ein bootfähiges Rettungs-Image der installierten GRUB 2-Konfiguration erstellt.

Beispiel 18.2: Verwendung von grub2-mkrescue
grub2-mkrescue -o save_path/name.iso iso
grub2-script-check

Hiermit prüfen Sie die angegebene Datei auf Syntaxfehler.

Beispiel 18.3: Verwendung von grub2-script-check
grub2-script-check /boot/grub2/grub.cfg
grub2-once

Hiermit legen Sie den Standard-Booteintrag für den nächsten Bootvorgang fest (dies wird nicht dauerhaft gespeichert). Mit der Option --list erhalten Sie eine Liste der verfügbaren Booteinträge.

Beispiel 18.4: Verwendung von grub2-once
grub2-once number_of_the_boot_entry
Tipp
Tipp: grub2-once help

Wenn Sie das Programm ohne Angabe von Optionen aufrufen, erhalten Sie eine vollständige Liste der zulässigen Optionen.

18.5 Rescue-Modus

Der Rescue-Modus ist eine spezielle root-Benutzersitzung zur Fehlerbehebung und Reparatur von Systemen, bei denen beim Booten eine Fehler auftritt. Er bietet eine Einzelbenutzerumgebung mit lokalen Dateisystemen und aktiven Kernsystemdiensten. Es sind keine Netzwerkschnittstellen aktiviert. Gehen Sie folgendermaßen vor, um in den Rescue-Modus zu gelangen.

Vorgehen 18.3: Aufrufen des Rescue-Modus
  1. Booten Sie das System neu. Der Bootbildschirm wird mit dem GRUB 2-Startmenü angezeigt.

  2. Wählen Sie den Menüeintrag zum Booten und drücken Sie e, um die Bootzeile zu bearbeiten.

  3. Fügen Sie den folgenden Parameter an die Zeile mit den Kernel-Parametern an:

    systemd.unit=rescue.target
  4. Drücken Sie Strg+X , um mit diesen Einstellungen zu booten.

  5. Geben Sie das Passwort für root ein.

  6. Nehmen Sie alle erforderlichen Änderungen vor.

  7. Wechseln Sie wieder zum Ziel im normalen Betrieb, indem Sie an der Befehlszeile systemctl isolate multi-user.target oder systemctl isolate graphical.target eingeben.

18.6 Weitere Informationen

Umfassende Informationen zu GRUB 2 finden Sie unter https://www.gnu.org/software/grub/. Ausführliche Informationen finden Sie auch auf der Infoseite für den Befehl grub. Weitere Informationen zu bestimmten Themen erhalten Sie auch, wenn Sie GRUB 2 in der Suchfunktion für technische Informationen unter https://www.suse.com/support als Suchwort eingeben.