Konfiguration
Achtung!
Änderungen an den Konfigurationsdateien von GRUB 2 können dazu führen, dass das System bei unsachgemäßen Einstellungen nicht mehr gestartet wird. Man sollte daher vor Änderungen an der Konfiguration stets eine Sicherung der Dateien /etc/default/grub sowie der Verzeichnisse /etc/grub.d und /etc/default/grub.d anlegen. Außerdem benötigt man für den Notfall ein aktuelles Rettungssystem auf einem externen Medium, um GRUB 2 in einem solchen Fall wieder reparieren zu können.
Dieser Artikel wurde für die folgenden Ubuntu-Versionen getestet:
Ubuntu 24.04 Noble Numbat
Ubuntu 22.04 Jammy Jellyfish
Du möchtest den Artikel für eine weitere Ubuntu-Version testen? Mitarbeit im Wiki ist immer willkommen! Dazu sind die Hinweise zum Testen von Artikeln zu beachten.
Zum Verständnis dieses Artikels sind folgende Seiten hilfreich:
- Konfigurationsübersicht
- Vordefinierte GRUB-2-Konfigurationsparameter
- Standardvariablen
- Bearbeitung der Variablen
- Kontrolle der Bearbeitung
- GRUB-Konfiguration aktualisieren
- Bedeutung der Variablen
- GRUB_DEFAULT
- GRUB_SAVEDEFAULT
- GRUB_TIMEOUT
- GRUB_TIMEOUT_STYLE
- GRUB_DISTRIBUTOR
- GRUB_CMDLINE_LINUX
- GRUB_CMDLINE_LINUX_DEFAULT
- GRUB_TERMINAL_INPUT
- GRUB_TERMINAL_OUTPUT
- GRUB_TERMINAL
- GRUB_SERIAL_COMMAND
- GRUB_DISABLE_LINUX_UUID
- GRUB_DISABLE_LINUX_PARTUUID
- GRUB_DISABLE_RECOVERY
- GRUB_GFXMODE
- GRUB_GFXPAYLOAD_LINUX
- GRUB_BACKGROUND
- GRUB_THEME
- GRUB_DISABLE_OS_PROBER
- GRUB_OS_PROBER_SKIP_LIST
- GRUB_DISABLE_SUBMENU
- GRUB_ENABLE_CRYPTODISK
- GRUB_INIT_TUNE
- GRUB_RECORDFAIL_TIMEOUT
- GRUB_RECOVERY_TITLE
- GRUB_FORCE_PARTUUID
- Links
Die Entwickler haben GRUB 2 so ausgelegt, dass er in Standard-Umgebungen – wie z.B. Rechnern mit genau einem Datenträger – automatisch zu einem stets startfähigem System führt und dabei weitestgehend unbemerkt vom Anwender im Hintergrund seine Arbeit verrichtet. So ist bei einem solchen System das GRUB-Menü standardmäßig versteckt, so dass es der Endanwender gar nicht zu Gesicht bekommt.
Die Erstellung der GRUB-2-Konfigurationsdatei, aus der GRUB 2 die Einstellungen für die Darstellung des GRUB-Auswahl-Menüs während des Systemstarts bezieht, ist standardmäßig vollständig automatisiert. Das ist für den Endanwender komfortabel, weil er sich mit der Konfiguration zunächst nicht auseinandersetzen muss. Auf der anderen Seite ist ein Eingriff in die Konfiguration durch die Automation unter Umständen komplexer, als man es sich zunächst vorstellen mag.
Dieser Artikel erklärt daher grundlegend, wie die Konfiguration bzw. die Erstellung der Konfiguration von GRUB 2 erfolgt und wie der Nutzer in einfacher Weise durch Setzen bzw. Ändern vordefinierter Parameter Einfluss auf die Konfiguration nehmen kann.
Hinweis:
Anwender die sich mit der Arbeit an Text-Dateien schwer tun, können Konfigurationsänderungen zunächst auch mit dem grafischen Konfigurationswerkzeug GRUB Customizer versuchen.
Konfigurationsübersicht¶
Die Konfiguration von GRUB 2 unterteilt sich zum einen in die Konfigurationsdatei aus der GRUB 2 bei dessen Ausführung während des Systemstarts die Parameter für die Gestaltung der Laufzeitumgebung bezieht. In der Regel legt der Endanwender unter Ubuntu Parameter aber in Konfigurationsdateien fest aus denen dann das Programm grub-mkconfig die eigentliche Konfigurationsdatei für die Laufzeitumgebung automatisch generiert.
Von der Laufzeitumgebung verwendete Konfiguration - grub.cfg¶
GRUB 2 bezieht seine Konfiguration zur Laufzeit standardmäßig aus der Datei /boot/grub/grub.cfg. Diese Konfigurations-Datei ist in einer eigens dafür entwickelten Skriptsprache geschrieben, deren Syntax man im GRUB 2 Handbuch 🇬🇧 unter Ubuntu im Terminal[1] wie folgt findet:
info -f grub -n 'Shell-like scripting'
Alternativ kann man gleichen Inhalt auch online nachlesen: https://www.gnu.org/software/grub/manual/grub/html_node/Shell_002dlike-scripting.html 🇬🇧
Wer als Anwender ohne weitergehende Computer-Kenntnisse bei "eigens dafür entwickelten Skriptsprache" bereits Panik bekommt, kennt nun bereits einen Grund, warum die GRUB-Macher das Erstellen dieser Konfigurationsdatei standardmäßig automatisiert haben: Man erspart dem Benutzer damit, sich mit dieser Skriptsprache auskennen zu müssen.
Ein weiterer Grund ergibt sich aus dem Umstand, dass das GRUB-Menü hinsichtlich von Linux-Betriebssystemen Kernel-Einträge zur Auswahl anbietet. Die Kernel werden aber unter Linux regelmäßig aktualisiert, weshalb ein Kernel-Update regelmäßig ein Update der GRUB-Laufzeit-Konfiguration erfordert. Es wäre für den Endanwender lästig, dies stets manuell in der /boot/grub/grub.cfg anpassen zu müssen.
Außerdem könnte der Anwender das Aktualisieren der Datei vergessen und dann unter Umständen einen veralteten Kernel verwenden.
Automatische Generierung der Laufzeit-Konfiguration¶
Die Laufzeit-Konfiguration in /boot/grub/grub.cfg wird jedes mal erstellt bzw. aktualisiert, wenn durch den Anwender oder automatisch durch das System der Befehl update-grub mit Rootrechten ausgeführt wird. update-grub ist dabei schlicht eine Kurzform des Befehls grub-mkconfig -o /boot/grub/grub.cfg. Dieser Befehl veranlasst GRUB, eine Konfiguration zu generieren und das Ergebnis mittels der Option -o in die Datei /boot/grub/grub.cfg auszugeben.
Ablauf des Generierungsprozesses¶
Sobald grub-mkconfig ausgeführt wird, liest es zunächst die Konfigurations-Parameter ein, die für den dann folgenden Generierungsprozesses gelten sollen. Diese Konfigurations-Parameter werden wie folgt bezogen:
Zum einen werden einige Parameter direkt innerhalb von
grub-mkconfig- bei welchem es sich um ein einfaches Shell-Script handelt - gesetzt.Daneben werden Standard-Parameter aus der Datei /etc/default/grub eingelesen.
Schließlich werden etwaig vorhandene Dateien aus /etc/default/grub.d/*.cfg in alphanumerischer Reihenfolge ausgewertet.
Das Einlesen erfolgt dabei in der angegebenen Reihenfolge. Sind die selben Konfigurations-Parameter dabei an verschiedenen Stellen gesetzt, so setzt sich der zuletzt eingelesene Parameter durch.
Nachdem alle Parameter eingelesen sind startet der Generierungsprozess unter deren Berücksichtigung. Dabei werden die Shell-Skripte aus dem Verzeichnis /etc/grub.d in alphanumerischer Reihenfolge abgearbeitet. Diese Skripte erzeugen dabei Schritt-für-Schritt den Inhalt der /boot/grub/grub.cfg.
Möglichkeiten der Einflussnahme auf den Generierungsprozess¶
Aus obiger Ablaufbeschreibung ergeben sich für den Anwender folgende Möglichkeiten der Einflussnahme auf den Generierungsprozess:
Änderung vordefinierter Konfigurations-Parameter (Schwierigkeitsgrad: einfach, nur Kenntnisse der bestehenden Konfigurationsparameter notwendig - Flexibilität: gering)
Ändern der Ablaufreihenfolge der Skripte innerhalb von /etc/grub.d (Schwierigkeitsgrad: einfach keine besonderen Kenntnisse notwendig - Flexibilität: gering, ermöglicht ausschließlich die Beeinflussung der Reihenfolge der Menü-Einträge)
Bestehende Skripte anpassen bzw. durch eigene ersetzen bzw. zu den bestehenden Skripten zusätzlich eigene hinzufügen (Schwierigkeitsgrad: Grundlegende Shell-Programmier-Kenntnisse notwendig - Flexibilität: hoch)
Dieser Artikel beschränkt sich im folgenden auf die Änderung vordefinierter Konfigurations-Parameter. Zur Änderung der Reihenfolge und des Inhaltes der bestehenden Skripte sowie zum Anlegen eigener Skripte siehe GRUB 2/Skripte.
Manuelles Erstellen der grub.cfg¶
Neben der automatischen Generierung der Konfiguration durch die vorgegebenen GRUB-2-Skripte, spricht grundsätzlich überhaupt nichts dagegen, die Laufzeit-Konfigurationsdatei grub.cfg manuell zu erstellen. Schließlich bietet diese Möglichkeit die größtmögliche Flexibilität der Konfiguration. Man muss dabei neben den bereits [oben] erwähnten Nachteilen aber berücksichtigen, dass man sich dann auch um das Außerkraftsetzung der von den GRUB-Entwicklern und Ubuntu-Paketbetreuern eingerichteten Automatismen kümmern muss, damit die manuell erstellte Konfiguration nicht überschrieben wird.
Da man dabei die Vorgaben der Ubuntu-Paketbetreuer verlässt, wird diese Vorgehen nur erfahrenen Anwendern empfohlen und ist auch nicht Gegenstand dieses Artikels!
Es sei diesbezüglich nochmals auf das GRUB-Handbuch 🇬🇧 verwiesen.
Vordefinierte GRUB-2-Konfigurationsparameter¶
Die grundlegenden, allgemeinen Einstellungen von GRUB 2 befinden sich standardmäßig in der Datei /etc/default/grub, bei der es sich um eine einfache Textdatei handelt, die dem POSIX-Standard für die Eingabe folgt.
Die Konfigurationsparameter (Variablen) werden dort nach folgendem, einfachen Schema definiert:
Variable=Wert
Wertmuss in Anführungszeichen eingefasst werden, sobald er Leerzeichen enthält.Eine
Variablekann deaktiviert und trotzdem in der Datei belassen werden indem man der Zeile mit dem betreffenden Parameter eine#voranstellt. So lassen sich auch Kommentare in die Datei integrieren.Weiterhin ist zu beachten, dass manche für das Durchreichen durch GRUB bestimmte Zeichen wie z.B.
$gleich doppelt durch Backslash (\\) maskiert werden müssen.
Standardvariablen¶
Die Textdatei /etc/default/grub sieht direkt auf neueren Installationen in aller Regel wie folgt aus:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 | # If you change this file, run 'update-grub' afterwards to update # /boot/grub/grub.cfg. # For full documentation of the options in this file, see: # info -f grub -n 'Simple configuration' GRUB_DEFAULT=0 GRUB_TIMEOUT_STYLE=hidden GRUB_TIMEOUT=0 GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian` GRUB_CMDLINE_LINUX_DEFAULT="quiet splash" GRUB_CMDLINE_LINUX="" # Uncomment to enable BadRAM filtering, modify to suit your needs # This works with Linux (no patch required) and with any kernel that obtains # the memory map information from GRUB (GNU Mach, kernel of FreeBSD ...) #GRUB_BADRAM="0x01234567,0xfefefefe,0x89abcdef,0xefefefef" # Uncomment to disable graphical terminal (grub-pc only) #GRUB_TERMINAL=console # The resolution used on graphical terminal # note that you can use only modes which your graphic card supports via VBE # you can see them in real GRUB with the command 'vbeinfo' #GRUB_GFXMODE=640x480 # Uncomment if you don't want GRUB to pass "root=UUID=xxx" parameter to Linux #GRUB_DISABLE_LINUX_UUID=true # Uncomment to disable generation of recovery mode menu entries #GRUB_DISABLE_RECOVERY="true" # Uncomment to get a beep at grub start #GRUB_INIT_TUNE="480 440 1" |
Bearbeitung der Variablen¶
Grundsätzlich kann die Datei /etc/default/grub mit einem Editor mit Rootrechten bearbeitet werden. Unter Ubuntu-basierten Distributionen liest grub-mkconfig aber auch Parameter-Konfigurationen aus dem Verzeichnis /etc/default/grub.d ein.
Deshalb sollte man Änderungen an bereits definierten oder auch noch nicht gesetzten Variablen in einer eigenen Datei im Verzeichnis /etc/default/grub.d ablegen.
Dies hat folgende Vorteile:
Man sieht mit einem Blick in die entsprechende Datei sofort die eigenen Anpassungen und muss diese nicht extra dokumentieren.
Eine eigene Datei im Verzeichnis /etc/default/grub.d wird bei Neuinstallation von GRUB 2 oder bei einem Upgrade seiner Pakete nicht überschrieben.
Man kann Konfigurations-Parameter in jeweils einer eigenen Datei gruppieren und so dann leicht aktivieren oder deaktivieren.
Für die Erstellung eigener Konfigurations-Dateien im Verzeichnis /etc/default/grub.d gelten die folgenden Regeln:
Damit die Datei von
grub-mkconfigeingelesen wird, muss der Dateiname auf .cfg enden und die Datei muss ausführbar sein. Folglich lässt sich eine Konfiguration durch Setzen bzw. Entfernen der Erweiterung aktivieren bzw. deaktivieren oder auch durch Entfernen/Setzen der Ausführungsrechte.Die Dateien im Verzeichnis werden in alphanumerischer Reihenfolge eingelesen. Parameter-Dateien die mit 11 beginnen werden vor Dateien eingelesen die mit zz beginnen. D.h. bei gleichen Parametern in beiden Dateien überschreiben die aus der Datei zz die aus der Datei 11.
Beispiel: Möchte man den Wert von GRUB_TIMEOUT_STYLE auf den Wert menu ändern, um das GRUB-Menü bei jedem Start anzuzeigen, so geht dies wie folgt:
Anlegen einer Datei /etc/default/grub.d/zz_myconf.cfg im Terminal:
sudoedit /etc/default/grub.d/zz_myconf.cfg
Setzen ausschließlich der Variablen, die man bearbeiten möchte:
GRUB_TIMEOUT_STYLE=menu
Speichern der Datei /etc/default/grub.d/zz_myconf.cfg, beim Editor nano geschieht dies über die Tasten Strg + O , bestätigen mit ⏎ und verlassen mittels Strg + X .
Bei der nächsten Aktualisierung von GRUB 2 wird die geänderte Einstellung dann übernommen.
Kontrolle der Bearbeitung¶
Bevor man die Änderungen abschließend in die Datei /boot/grub/grub.cfg überträgt, kann und sollte man sich von Auswirkung der Änderungen ein Bild machen. Dazu führt man einfach grub-mkconfig ohne Dateiausgabe-Option aus:
sudo grub-mkconfig
Da die Ausgabe recht lang und damit unübersichtlich ist und für jedes Skript das abgearbeitet wird eine eigene Sektion in der Ausgabe vorhanden ist, kann man sich auch nur Teilausschnitte anzeigen lassen. Z.B. nur den Kopf der GRUB-Konfiguration (00_header):
sudo grub-mkconfig | grep -Poz "(?<=### BEGIN /etc/grub.d/00_header ###)(?s).*(?=### END /etc/grub.d/00_header ###)"
GRUB-Konfiguration aktualisieren¶
⚓︎ Nach jeder Änderung an den Konfigurations-Dateien /etc/default/grub.d/* bzw. oder an Skripten im Verzeichnis /etc/grub.d, muss die GRUB-Konfiguration - die in der Datei /boot/grub/grub.cfg gespeichert ist - aktualisiert werden. Andernfalls werden Änderungen beim nächsten Systemstart nicht sichtbar. Dies erledigt man mittels:
sudo update-grub
Bedeutung der Variablen¶
Mit der Eingabe in ein Terminal von
info -f grub -n 'Simple configuration'
erhält man eine Übersicht 🇬🇧 aller Variablen, die nachfolgend in Teilen und frei übersetzt wiedergegeben wird. Teilweise wurden die folgenden Informationen um Erfahrungen aus der Praxis ergänzt und gehen damit über die Darstellung im obigen Handbuch hinaus. Einige Variablen, die im Handbuch erklärt werden, können im folgenden fehlen:
GRUB_DEFAULT¶
Gibt an, welcher Eintrag im Menü standardmäßig hervorgehoben wird. Dieser Eintrag wird geladen, falls keine andere Auswahl getroffen wird.
Mögliche Werte: Zahl, Menü-Eintrag-ID, Menü-Eintragbeschreibung oder der Spezialwert
savedZahl: Die Zählung beginnt mit 0. Der dritte Eintrag im Menü würde also durch eine 2 hervorgehoben. Diese Vorgabe ist statisch.Menü-Eintrag-ID: Wählt den Eintrag mit der exakten Eintrags-ID.Beispiel: Lautet der betreffenden Menü-Eintrag in der grub.cfg
menuentry 'Ubuntu' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-2881e6a7-4b74-4dc0-98e3-02ef130a5b5c'
, dann definiert man
GRUB_DEFAULT="gnulinux-simple-2881e6a7-4b74-4dc0-98e3-02ef130a5b5c"
Menü-Eintragbeschreibung: Legt den Standardeintrag anhand der Menü-Beschreibung aus. Diese Option sollte man nach Möglichkeit nicht mehr verwenden, da sich die Beschreibungen unter Umständen ändern können.Beispiel: Lautet der betreffenden Menü-Eintrag in der grub.cfg
menuentry 'Ubuntu, mit Linux 5.15.0-58-generic' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-5.15.0-58-generic-advanced-2881e6a7-4b74-4dc0-98e3-02ef130a5b5c'
, dann definiert man
GRUB_DEFAULT="Ubuntu, mit Linux 5.15.0-58-generic"
saved: Trägt man den Wertsavedein, so wird GRUB veranlasst, den in /boot/grub/grubenv gespeicherten Menüeintrag auszulesen und als Vorgabe zu verwenden, unabhängig davon, ob die Reihenfolge inzwischen durch ein Kernel-Update oder durch eigene Skripte verändert wurde. Siehe auch GRUB_SAVEDEFAULT.
Standard:
GRUB_DEFAULT=0
GRUB_SAVEDEFAULT¶
Ermöglicht dem Anwender zur Laufzeit von GRUB durch Auswahl eines Eintrages im GRUB-Menü mittels
↑ /
↓ und
⏎ den betreffenden Eintrag für künftige GRUB-Läufe als Standardeintrag festzulegen. Dies erfordert jedoch, dass zugleich die Variable GRUB_DEFAULT auf den Wert saved gesetzt ist.
Mögliche Werte: boolescher Ausdruck
true,falsetrue: Das Auswählen eines Menüeintrages im GRUB-Menü durch den Benutzer legt diesen für künftige GRUB-Starts als Standardeintrag fest.falseoder nicht gesetzt: Das Auswählen eines Menü-Eintrages durch den Anwender verändert den von GRUB verwendeten Standard nicht.
Standard:
GRUB_SAVEDEAULT=
Hinweis:
Diese Funktion setzt auf das Vorhandensein des GRUB-Environment-Blockes, der jedoch nicht in jeder Systemkonfiguration zur Verfügung steht.
grubenv anpassen¶
Hatte man Probleme beim Starten mit einem Menüeintrag oder kommt man wegen falscher Einstellungen in der Datei /etc/default/grub bei den Werten GRUB_DEFAULT oder anderer Fehler nicht ins GRUB-Menü, so kann man die Datei /boot/grub/grubenv auch vom Desktop her in einem Terminal mit grub-set-default neu konfigurieren.
Will man dagegen einem bestimmten Eintrag beim nächsten Start des Rechners verwenden, so kann man die Datei /boot/grub/grubenv vom Desktop her in einem Terminal [1] entsprechend mit grub-reboot einrichten, so dass dieser Eintrag einmalig aufgerufen wird. Der nächste Start erfolgt dann wieder mit dem vorher gespeicherten Eintrag.
Achtung!
Das Abspeichern funktioniert aus Sicherheitsgründen nicht auf einem RAID-Verbund, einem LVM-Dateisystem, einem Btrfs-Dateisystem oder einem ZFS-Dateisystem (siehe GNU GRUB MANUAL).
GRUB_TIMEOUT¶
Mit dieser Variablen lässt sich eine Zeit in Sekunden festlegen, die verstreichen soll bevor GRUB 2 ohne Benutzerinteraktion mit dem Laden des Standard-Eintrages (siehe GRUB_DEFAULT fortfährt. Dem Benutzer bleibt damit die angegebene Zeit, um auf GRUB 2 Einfluss nehmen zu können.
Mögliche Werte: Zahl
-1: Kein Timeout, d.h. gebootet wird erst nach Eingabe durch den Benutzer.0: Es wird ohne Verzögerung direkt der unter GRUB_DEFAULT festgelegte Eintrag gestartet, ohne dass das Auswahlmenü angezeigt wird.postive Zahl X: Wartet ohne Tastendruck durch den AnwenderXSekunden bevor der unter GRUB_DEFAULT gesetzte Eintrag gestartet wird.Beispiel:
GRUB_TIMEOUT=15(wartet für 15 Sekunden auf eine Aktion des Benutzers, startet andernfalls nach Ablauf der 15 Sekunden den Standardeintrag.)
Standard:
GRUB_TIMEOUT=5
Hinweis:
Greift der Anwender durch Druck einer Taste ein, so wird der Timeout unterbrochen. GRUB 2 fährt dann mit dem Systemstart erst nach entsprechender Aufforderung durch den Benutzer mittels entsprechender Taste fort.
GRUB_TIMEOUT_STYLE¶
Legt das Erscheinungsbild des Timeouts fest.
Mögliche Werte:
countdown,hidden,menucountdown: Es wird kein GRUB-Menü angezeigt und die mitGRUB_TIMEOUTeingestellte Zeit sichtbar heruntergezählt. Danach startet das System mit dem mitGRUB_DEFAULTvoreingestellten Eintrag. Kurzzeitiges Drücken von Esc innerhalb dieses Zeitfensters bricht das herunter Zählen ab und es kann eine Auswahl vorgenommen werden.hidden: Es wird kein GRUB-Menü angezeigt und die mitGRUB_TIMEOUTeingestellte Zeit gewartet, bis das System nach der voreingestellten Zeit startet. Durch kurzzeitiges Drücken von Esc innerhalb dieses Zeitfensters kann das GRUB-Menü angezeigt und eine Auswahl vorgenommen werden.menuoder nicht gesetzt: Das GRUB-Menü wird immer angezeigt, auch wenn kein weiteres Betriebssystem (Windows / Linux) über GRUB verwaltet wird (z.B. wegenGRUB_DISABLE_OS_PROBER=true). Das System wird mit der Auswahl ( ↓ / ↑ + ⏎ oder nach Ablauf der mitGRUB_TIMEOUTeingestelltem Zeit gestartet.
Standard:
GRUB_TIMEOUT_STYLE=hidden(beachte aber den nachfolgenden Hinweis!)
Hinweis:
Die Einstellung hidden bzw. countdown wird ignoriert und das GRUB-Menü immer angezeigt, wenn mehr als ein Betriebssystem von GRUB verwaltet wird. Bei GRUB_TIMEOUT=0 (Vorgabe Null) wird das GRUB-Menü dann 10 Sek. lang angezeigt. Alle anderen Werte (also -1 oder >= 1) werden der Vorgabe entsprechend verarbeitet.
GRUB_DISTRIBUTOR¶
Ermöglicht es, die Einträge der Distribution individuell bzw. aussagekräftiger zu gestalten. Bei einer Installation im UEFI-Modus bestimmt diese Variable grundsätzlich außerdem die Benennung des Eintrages im NVRAM sowie die Benennung des Ordners auf der EFI-Systempartition.
Mögliche Werte: Beliebige Zeichenkette, die jedoch keine Umlaute, Leer- und Sonderzeichen enthalten darf.
Beispiele:
GRUB_DISTRIBUTOR=LubuntuJammyGRUB_DISTRIBUTOR=Ubuntu_Jammy_22-04
Standard: GRUB_DISTRIBUTOR=
`lsb_release -i -s 2> /dev/null || echo Debian`(dieser Befehl führt standardmäßig bei allen Ubuntu-Derivaten zu dem WertUbuntu)
Sobald man für GRUB_DISTRIBUTOR einen eigenen Wert definiert, sind bei Verwendung eines Systems im UEFI-Modus zur Erzielung des gewünschten Ergebnisses weitere Maßnahmen notwendig. Dabei ist noch mal zu unterscheiden, ob im UEFI-Modus Secure-Boot aktiv ist oder nicht:
Besonderheiten bei UEFI-Boot-Modus¶
Bei einem System, dass im UEFI-Boot-Modus ohne Secure-Boot betrieben wird, müssen zur ordnungsgemäßen Funktion einer eigenen Einstellung folgende zusätzlichen Maßnahmen ergriffen werden:
Das Paket grub-efi-amd64-signed und falls vorhanden shim-signed müssen deinstalliert werden:
Achtung!
Die hier verwendete apt-Option
--allow-remove-essentialerlaubt für das System als essentiell wichtig gekennzeichnete Pakete zu entfernen und sollte daher nur mit Bedacht verwendet werden! Das Paket shim-signed ist auf einem System mit aktiviertem Secure-Boot tatsächlich essentiell und sollte dort auf gar keinen Fall entfernt werden! Das Entfernen sollte daher nur auf Systemen erfolgen, die die UEFI-Boot-Methode ohne Secure-Boot dauerhaft verwenden.sudo apt purge grub-efi-amd64-signed shim-signed --allow-remove-essential
Die etwaige Neuinstallation der Pakete grub-efi-amd64-signed und shim-signed muss unterbunden werden:
sudo apt-mark hold grub-efi-amd64-signed shim-signed
GRUB 2 neu auf die EFI-Systempartition installieren:
sudo grub-install
Abschließend sollte man noch kontrollieren, dass der Ubuntu Start-Eintrag im NVRAM auf die Datei grubx64.efi anstatt shimx64.efi endet:
efibootmgr -v
Einschränkungen bei Verwendung von Secure-Boot¶
Bei der Verwendung von Secure-Boot unter Ubuntu verwendet GRUB 2 standardmäßig konzeptbedingt stets die von Canonical signierte und über das Paket grub-efi-amd64-signed bereitgestellte EFI-App grubx64.efi. Zur ordnungsgemäßen Umsetzung der Einstellung GRUB_DISTRIBUTOR ist aber die Verwendung einer angepassten grubx64.efi notwendig, weil der in der EFI-App enthaltene Pfad zum Verzeichnis auf der EFI-Systempartition angepasst werden muss.
Eine solche angepasste grubx64.efi wird zwar im Rahmen von grub-install auch erstellt, allerdings kann sie konzeptbedingt nicht von Canonical signiert werden, was auf einem Standard-Ubuntu-Secure-Boot-System notwendig wäre.
Daher verwendet grub-install am Ende der Prozedur schlussendlich auf einem Standard-Secure-Boot-System stets die von Canonical signierte grubx64.efi die stets fest und unveränderlich auf das Verzeichnis /EFI/ubuntu auf der EFI-Systempartition verweist. Gleichzeitig wird aber auch der vom Endanwender durch GRUB_DISTRIBUTOR vorgegebene Ordner auf der EFI-Systempartition eingerichtet, was ziemlich verwirrend sein kann.
Möchte man auf einem Ubuntu-Secure-Boot-System trotzdem vollumfänglich von den Funktionen von GRUB_DISTRIBUTOR Gebrauch machen, so bleibt einem nur, die angepasste aber nicht verwendete EFI-App selbst zu signieren und auch selbst auf die EFI-Systempartition zu kopieren. Dazu sind verschiedene Schritte abzuarbeiten, die leider nicht ganz trivial sind und daher nur von erfahrenen Anwendern umgesetzt werden sollten und im folgenden auch nur konzeptionell aufgelistet werden:
Eine eigene Secure-Boot Zertifikats-Infrastruktur aufsetzen und die EFI-App selbst signieren. Siehe dazu grundsätzlich: https://ubuntu.com/blog/how-to-sign-things-for-secure-boot 🇬🇧
Hinzufügen des eigenen Zertifikats zum Shim-Zertifikatsspeicher mittels
mokmanagerSetzen eines Triggers, der dazu führt, dass nach jedem Ausführen von
grub-installein eigenes Script gestartet wird, dass die Standard-Ubuntu-EFI-App durch die angepasste ersetzt und die angepasste EFI-App mit dem eigenen Zertifikat unterzeichnet.
GRUB_CMDLINE_LINUX¶
⚓︎ Über diese Variable lassen sich Bootoptionen für die Kernel-Kommandozeile der jeweiligen Menüeinträge für Linux-Systeme übergeben. Die hier festgelegten Optionen werden sowohl an die Kernel-Kommandozeile der Standard- als auch der Recovery-Einträge angehängt.
Mögliche Werte: Bootoptionen durch Leerzeichen voneinander getrennt. Wenn die gesamte Zeichenkette Leerzeichen enthält, muss sie in in Anführungszeichen eingefasst werden.
Beispiel:
GRUB_CMDLINE_LINUX="nomodeset"
Standard:
GRUB_CMDLINE_LINUX=""
GRUB_CMDLINE_LINUX_DEFAULT¶
Diese Variable erlaubt es, Bootoptionen ausschließlich den Kernel-Kommandozeile der Standard-Menüeinträge anzuhängen.
Mögliche Werte: Bootoptionen durch Leerzeichen voneinander getrennt. Wenn die gesamte Zeichenkette Leerzeichen enthält, muss sie in in Anführungszeichen eingefasst werden.
Standard:
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
Hinweis:
Die Nutzung dieser Variable macht nur Sinn, solange der Recovery-Modus aktiv ist – was bei Ubuntu standardmäßig der Fall ist. Siehe auch GRUB_DISABLE_RECOVERY.
GRUB_TERMINAL_INPUT¶
Diese Variable erlaubt das Festlegen des Eingabegerätes für das GRUB 2 Terminal.
Mögliche Werte: Gültiges
Eingabegerät. Es können mehrere Geräte durch Leerzeichen getrennt eingegeben werden.Eingabegerät: Die folgenden Eingabegeräte können angegeben werden:console: Das an die nativ auf der Rechnerplattform zur Verfügung stehende Konsole angeschlossene Eingabegerät.serial: Die Eingabe soll über ein an einer seriellen Schnittstelle angeschlossenes Gerät erfolgen.serial_[Port]: Wieserial, nur das die serielle Schnittstelle[Port]explizit mit angegeben wird.at_keyboard: Ein angeschlossenes AT-Keyboard wird ausdrücklich verwendet.usb_keyboard: Ein angeschlossenes USB-Keyboard wird ausdrücklich verwendet.
Standard: Das auf der Rechnerplattform nativ angeschlossene Eingabegerät.
Hinweis:
Die auswählbaren möglichen Werte hängen von der jeweiligen Plattform ab.
Diese Einstellung ist nur in wenigen Ausnahmesituationen zu ändern und sollte daher in aller Regel unberührt bleiben!
GRUB_TERMINAL_OUTPUT¶
Diese Variable erlaubt das Festlegen des Ausgabegerätes für das GRUB 2 Terminal.
Mögliche Werte: Gültiges
Ausgabegerät. Es können mehrere Geräte durch Leerzeichen getrennt eingegeben werden.Ausgabegerät: Die folgenden Ausgabegeräte können angegeben werden:console: Das an die nativ auf der Rechnerplattform zur Verfügung stehende Konsole angeschlossene Ausgabegerät.serial: Die Ausgabe erfolgt über ein an einer seriellen Schnittstelle angeschossenen Gerät.serial_[port]: Die Ausgabe erfolgt über ein an der explizit für[Port]angegebenen seriellen Schnittstelle angeschlossenen Gerät.gfxterm: Grafischer Ausgabemodusvga_text: VGA-Textausgabemda_text: MDA-Textausgabemorse: Morse-Code-Ausgabe über Systemlautsprecherspkmodem: Ausgabe mit einem einfachen Daten-Protokoll auf den Systemlautsprecher
Standard: Das auf der Rechnerplattform nativ zur Verfügung stehende Ausgabegerät. In der Regel bei Ubuntu
gfxterm.
Hinweis:
Diese Einstellung ist nur in wenigen Ausnahmesituationen zu ändern und sollte daher in aller Regel unberührt bleiben!
GRUB_TERMINAL¶
Wenn diese Variable gesetzt wir, überschreibt das angegebene Gerät etwaige Angaben innerhalb von GRUB_TERMINAL_INPUT, GRUB_TERMINAL_OUTPUT. Es wird dann also das angegebene Gerät sowohl für die Ein- als auch die Ausgabe verwendet.
Mögliche Werte:
consoleundserialconsole: Die nativ auf der Rechnerplattform zur Verfügung stehende Konsole wird als Ein- und Ausgabegerät verwendet.serial: Ein an eine serielle Schnittstelle angeschlossenes Terminal wird als Ein- und Ausgabegerät verwendet.
Standard: nicht gesetzt
Achtung!
Wurde ein RAID1-Verbund als Boot-Gerät konfiguriert, so sollte GRUB_TERMINAL=console eingestellt werden. Andernfalls kann nach einem Ausfall der ersten Festplatte nicht mehr gebootet werden. (siehe 594202
)
GRUB_SERIAL_COMMAND¶
Über diese Variable lässt sich die serielle Schnittstelle konfigurieren, sofern diese über GRUB_TERMINAL_INPUT, GRUB_TERMINAL_OUTPUT bzw. GRUB_TERMINAL als Ein-, Ausgabegerät oder beides definiert wurde.
Mögliche Werte:
serialoptional in Verbindung mit weiterenOptionenOptionen: Eine oder mehrere der folgenden Optionen zur Konfiguration der seriellen Schnittstelle:--unit=: Ganze Zahl im Bereich0-3, welche die serielle Schnittstelle – häufig mit der BezeichnungCOM– repräsentiert.0bezeichnet dabeiCOM1,1bezeichnetCOM2usw.. Standard ist--unit=0.--port=: Port ist der UART-I/O-Port. Falls angegeben geht dieser Wert dem--unit-Wert vor.--speed=: Gibt die Geschwindigkeit in kbps an. Standard ist--speed=9600.--word=: Gibt die Zahl der Datenbits aus dem Bereich5-8an. Standard ist--word=8.--parity=: Gibt die Parität mit den folgenden Werten an:no,odd,even. Standard ist--parity=no--stop=: Gibt die Zahl der Stopbits aus dem Bereich1-2an. Standard ist--stop=1.
Beispiel:
GRUB_SERIAL_COMMAND="serial --unit=0 --speed=115200"
Standard: grundsätzlich nicht gesetzt, sobald aber durch den Anwender mittels GRUB_TERMINAL_INPUT, GRUB_TERMINAL_OUTPUT bzw. GRUB_TERMINAL eine serielle Schnittstelle angegeben wurde, wird als Standard
GRUB_SERIAL_COMMAND="serial"gesetzt, was heißt, dass dann die Standardwerte für die Optionen genutzt werden.
Hinweis:
Setzt man die Variable GRUB_SERIAL_COMMAND, dann wird es regelmäßig erwünscht sein, auch die Kerneloptionen entsprechend anzupassen. Dazu setzt man dann entweder GRUB_CMDLINE_LINUX oder GRUB_CMDLINE_LINUX_DEFAULT entsprechend. Also z.B.:
GRUB_CMDLINE_LINUX="serial=ttyS0 console=ttyS0,115200n8"
GRUB_DISABLE_LINUX_UUID¶
Mittels dieser Variablen lässt sich festlegen, ob GRUB das Root-Dateisystem dem startenden Kernel über deren UUID benennen soll oder nicht.
Mögliche Werte: boolescher Ausdruck
true,falseStandard: nicht gesetzt
Hinweis:
Die Übergabe mittels UUID ist die zuverlässigste Art und Weise, das Root-Dateisystem an den Linux-Kernel zu übergeben. Diese Variable sollte daher nur in Ausnahmefällen auf true gesetzt werden. Bevor man durch Aktivieren dieser Variable das Root-Dateisystem mittels Device-Nummerierung (z.B. /dev/sdXX) an den Linux-Kernel übergibt, sollte man prüfen, ob man zur Übergabe nicht auch die UUID der Partitions nutzen kann (siehe GRUB_DISABLE_LINUX_PARTUUID).
GRUB_DISABLE_LINUX_PARTUUID¶
Mit dieser Variable kann man festlegen, dass GRUB 2 das Root-Dateisystem über die Partitions-UUID an den Kernel übergeben soll.
Mögliche Werte: boolescher Ausdruck
true,falsetrue: Die Partitions-UUID wird zur Identifizierung des Root-Dateisystems nicht verwendet.false: Die Partitions-UUID wird zur Identifizierung des Root-Dateisystems verwendet.
Standard:
GRUB_DISABLE_LINUX_PARTUUID=true
Hinweis:
Die Verwendung der Partitions-UUID ist weniger zuverlässig als die Verwendung der Dateisystem-UUID (siehe zu letzterer auch GRUB_DISABLE_LINUX_UUID). Die Partitions-UUID ist aber wiederum zuverlässiger, als die Verwendung der Linux-Device-Nummerierung (/dev/sdXX).
GRUB_DISABLE_RECOVERY¶
Mit dieser Variablen wird festgelegt, ob bei der Generierung der grub.cfg auch Einträge im GRUB-Menü für Recovery-Kernel erzeugt werden.
Mögliche Werte: boolesche Ausdrücke
true,falsetrue: Es werden keine Recovery-Kernel-Einträge für das GRUB-Menü erzeugt.falseoder nicht gesetzt: Es werden Recovery-Kernel-Einträge für das GRUB-Menü erzeugt.
Standard: Die Variable ist nicht gesetzt, d.h. die Recovery-Kernel-Einträge werden dem GRUB-Menü hinzugefügt.
GRUB_GFXMODE¶
Diese Variable legt die Auflösung des grafischen Terminals für GRUB gfxterm und damit die Auflösung des Bildschirms, der das GRUB-Menü zur Laufzeit darstellt, fest. Bei der Standard-Darstellung des GRUB-Menüs kann man mit dieser Einstellung in erster Linie die Schriftgröße beeinflussen.
Mögliche Werte:
BREITExHÖHE[xFARBTIEFE]oderautoBREITExHÖHE[xFARBTIEFE]: Es wird die angegebene Auflösung für die Darstellung des GRUB-Menü verwendet. Die Auflösung kann nicht beliebig gewählt werden. Es sind nur solche Auflösungen möglich, die von der Grafikkarte mittels VESA BIOS Extensions (VBE) unterstützt werden.[xFARBTIEFE]ist optional und muss nicht angegeben werden.auto: GRUB versucht die für das System optimale Auflösung automatisch zu ermitteln.Beispiele:
GRUB_GFXMODE=800x600GRUB_GFXMODE=640x400x24
Standard:
GRUB_GFXMODE=auto
Hinweis:
Wie man die zur GRUB-Laufzeit unterstützten Auflösung ermittelt und weitere Details beschreibt Auflösung ermitteln. Außerdem muss darauf geachtet werden, dass die Auflösung die maximal mögliche Auflösung des angeschlossenen Monitors nicht überschreitet.
GRUB_GFXPAYLOAD_LINUX¶
Mit dieser Variabel lässt sich bestimmen, mit welcher Auflösung das Laden des Linux-Kernels durchgeführt wird.
Mögliche Werte:
BREITExHÖHE[xFARBTIEFE],keepodertextBREITExHÖHE[xFARBTIEFE]: Es wird/werden die angegebene(n) Auflösung(en) für die Darstellung während des Kernel-Starts verwendet. Die Auflösung kann nicht beliebig gewählt werden. Es sind nur solche Auflösungen möglich, die von der Grafikkarte mittels VESA BIOS Extensions (VBE) unterstützt werden.[xFARBTIEFE]ist optional und muss nicht angegeben werden. Es können mehrere Auflösungen durch Komma oder Semikolon getrennt aufgelistet werden. Diese werden dann der Reihe nach bis zu einer funktionierenden Auflösung durchprobiert.Beispiele:
GRUB_GFXMODE=800x600GRUB_GFXMODE="1024x768x32;800x600x24;640x400"
keep: Diese Einstellung bewirkt, dass für das Laden der Kernel die mit GRUB_GFXMODE eingestellte Auflösung weiterverwendet wird.text: Es wird die Verwendung des normalen Textmodus für das Laden des Kernels erzwungen. Diese Einstellung sollte man wählen, falls es mit den beiden obigen Vorgaben Probleme beim Start gibt (schwarzer bzw. verzerrter Bildschirm).
Standard: nicht gesetzt
Hinweis:
Wie man die zur GRUB-Laufzeit unterstützten Auflösung ermittelt und weitere Details beschreibt Auflösung ermitteln.
Die mit dieser Variablen getroffenen Einstellungen werden bei Ubuntu in der Regel von Plymouth überschrieben! Entsprechende Einstellungen werden dort erläutert.
GRUB_BACKGROUND¶
Mit dieser Variablen kann man ein Hintergrundbild für das GRUB-Menü im grafischen Terminal gfxterm festlegen.
Mögliche Werte: Gültiger Dateipfad
Dateipfad: Pfad zu der Bilddatei. Der Dateipfad muss für GRUB zur Laufzeit erreichbar sein. Zulässige Dateitypen sind .png, .tga, .jpg oder .jpeg.Beispiel:
GRUB_BACKGROUND="/boot/grub/images/hintergrund.jpg"
Standard: nicht gesetzt, es wird also kein Hintergrundbild verwendet.
GRUB_THEME¶
Mit dieser Variablen lässt sich auf Wunsch ein Design-Thema für das grafische Terminal gfxterm von GRUB aktivieren.
Mögliche Werte: Gültiger Dateipfad
Dateipfad: Pfad zur Konfigurationsdatei des Design-Themas. Diese Datei muss zur Laufzeit von GRUB erreichbar sein.Beispiel:
GRUB_THEME=/boot/grub/themes/mein_grub_theme/theme.txt
Standard: nicht gesetzt, es wird also kein grafisches Design-Thema verwendet.
Hinweis:
GRUB bringt standardmäßig unter Ubuntu kein Design-Thema mit. Über die Paketverwaltung lassen sich die beiden vorgefertigten Themen breeze und starfield installieren. Weitere vorgefertigte GRUB-Themen findet man z.B. auf gnome-look.org.
Natürlich kann man auch ein eigenes Thema erstellen. Alle Details dazu sowie zur Einrichtung eines Themas beschreibt der Artikel GRUB 2/Aussehen - erweiterte Konfiguration.
GRUB_DISABLE_OS_PROBER¶
Diese Variable legt fest, ob GRUB bei der Generierung der grub.cfg das Programm os-prober ausführt und damit nach vorhandenen Betriebssystemen auf anderen Partitionen sucht oder nicht.
Mögliche Werte: boolescher Ausdruck
true,falseoder ab GRUB 2.06 und damit ab Ubuntu 21.10 zusätzlichautotrue: Das Programmos-proberwird nicht ausgeführt. Damit werden keine weiteren Betriebssysteme in das GRUB-Menü aufgenommen.false: Das Programmos-proberwird immer ausgeführt, wenn mittelsgrub-mkconfigbzw.update-grubeine neue grub.cfg generiert bzw. eine bestehende grub.cfg aktualisiert wird. Diese Option erfordert das Paket os-Prober.auto(erst ab Ubuntu 21.10 bzw. Grub 2.06 verfügbar): Bei dieser Einstellung wird zunächst überprüft, ob in einer bereits vorhanden Datei /boot/grub/grub.cfg Menü-Einträge anderer Betriebssysteme vorhanden sind. Nur wenn dies zutrifft, wird bei der Generierung auch das Programmos-proberausgeführt. Erfordert das Paket os-prober.
Standard:
< = Ubuntu 21.04:
GRUB_DISABLE_OS_PROBER=false, es wird also immer bei jedem Durchlauf vonupdate-grubbzw.grub-mkconfignach weiteren Betriebssystemen gesucht.> = Ubuntu 21.10:
GRUB_DISABLE_OS_PROBER=auto
Hinweis:
Die seit Ubuntu 21.10 vorhandene Option auto wurde von den Ubuntu-Entwicklern in erster Linie für Upgrade-Szenarien eingeführt und soll verhindern, dass auf schon vorhandenen Systemen gewohntes Verhalten - also dass andere Betriebssysteme auf anderen Partitionen in das GRUB-Menü übernommen werden - durch ein Upgrade auf eine neuere Ubuntu-Version gebrochen wird. Sie greift allerdings im Moment nur, wenn man auf seinem System mit dem Standardpfad /boot/grub/grub.cfg arbeitet. Dies sollte zwar für die allermeisten Systeme zutreffen, falls aber nicht, so werden hier bei einem System-Upgrade von z.B. Ubuntu 20.04 auf Ubuntu 22.04 etwaig vorhandene GRUB-Menü-Einträge für andere Betriebssysteme auf dem System trotz auto-Option nicht übernommen.
In einem solchen Fall muss man dann ausdrücklich GRUB_DISABLE_OS_PROBER=false setzen und gegebenenfalls das Paket os-prober nachinstallieren.
Gleiches gilt, wenn man andere Betriebssysteme nachträglich auf dem System installiert. Auch in einem solchen Fall werden in dem schon vorhandenen Ubuntu die nachträglich installierten Betriebssysteme nur in das GRUB-Menü aufgenommen, wenn wie im vorhergehenden Absatz dargelegt nachgearbeitet wird.
GRUB_OS_PROBER_SKIP_LIST¶
Wenn os-prober im Rahmen von grub-mkconfig bzw. update-grub ausgeführt wird (siehe GRUB_DISABLE_OS_PROBER), kann man mit Hilfe dieser Variablen Partitionen und bei Verwendung des UEFI-Modus .efi-Dateien von der Durchsuchung durch os-prober explizit ausschließen.
Mögliche Werte:
"UUID@Partition","UUID@.eif-Datei""UUID@Partition": Die auszuschließende Partition wird mit Ihrer Dateisystem-UUID gefolgt von einem@gefolgt von der Linux-Gerätenummer der Partition angegeben. Mehrere Partitionen sind durch Leerzeichen voneinander zu trennen und insgesamt in Anführungszeichen einzufassen.Beispiele:
GRUB_OS_PROBER_SKIP_LIST="BAEE3575EE352B51@/dev/sda2"GRUB_OS_PROBER_SKIP_LIST="3575E5B51@/dev/sdb3 24b43e007@/dev/sdb5"
"UUID@.efi-Datei": Die auszuschließende .efi-Datei wird mit der Dateisystem-UUID des Dateisystems angegeben auf dem sie sich befindet, gefolgt von einem@, gefolgt vom Pfad ausgehend vom Wurzelverzeichnis der betreffenden Partition. Funktioniert nur im UEFI-Modus.Beispiele:
GRUB_OS_PROBER_SKIP_LIST="58EE-F18B@/efi/Microsoft/Boot/bootmgfw.efi"GRUB_OS_PROBER_SKIP_LIST="58EE-F18B@/efi/Microsoft/Boot/bootmgfw.efi 529C90047C7FE0B9@/dev/sda3 10B6739EF6837339@/dev/sda4"
Standard: Die Variable ist nicht gesetzt, d.h. bei jedem Durchlauf von
os-proberwerden stets alle Partitionen gemountet und nach Bootmanagern von Betriebssystem durchsucht.
Hinweis:
Es ist sinnvoll das Durchsuchen von Partitionen nach Betriebssystemen durch os-prober mit dieser Option auf die Partitionen und UEFI-Apps zu beschränken, die auch wirklich für den Systemstart von Bedeutung sind.
Weiterhin ist die Nutzung der Option geboten, wenn z.B. neben dem regulären Windows ein Recovery vorhanden ist, was zu Missverständnissen oder die Auswahl sogar zu Schäden führen kann.
GRUB_DISABLE_SUBMENU¶
Mit dieser Variablen kann man festlegen, ob die gefundenen Kernel-Einträge im GRUB-Menü alle auf einer Ebene dargestellt werden sollen oder ob es eine Unterteilung der Darstellung in einen Haupteintrag für den jeweils aktuellen Kernel und einen Untereintrag für die restlichen Kernel geben soll.
Mögliche Werte: boolescher Ausdruck
true,falsetrue: Es werden alle gefunden Kernel direkt im GRUB-Menü angezeigt. Auf eine Unterteilung der Darstellung in Haupteintrag und Unter-Eintrag wird verzichtet.falseoder nicht gesetzt: Im Grub-Menü wird der aktuelle Kernel als Haupteintrag angezeigt. Die restlichen zur Auswahl stehenden Kernel werden in einem eigenen Menü-PunktAdvanced Options for...nochmals zusammen mit dem Standardkernel zusammengefasst und sind erst nach Aktivierung dieses Eintrages sichtbar.
Standard: nicht gesetzt, das GRUB-Menü wird also strukturiert in einen Haupteintrag und einen Menü-Punkt
Advanced Options for...unterteilt dargestellt.
GRUB_ENABLE_CRYPTODISK¶
Mit Hilfe dieser Variablen kann man grub-install veranlassen, nach verschlüsselten Laufwerken zu suchen und die für den Zugriff durch GRUB während des Systemstarts notwendigen Module in das core.img zu integrieren.
Mögliche Werte:
yy:grub-installwird nach verschlüsselten Laufwerken suchen und die notwendigen Module zur Entschlüsselung in das core.img integrieren.
Standard: nicht gesetzt
Hinweis:
Wird dies Variable auf y gesetzt, ist kein unbeaufsichtigter Start mehr möglich, weil GRUB auf die Eingabe der Passphrase zum Öffnen des verschlüsselten Laufwerks wartet, bevor das Menü angezeigt wird. Beim Start des verschlüsselten Systems wird man ein weiteres Mal zum Eingeben der Passphrase aufgefordert.
Außerdem muss beachtet werden, dass bei Änderungen an dieser Variablen im Anschluss stets grub-install ausgeführt werden muss.
GRUB_INIT_TUNE¶
Mit Hilfe dieser Variablen kann man einen Ton oder eine Folge von Tönen über den Lautsprecher des Rechners ausgeben lassen, sobald das GRUB-Menü zur Eingabe bereitsteht.
Mögliche Werte: Folge von ganzen Zahlen, eingeschlossen in doppelte Anführungszeichen nach dem Schema: "
Tempo [Ton1-Höhe Ton1-Dauer] [Ton2-Höhe Ton2-Dauer] [Ton3-Höhe Ton3-Dauer] ..."Tempo: Ganzzahliger Wert, der als Basiswert für die Tondauer-Angaben dient.60steht für eine Sekunde,120steht für eine halbe Sekunde usw.Tonhöhe: Ganzzahlige Angabe in Hertz. Eine Hertz-Angabe von0erzeugt eine Pause.Tondauer: Ganzzahlige Anzahl von Tempo-Einheiten
Beispiele:
Einzelner Ton (Kammerton A):
GRUB_INIT_TUNE="480 440 1"
Standard: nicht gesetzt, es wird also kein Ton ausgegeben.
Hinweis:
Das eingestellte Timeout für das GRUB-Menü beginnt erst zu laufen nachdem der Ton oder die Tonfolge zu Ende gespielt wurde. Eine Auswahl durch den Benutzer ist also auch erst im Anschluss an Ton oder Tonfolge möglich.
GRUB_RECORDFAIL_TIMEOUT¶
Mit dieser Variablen lässt sich die Zeit einstellen, die das Auswahlmenü angezeigt wird, falls es beim normalen Start zu Problemen kommt.
Mögliche Werte: Zahl
-1: Schaltet die Timeout-Funktion ab, d.h. gebootet wird nur nach Eingabe durch den Benutzer.postive Zahl X: Wartet ohne Anwender-InsteratkionXSekunden bevor der unter GRUB_DEFAULT gesetzte Eintrag gestartet wird.Beispiel:
GRUB_RECORDFAIL_TIMEOUT=15
Standard:
GRUB_RECORDFAIL_TIMEOUT=30
GRUB_RECOVERY_TITLE¶
Mit dieser Variablen lässt sich der Text einstellen der hinter einem Kernel-Eintrag in Klammern steht und dem Anwender anzeigt, dass es sich bei dem Kernel-Eintrag um einen zur Wiederherstellung des Systems handelt.
Mögliche Werte: Beliebige Zeichenkette, die in Anführungszeichen eingefasst werden muss, sofern sie Leer- oder Sonderzeichen enthält.
Standard:
GRUB_RECOVERY_TITLE="recovery mode"
GRUB_FORCE_PARTUUID¶
Mit dieser Variable lässt sich eine bestimmte Partitions-UUID angeben, die dem Kernel das Root-Dateisystem mitteilen soll. Ist diese Variable gesetzt überschreibt sie alle anderen etwaig festgelegten Arten, die sonst das Root-Dateisystem an den Kernel übergeben.
Mögliche Werte:
Partitions-UUIDBeispiel:
GRUB_FORCE_PARTUUID="dfbc3bd0-2b21-4e5a-8b16-d0036327d8f9"
Standard: nicht gesetzt
Links¶
Intern¶
GRUB Customizer - grafisches Werkzeug zum Bearbeiten der Bootmanager-Konfiguration
efibootmgr - Konfiguration des (U)EFI Bootmenüs
Extern¶
Grub 2 Handbuch 🇬🇧 ⮷
Password Protection Passwortschutz für GRUB 2
Grub 2 (Title) Tweaks 🇬🇧 - diverse manuelle GRUB-Anpassungen