Bootloader Grub

Ein Bootloader ist ein Programm, dass nach ladbaren Komponenten zum Start eines Systems sucht. Dies geschieht, bevor das Betriebssystem geladen wird. 

GRUB  (GRand Unified Bootloader) ist ein Bootloader. Das aktuelle GRUB wird auch als GRUB 2 bezeichnet. Das ursprüngliche GRUB, oder GRUB Legacy, entspricht den Versionen 0.9x. Diese Seite beschreibt ausschließlich GRUB 2. Hinweis: Im gesamten Artikel bezeichnet esp den Mountpoint der EFI-Systempartition, auch ESP genannt. Unterstützte Dateisysteme GRUB bündelt seine eigene Unterstützung für mehrere Dateisysteme, insbesondere FAT32, ext4, Btrfs oder XFS. Einige Vorbehalte finden Sie unter #Nicht unterstützte Dateisysteme. Warnung: Dateisysteme können neue Funktionen erhalten, die noch nicht von GRUB unterstützt werden, sodass sie für /boot ungeeignet sind, es sei denn, inkompatible Funktionen werden deaktiviert. Dies kann normalerweise umgangen werden, indem eine separate /boot-Partition mit einem allgemein unterstützten Dateisystem wie FAT32 verwendet wird.

UEFI

Wenn Sie Gentoo auf einem System installieren, das UEFI zum Booten des Betriebssystems verwendet (statt des BIOS), ist es wichtig, dass eine EFI System-Partition (ESP) erzeugt wird. Die Anweisungen für parted unten enthalten die erforderlichen Hinweise, um eine ESP zu erzeugen.

Die EFI System-Partition muss eine FAT Variante sein (derartige Dateisysteme werden auf Linux Systemen oft als vfat angezeigt). Die offizielle UEFI Spezifikation deutet darauf hin, dass FAT12-, FAT16- oder FAT32-Dateisysteme von der UEFI Firmware akzeptiert werden, wobei für die ESP FAT32 empfohlen wird. Formatieren Sie die ESP mit FAT32:

root #mkfs.fat -F 32 /dev/sda2

Wichtig
Wenn keine FAT-Variante für die ESP verwendet wird, wird die UEFI Firmware Ihres Systems den Bootloader (oder den Linux Kernel) wahrscheinlich nicht finden und sehr wahrscheinlich nicht in der Lage sein, das Betriebssystem zu booten!
Stellen Sie sicher, dass Sie die Pakete installieren und den Befehl grub-install auf dem System ausführen, auf dem GRUB als Bootloader installiert wird. Das heißt, wenn Sie von der Live-Installationsumgebung booten, müssen Sie sich beim Ausführen von grub-install im Chroot befinden. Wenn es aus irgendeinem Grund notwendig ist, grub-install von außerhalb des installierten Systems auszuführen, hängen Sie die Option –boot-directory= mit dem Pfad zum gemounteten /boot-Verzeichnis an, z. B. –boot-directory=/mnt/boot. Einige Motherboards können die Bootloader-ID mit Leerzeichen nicht verarbeiten.

GRUB-Software installieren

Um GRUB2 zu installieren, setzen Sie zunächst die Variable GRUB_PLATFORMS mit einem oder mehreren entsprechenden Werten in der make.conf des Systems. Wenn nicht festgelegt, rät GRUB2, welche Plattform auf dem System verwendet werden soll. Es wird der PC (der MBR-Installationsstil) für x86 / amd64-Architekturen erraten.

/etc/portage/make.conf GRUB_PLATFORMS Beispiele
# Standard PC (BIOS) 
GRUB_PLATFORMS="pc"   
# UEFI on amd64
GRUB_PLATFORMS="efi-64"  
 # UEFI und PC 
GRUB_PLATFORMS="efi-64 pc" 

Sie sind nicht sicher, ob der PC den Bios- oder Uefi-Modus verwendet? Drücken Sie in einem Windows Betriebssystem die Tastenkombination Win-R, tippen Sie msinfo32 ein und klicken Sie auf „OK“. Hinter „BIOS-Modus“ steht bei Bios-Systemen „Vorgängerversion“, andernfalls „UEFI“.

msinfo32 – über cmd unter Windows aufrufen

Namenskonvention

Die Gerätesyntax, die in GRUB verwendet wird, unterscheidet sich geringfügig von dem, was Sie zuvor in Ihrem Betriebssystem gesehen haben, und Sie müssen es wissen, damit Sie ein Laufwerk / eine Partition angeben können.

Sehen Sie sich die folgenden Beispiele und Erklärungen an:

(fd0)

GRUB verlangt zunächst, dass der Gerätename mit ( und ) eingeschlossen wird. Der ‚fd‘ Teil bedeutet floppy-disk und somit, dass es eine Diskette ist. Die Zahl ‚0‘ ist die Laufwerksnummer, die von Null aufwärts gezählt wird. Dieser Ausdruck bedeutet, dass GRUB die gesamte Diskette verwendet.

(hd0, msdos2)

Hier bedeutet „hd“ (=harddisk), dass es sich um eine Festplatte handelt. Die neueren Festplatten auf SCSI Basis beginnen mit S also zum Beispiel sda Hier im Bild sind 2 Platten angeschlossen sdb ist die 2. Platte.

Beachten Sie, dass die Partitionsnummern für erweiterte Partitionen unabhängig von der tatsächlichen Anzahl der primären Partitionen auf Ihrer Festplatte von „5“ gezählt werden.

(hd1, msdos1, bsd1)

Dies bedeutet die BSD ‚a‘ Partition auf der ersten PC Slice Nummer der zweiten Festplatte.

Um tatsächlich auf die Festplatten oder Partitionen mit GRUB zuzugreifen, müssen Sie die Gerätespezifikation in einem Befehl wie ’set root = (fd0)‘ oder ‚parttool (hd0, msdos3) hidden-‚ verwenden. Um herauszufinden, welche Zahl eine gewünschte Partition angibt, verfügen die GRUB-Befehlszeilenoptionen über die Argumentvervollständigung. Dies bedeutet, dass Sie beispielsweise nur eingeben müssen

set root = (

gefolgt von einem TAB, und GRUB wird die Liste der Laufwerke, Partitionen oder Dateinamen anzeigen. Daher sollte es ziemlich einfach sein, den Namen Ihrer Zielpartition zu bestimmen, selbst wenn Sie nur wenig über die Syntax wissen.

Beachten Sie, dass GRUB IDE nicht von SCSI unterscheidet – es zählt einfach die Laufwerksnummern unabhängig von ihrem Typ von Null. Normalerweise ist jede IDE-Laufwerksnummer kleiner als eine SCSI-Laufwerksnummer, obwohl dies nicht zutrifft, wenn Sie die Boot-Sequenz durch Austauschen von IDE- und SCSI-Laufwerken in Ihrem BIOS ändern.

Jetzt ist die Frage, wie man eine Datei spezifiziert? Betrachten Sie wieder ein Beispiel:

(hd0, msdos1) / vmlinuz

Dies gibt die Datei mit dem Namen ‚vmlinuz‘ an, die sich auf der ersten Partition des ersten Festplattenlaufwerks befindet. Beachten Sie, dass die Argumentvervollständigung auch mit Dateinamen funktioniert.

Automatische Konfiguration

Die Konfiguration von GRUB2 erfolgt traditionell durch das Programm grub-mkconfig um eine Konfigurationsdatei zu erzeugen.

Der Befehl grub-mkconfig erzeugt die Konfigurationsdatei auf  Basis von Vorlagen aus /etc/grub.d. Die Standard-Vorlagen sollten die meisten gewöhnlichen Boot-Setups abdecken.

Das Verhalten dieser Vorlagen kann durch festlegen von Variablen in /etc/default/grub gesteuert werden. Siehe GRUB Manual (englisch) für weitere Informationen.

Kernel Namensschema

Der Befehl grub-mkconfig kann nur Linuxkernel automatisch erkennen, wenn deren Namen mit vmlinuz- oder kernel- beginnen.

Zum Beispiel:

CODE Kernel Namensbeispiele, die GRUB erkennen kann
 /boot/vmlinuz-3.4.3
 /boot/kernel-2.6.39-gentoo
 /boot/kernel-genkernel-x86_64-3.17.1-gentoo-r1

Die Verwendung ist grundsätzlich sehr einfach. Sie müssen nur ein Argument für das Programm angeben, nämlich wo der Bootloader installiert werden soll. Das Argument muss eine Gerätedatei sein (wie ‚/ dev / hda‘). Zum Beispiel wird  GRUB in den MBR des ersten IDE-Laufwerks so installiert:

# grub-install  /dev/sda

Wenn Sie möchten, dass GRUB Images in ein anderes Verzeichnis als / boot kopiert, müssen Sie die Option –boot-directory angeben. Die typische Verwendung besteht darin, dass Sie einen GRUB-USB Stick mit einem Dateisystem erstellen. Hier ist ein Beispiel:

# mke2fs /dev/fd0
# mount -t ext2 /dev/fd0 /mnt
# mkdir /mnt /boot
# grub-install --boot-directory = /mnt/boot /dev/fd0
# umount /mnt

Beachten Sie, dass grub-install eigentlich nur ein Shell-Skript ist und die eigentliche Aufgabe von anderen Tools wie grub-mkimage erledigt wird. Daher können Sie diese Befehle direkt ausführen, um GRUB zu installieren, ohne grub-install zu verwenden. Tun Sie das jedoch nicht, es sei denn, Sie sind mit den Interna von GRUB sehr vertraut. Die Installation eines Bootloaders auf einem laufenden Betriebssystem kann äußerst gefährlich sein.

Nach der Installation muss die Hauptkonfigurationsdatei /boot/grub/grub.cfg generiert werden. Der Generierungsprozess kann durch verschiedene Optionen in /etc/default/grub und Skripte in /etc/grub.d/ beeinflusst werden. Die Liste der Optionen in /etc/default/grub und eine kurze Beschreibung der einzelnen Optionen finden Sie in der GNU-Dokumentation. Wenn Sie keine zusätzliche Konfiguration vorgenommen haben, ermittelt die automatische Generierung das Root-Dateisystem des Systems, das für die Konfigurationsdatei gestartet werden soll. Damit dies gelingt, ist es wichtig, dass das System entweder gebootet oder chrootet wird. Notiz: Der Standarddateipfad ist /boot/grub/grub.cfg, nicht /boot/grub/i386-pc/grub.cfg. Wenn Sie versuchen, grub-mkconfig in einem Chroot- oder systemd-nspawn-Container auszuführen, stellen Sie möglicherweise fest, dass es nicht funktioniert: grub-probe: Fehler: Fehler beim Abrufen des kanonischen Pfads von /dev/sdaX. Verwenden Sie das Tool grub-mkconfig, um /boot/grub/grub.cfg zu generieren:

# grub-mkconfig -o /boot/grub/grub.cfg

Standardmäßig fügen die Generierungsskripte der generierten Konfiguration automatisch Menüeinträge für alle installierten Arch Linux-Kernel hinzu. Tipp: Nachdem Sie einen Kernel installiert oder entfernt haben, müssen Sie lediglich den obigen Befehl grub-mkconfig erneut ausführen.

Sie können zusätzliche benutzerdefinierte Menüeinträge hinzufügen, indem Sie /etc/grub.d/40_custom bearbeiten und /boot/grub/grub.cfg neu generieren. Oder Sie können /boot/grub/custom.cfg erstellen und sie dort hinzufügen. Änderungen an /boot/grub/custom.cfg erfordern keine erneute Ausführung von grub-mkconfig, da /etc/grub.d/41_custom die erforderliche Quellanweisung zur generierten Konfigurationsdatei hinzufügt. Tipp: /etc/grub.d/40_custom kann als Vorlage zum Erstellen von /etc/grub.d/nn_custom verwendet werden, wobei nn die Priorität definiert und die Reihenfolge angibt, in der das Skript ausgeführt wird. Die Reihenfolge, in der Skripte ausgeführt werden, bestimmt die Platzierung im GRUB-Bootmenü. nn sollte größer als 06 sein, um sicherzustellen, dass die erforderlichen Skripte zuerst ausgeführt werden. Beispiele für benutzerdefinierte Menüeinträge finden Sie unter Beispiele für #Boot-Menüeinträge.

Starten mit Hilfe der Kommandozeile

GRUB 2 bietet die Kommandozeile dem Benutzer alle für den Systemstart wichtigen Befehle. Die Befehle, die man in der Kommandozeile einzeln, nacheinander eingeben muss sind die selben, wie sie auch in der Konfigurationsdatei verwendet werden. Nach dem Booten der SuperGrub – CD finden Sie in der Auswahl die Option: Boot manually. Damit kann die Kommandozeile von Grub aufgerufen werden.

Da die Eingaben in der Kommandozeile aber nicht dauerhaft gelten, sondern nur einmalig für den entsprechenden Systemstart(versuch), kann man sich auf die nötigsten Angaben beschränken. Anders als bei einer Konfigurationsdatei die einmalig erstellt wird, müssen die Befehle nicht so gestaltet werden, dass sie spätere Veränderungen am System von vornherein berücksichtigen.

Der Systemstart aus der Kommandozeile erfolgt nach foglendem Schema:

  • Zunächst muss GRUB mitgeteilt werden, auf welchen Datenträger sich die Startdateien des zu startenden Betriebssystems befinden. Diese Angabe wird der Variablen root zugewiesen.
  • Danach gibt man den genauen Pfad zu den Startdateien des Betriebssystems an. Sofern GRUB diese nicht direkt laden kann – wie es z.B. für Windows der Fall ist – fordert man GRUB einfach auf, den ersten Sektor des zuvor festgelegten Startdatenträgers zu laden. Dieser Sektor enthält dann das Boot-Programm, des fremden Betriebssystems.
  • Abschließend weißt man GRUB durch den Befehl boot an, das System mit den zuvor festgelegten Angaben zu starten.

Tipp: In Grub funktioniert auch „Tab“ zur Dateinamenexpansion, d.h. man kann sich bis zu der richtigen Datei „durchhangeln“, ohne den exakten Namen zu wissen.

In der Grub Kommandozentrale ist die englische Tastatur aktiv. Hier gibt es eine Übersicht der Unterschiede:

Beispiel: Linux über die GRUB Konsole starten

(bitte beachten: das Beispiel ist für den genkernel)
Es müssen der Reihe nach die folgenden Befehle eingegeben werden Die Variablen sind die Platte (hd) und Partition. Diese müssen dem eigenen System entsprechend ersetzt werden.

  1. Start-Datenträger festlegen:
    set root=(hd0,1)
  2. Falls der Home-Ordner auf eine eigene Partition ausgelagert ist muss dieser eingebunden werden:
    set home=(hd0,1)
  3. Pfad zu den Startdateien angeben:
    linux /boot/kernel/genkernel-xx  root=/dev/sdXY

    sdXY und die genkernel-Datei muss dabei natürlich auch auf das eigene System angepasst werden.

  4. Pfad zur Ramdisk:
    initrd /boot/initramfs
  5. System starten:
    boot

Beispiel: Windows starten

Um ein MS-Windows zu booten muss zusätzlich das Packet sys-fs/ntfs3g installiert sein. Die folgenden Kommandos müssen der Reihe nach eingegeben werden:

Startdatenträger festlegen (sdX,Y muss dem eigenen System entsprechend ersetzt werden.):

set root=(sdX,Y)

Den ersten Sektor des Startdatenträgers laden lassen:

chainloader +1

System starten:

boot 
  •  

Das Programm grub2-mkconfig  erzeugt  grub.cfg Dateien, die für die meisten Fälle geeignet sind. Es eignet sich für die Verwendung beim Aktualisieren einer Distribution und ermittelt verfügbare Kernel und versucht, Menüeinträge für sie zu generieren.

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

grub-mkconfig hat einige Einschränkungen. Das Hinzufügen zusätzlicher benutzerdefinierter Menüeinträge am Ende der Liste kann durch Bearbeiten von /etc/grub.d/40_custom oder Erstellen von /boot/grub/custom.cfg erfolgen. Für das Ändern der Reihenfolge der Menüeinträge oder das Ändern ihrer Titel ist möglicherweise ein komplexer Vorgang erforderlich Änderungen an Shell-Skripten, die in /etc/grub.d/ gespeichert sind.

Ein Beispiel:

sdb1 /boot/grub # grub2-mkconfig -o /boot/grub/grub.cfg
GRUB-Konfigurationsdatei wird erstellt …
Linux-Abbild gefunden: /boot/kernel-genkernel-x86_64-4.14.61-gentoo
initrd-Abbild gefunden: /boot/initramfs-genkernel-x86_64-4.14.61-gentoo
Linux-Abbild gefunden: /boot/kernel-genkernel-x86_64-4.14.8-gentoo-r1
initrd-Abbild gefunden: /boot/initramfs-genkernel-x86_64-4.14.8-gentoo-r1
Linux-Abbild gefunden: /boot/kernel-genkernel-x86_64-4.12.12-gentoo
initrd-Abbild gefunden: /boot/initramfs-genkernel-x86_64-4.12.12-gentoo
Linux-Abbild gefunden: /boot/kernel-genkernel-x86_64-4.9.95-gentoo
initrd-Abbild gefunden: /boot/initramfs-genkernel-x86_64-4.9.95-gentoo
Linux-Abbild gefunden: /boot/kernel-genkernel-x86_64-4.9.76-gentoo-r1
initrd-Abbild gefunden: /boot/initramfs-genkernel-x86_64-4.9.76-gentoo-r1
Linux-Abbild gefunden: /boot/kernel-genkernel-x86_64-4.9.72-gentoo
initrd-Abbild gefunden: /boot/initramfs-genkernel-x86_64-4.9.72-gentoo
/run/lvm/lvmetad.socket: connect failed: Datei oder Verzeichnis nicht gefunden
WARNING: Failed to connect to lvmetad. Falling back to internal scanning.
Gentoo/Linux auf /dev/sdb2 gefunden
Gentoo/Linux auf /dev/sdb6 gefunden
erledigt

Andere Betriebssysteme erkennen

Damit grub-mkconfig nach anderen installierten Systemen sucht und diese automatisch zum Menü hinzufügt, installieren Sie das Paket os-prober und mounten Sie die Partitionen, von denen die anderen Systeme booten. Führen Sie dann grub-mkconfig erneut aus. Wenn Sie die folgende Ausgabe erhalten: Warnung: os-prober wird nicht ausgeführt, um andere bootfähige Partitionen zu erkennen, bearbeiten Sie /etc/default/grub und fügen Sie Folgendes hinzu bzw. entfernen Sie den Kommentar: GRUB_DISABLE_OS_PROBER=false Dann versuchen Sie es erneut. Notiz: Der genaue Mount-Punkt spielt keine Rolle, os-prober liest die Mtab, um Orte zu identifizieren, an denen nach bootfähigen Einträgen gesucht werden soll. Denken Sie daran, die Partitionen jedes Mal zu mounten, wenn Sie grub-mkconfig ausführen, um jedes Mal die anderen Betriebssysteme einzubinden. os-prober funktioniert möglicherweise nicht richtig, wenn es in einer Chroot ausgeführt wird. Versuchen Sie es nach dem Neustart des Systems erneut, wenn dieses Problem auftritt.

Über den OS-Prober kann geschaut werden, welche Betriebssysteme erkannt werden. Dieses Paket muss nachinstalliert werden. Es ist standardmaäßig nicht installiert

SuperGrub bietet die Möglichkeit über eine CD verfügbare Systeme / Kernel zu suchen und ggf. zu booten. Mit Hilfe des SuperGrub kann somit eine Fehleranalyse im Boot-Bereich durchgeführt werden.

  1. Werden die Platte(n) angezeigt?
  2. Wird das System angezeigt?
  3. Wird der Kernel angezeigt?
  4. Ist ein Booten erfolgreich?

Zum Download: http://www.supergrubdisk.org

grub-install –target=x86_64-efi

[table id=2 /]
Super-Grub mit verschiedenen installierten Systemen


 Dies kann in Zukunft verbessert werden. In der Zwischenzeit wird denjenigen, die glauben, dass es einfacher wäre, grub.cfg direkt zu schreiben, dies getan (siehe Booting und Shell-like-Scripting) und die Deaktivierung aller von ihrer Distribution bereitgestellten Systeme für die automatische Ausführung von grub-mkconfig zu deaktivieren.

Die Datei / etc / default / grub steuert den Betrieb von grub-mkconfig. Es wird von einem Shell-Skript bereitgestellt und muss daher eine gültige POSIX-Shell-Eingabe sein. Normalerweise handelt es sich nur um eine Folge von „KEY = value“ -Zeilen. Wenn der Wert Leerzeichen oder andere Sonderzeichen enthält, muss er in Anführungszeichen gesetzt werden. Zum Beispiel:

GRUB_TERMINAL_INPUT = „Konsolenserie“

Gültige Schlüssel in / etc / default / grub lauten wie folgt:

„GRUB_DEFAULT“

    Der Standardmenüeintrag. Hierbei kann es sich um eine Zahl handeln. In diesem Fall wird der N-te Eintrag im generierten Menü (von Null gezählt) oder der Titel eines Menüeintrags oder die spezielle Zeichenfolge „gespeichert“ identifiziert. Die Verwendung der ID kann nützlich sein, wenn Sie einen Menüeintrag als Standard festlegen möchten, obwohl eine variable Anzahl von Einträgen davor vorhanden ist.

    Zum Beispiel, wenn Sie:

    menuentry ‚Example GNU / Linux-Distribution‘ –class gnu-linux –id example-gnu-linux {
    …
    }

    dann können Sie dies als Standard festlegen:

    GRUB_DEFAULT = beispiel-gnu-linux

    Bisher wurde die Verwendung des Titelnamens dokumentiert. Obwohl dies immer noch funktioniert, wird dies nicht empfohlen, da Titel häufig instabile Gerätenamen enthalten und möglicherweise übersetzt werden

    Wenn Sie diese Option auf „gespeichert“ setzen, wird der Standardmenüeintrag durch GRUB_SAVEDEFAULT oder Grub-Set-Standard gespeichert. Dies hängt vom Umgebungsblock ab, der möglicherweise nicht in allen Situationen verfügbar ist (siehe Umgebungsblock).

    Der Standardwert ist „0“.
„GRUB_SAVEDEFAULT“

    Wenn diese Option auf ‚true‘ gesetzt ist, speichern Sie den Eintrag bei Auswahl eines Eintrags als neuen Standardeintrag zur Verwendung durch zukünftige GRUB-Läufe. Dies ist nur nützlich, wenn ‚GRUB_DEFAULT = gespeichert‘; Dies ist eine separate Option, da GRUB_DEFAULT = gespeichert ohne diese Option in Verbindung mit Grub-Set-Default nützlich ist. Standardmäßig nicht gesetzt Diese Option basiert auf dem Umgebungsblock, der möglicherweise nicht in allen Situationen verfügbar ist (siehe Umgebungsblock).
„GRUB_TIMEOUT“

    Starten Sie den Standardeintrag viele Sekunden nach Anzeige des Menüs, sofern keine Taste gedrückt wird. Der Standardwert ist „5“. Stellen Sie „0“ ein, um sofort zu starten, ohne das Menü anzuzeigen, oder auf „-1“, um unbegrenzt zu warten.

    Wenn „GRUB_TIMEOUT_STYLE“ auf „Countdown“ oder „Ausgeblendet“ eingestellt ist, wird stattdessen das Timeout gezählt, bevor das Menü angezeigt wird.
„GRUB_TIMEOUT_STYLE“

    Wenn diese Option nicht festgelegt oder auf „Menü“ eingestellt ist, zeigt GRUB das Menü an und wartet, bis das durch „GRUB_TIMEOUT“ festgelegte Zeitlimit abgelaufen ist, bevor der Standardeintrag gestartet wird. Durch Drücken einer Taste wird der Timeout unterbrochen.

    Wenn diese Option auf „Countdown“ oder „Ausgeblendet“ eingestellt ist, wartet GRUB vor dem Anzeigen des Menüs, bis das mit „GRUB_TIMEOUT“ festgelegte Zeitlimit abgelaufen ist. Wenn Sie während dieser Zeit die ESC-Taste drücken, wird das Menü angezeigt und Sie warten auf die Eingabe. Wenn ein Hotkey gedrückt wird, der mit einem Menüeintrag verknüpft ist, wird der zugehörige Menüeintrag sofort gestartet. Wenn das Zeitlimit abläuft, bevor einer dieser Fälle eintritt, wird der Standardeintrag gestartet. Im „Countdown“ -Fall wird eine einzeilige Anzeige der verbleibenden Zeit angezeigt.
„GRUB_DEFAULT_BUTTON“
„GRUB_TIMEOUT_BUTTON“
„GRUB_TIMEOUT_STYLE_BUTTON“
„GRUB_BUTTON_CMOS_ADDRESS“

    Varianten der entsprechenden Variablen ohne das Suffix ‚_BUTTON‘ zur Unterstützung herstellerspezifischer Ein- / Ausschaltknöpfe. Siehe Hersteller-Einschalttasten.
„GRUB_DISTRIBUTOR“

    Wird von den Händlern von GRUB auf ihren identifizierenden Namen festgelegt. Dies wird verwendet, um informativere Menüeintragstitel zu erzeugen.
„GRUB_TERMINAL_INPUT“

    Wählen Sie das Terminal-Eingabegerät. Sie können hier mehrere durch Leerzeichen getrennte Geräte auswählen.

    Gültige Namen von Terminal-Eingängen hängen von der Plattform ab, können jedoch „Konsole“ (native Plattformkonsole), „seriell“ (serielles Terminal), „serial_ <Port>“ (serielles Terminal mit expliziter Portauswahl), „at_keyboard“ (PC AT keyboard) oder ‚usb_keyboard‘ (USB-Tastatur, die das HID-Bootprotokoll verwendet, für Fälle, in denen die Firmware dies nicht ausführt).

    Standardmäßig wird die native Terminaleingabe der Plattform verwendet.
„GRUB_TERMINAL_OUTPUT“

    Wählen Sie das Terminalausgabegerät. Sie können hier mehrere durch Leerzeichen getrennte Geräte auswählen.

    Gültige Namen für die Terminalausgabe hängen von der Plattform ab, können jedoch „Konsole“ (native Plattformkonsole), „seriell“ (serielles Terminal), „seriell“

Es kommt sicher ein Hinweis darauf dass die Einstellung für Grub geändert werden muss. Grub muss mit der Option mount neu kompiliert werden. Über etc-update wird die Datei aktualisiert. Um die Änderung zu speichern wird erst die Datei mit 1 ausgewählt und dann die Änderung (replace) mit y bestätigt.

* IMPORTANT: config file '/etc/portage/package.use/zz-autounmask' needs updating.
* See the CONFIGURATION FILES and CONFIGURATION FILES UPDATE TOOLS
* sections of the emerge man page to learn how to update config files.
localhost /home/michi # etc-update
Scanning Configuration files...
The following is the list of files which need updating, each
configuration file is followed by a list of possible replacement files.
1) /etc/portage/package.use/zz-autounmask (1)
Please select a file to edit by entering the corresponding number.
(don't use -3, -5, -7 or -9 if you're unsure what to do)
(-1 to exit) (-3 to auto merge all files)
(-5 to auto-merge AND not use 'mv -i')
(-7 to discard all updates)
(-9 to discard all updates AND not use 'rm -i'): 1

File: /etc/portage/package.use/._cfg0000_zz-autounmask
1) Replace original with update
2) Delete update, keeping original as is
3) Interactively merge original with update
4) Show differences again
5) Save update as example config
Please select from the menu above (-1 to ignore this update): 1
Replacing /etc/portage/package.use/zz-autounmask with /etc/portage/package.use/._cfg0000_zz-autounmask
mv: overwrite '/etc/portage/package.use/zz-autounmask'? y
Exiting: Nothing left to do; exiting. :)

Beispiel einer grub.cfg

#
# DO NOT EDIT THIS FILE
#
# It is automatically generated by grub-mkconfig using templates
# from /etc/grub.d and settings from /etc/default/grub
#

### BEGIN /etc/grub.d/00_header ###
if [ -s $prefix/grubenv ]; then
  load_env
fi
if [ "${next_entry}" ] ; then
   set default="${next_entry}"
   set next_entry=
   save_env next_entry
   set boot_once=true
else
   set default="0"
fi

if [ x"${feature_menuentry_id}" = xy ]; then
  menuentry_id_option="--id"
else
  menuentry_id_option=""
fi

export menuentry_id_option

if [ "${prev_saved_entry}" ]; then
  set saved_entry="${prev_saved_entry}"
  save_env saved_entry
  set prev_saved_entry=
  save_env prev_saved_entry
  set boot_once=true
fi

function savedefault {
  if [ -z "${boot_once}" ]; then
    saved_entry="${chosen}"
    save_env saved_entry
  fi
}

function load_video {
  if [ x$feature_all_video_module = xy ]; then
    insmod all_video
  else
    insmod efi_gop
    insmod efi_uga
    insmod ieee1275_fb
    insmod vbe
    insmod vga
    insmod video_bochs
    insmod video_cirrus
  fi
}

if [ x$feature_default_font_path = xy ] ; then
   font=unicode
else
insmod part_gpt
insmod ext2
set root='hd1,gpt5'
if [ x$feature_platform_search_hint = xy ]; then
  search --no-floppy --fs-uuid --set=root --hint-bios=hd1,gpt5 --hint-efi=hd1,gpt5 --hint-baremetal=ahci1,gpt5  0afdc6c5-1ff3-4aa2-93dc-4af367cf3af2
else
  search --no-floppy --fs-uuid --set=root 0afdc6c5-1ff3-4aa2-93dc-4af367cf3af2
fi
    font="/usr/share/grub/unicode.pf2"
fi

if loadfont $font ; then
  set gfxmode=auto
  load_video
  insmod gfxterm
fi
terminal_output gfxterm
if [ x$feature_timeout_style = xy ] ; then
  set timeout_style=menu
  set timeout=5
# Fallback normal timeout code in case the timeout_style feature is
# unavailable.
else
  set timeout=5
fi
### END /etc/grub.d/00_header ###

### BEGIN /etc/grub.d/10_linux ###
menuentry 'Gentoo GNU/Linux' --class gentoo --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-0afdc6c5-1ff3-4aa2-93dc-4af367cf3af2' {
	load_video
	if [ "x$grub_platform" = xefi ]; then
		set gfxpayload=keep
	fi
	insmod gzio
	insmod part_gpt
	insmod ext2
	set root='hd1,gpt5'
	if [ x$feature_platform_search_hint = xy ]; then
	  search --no-floppy --fs-uuid --set=root --hint-bios=hd1,gpt5 --hint-efi=hd1,gpt5 --hint-baremetal=ahci1,gpt5  0afdc6c5-1ff3-4aa2-93dc-4af367cf3af2
	else
	  search --no-floppy --fs-uuid --set=root 0afdc6c5-1ff3-4aa2-93dc-4af367cf3af2
	fi
	echo	'Loading Linux 6.6.13-gentoo-x86_64 ...'
	linux	/boot/vmlinuz-6.6.13-gentoo-x86_64 root=UUID=0afdc6c5-1ff3-4aa2-93dc-4af367cf3af2 ro  
	echo	'Loading initial ramdisk ...'
	initrd	/boot/initramfs-6.6.13-gentoo-x86_64.img
}
submenu 'Advanced options for Gentoo GNU/Linux' $menuentry_id_option 'gnulinux-advanced-0afdc6c5-1ff3-4aa2-93dc-4af367cf3af2' {
	menuentry 'Gentoo GNU/Linux, with Linux 6.6.13-gentoo-x86_64' --class gentoo --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-6.6.13-gentoo-x86_64-advanced-0afdc6c5-1ff3-4aa2-93dc-4af367cf3af2' {
		load_video
		if [ "x$grub_platform" = xefi ]; then
			set gfxpayload=keep
		fi
		insmod gzio
		insmod part_gpt
		insmod ext2
		set root='hd1,gpt5'
		if [ x$feature_platform_search_hint = xy ]; then
		  search --no-floppy --fs-uuid --set=root --hint-bios=hd1,gpt5 --hint-efi=hd1,gpt5 --hint-baremetal=ahci1,gpt5  0afdc6c5-1ff3-4aa2-93dc-4af367cf3af2
		else
		  search --no-floppy --fs-uuid --set=root 0afdc6c5-1ff3-4aa2-93dc-4af367cf3af2
		fi
		echo	'Loading Linux 6.6.13-gentoo-x86_64 ...'
		linux	/boot/vmlinuz-6.6.13-gentoo-x86_64 root=UUID=0afdc6c5-1ff3-4aa2-93dc-4af367cf3af2 ro  
		echo	'Loading initial ramdisk ...'
		initrd	/boot/initramfs-6.6.13-gentoo-x86_64.img
	}
	menuentry 'Gentoo GNU/Linux, with Linux 6.6.13-gentoo-x86_64 (recovery mode)' --class gentoo --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-6.6.13-gentoo-x86_64-recovery-0afdc6c5-1ff3-4aa2-93dc-4af367cf3af2' {
		load_video
		if [ "x$grub_platform" = xefi ]; then
			set gfxpayload=keep
		fi
		insmod gzio
		insmod part_gpt
		insmod ext2
		set root='hd1,gpt5'
		if [ x$feature_platform_search_hint = xy ]; then
		  search --no-floppy --fs-uuid --set=root --hint-bios=hd1,gpt5 --hint-efi=hd1,gpt5 --hint-baremetal=ahci1,gpt5  0afdc6c5-1ff3-4aa2-93dc-4af367cf3af2
		else
		  search --no-floppy --fs-uuid --set=root 0afdc6c5-1ff3-4aa2-93dc-4af367cf3af2
		fi
		echo	'Loading Linux 6.6.13-gentoo-x86_64 ...'
		linux	/boot/vmlinuz-6.6.13-gentoo-x86_64 root=UUID=0afdc6c5-1ff3-4aa2-93dc-4af367cf3af2 ro single 
		echo	'Loading initial ramdisk ...'
		initrd	/boot/initramfs-6.6.13-gentoo-x86_64.img
	}
}

### END /etc/grub.d/10_linux ###

### BEGIN /etc/grub.d/20_linux_xen ###

### END /etc/grub.d/20_linux_xen ###

### BEGIN /etc/grub.d/30_os-prober ###
### END /etc/grub.d/30_os-prober ###

### BEGIN /etc/grub.d/30_uefi-firmware ###
menuentry 'UEFI Firmware Settings' $menuentry_id_option 'uefi-firmware' {
	fwsetup
}
### END /etc/grub.d/30_uefi-firmware ###

### BEGIN /etc/grub.d/40_custom ###
# This file provides an easy way to add custom menu entries.  Simply type the
# menu entries you want to add after this comment.  Be careful not to change
# the 'exec tail' line above.
### END /etc/grub.d/40_custom ###

### BEGIN /etc/grub.d/41_custom ###
if [ -f  ${config_directory}/custom.cfg ]; then
  source ${config_directory}/custom.cfg
elif [ -z "${config_directory}" -a -f  $prefix/custom.cfg ]; then
  source $prefix/custom.cfg
fi
### END /etc/grub.d/41_custom ###

Um die Schriftgröße von Grub unter Gentoo Linux zu ändern, müssen Sie die entsprechenden Konfigurationsdateien bearbeiten. Hier ist eine Schritt-für-Schritt-Anleitung:

  1. Öffnen Sie eine Terminal-Sitzung auf Ihrem Gentoo-System.
  2. Navigieren Sie zum Verzeichnis, in dem sich die Grub-Konfigurationsdatei befindet. Normalerweise ist dies /etc/default/.
  3. Öffnen Sie die Datei grub oder grub.conf in einem Texteditor. Zum Beispiel:
#nano /etc/default/grub
  1. Suchen Sie nach der Zeile, die mit GRUB_GFXMODE beginnt. Wenn diese Zeile nicht vorhanden ist, fügen Sie sie hinzu. Diese Zeile legt die Bildschirmauflösung und die Farbtiefe für Grub fest.
  2. Ändern Sie den Wert von GRUB_GFXMODE entsprechend Ihren Anforderungen. Zum Beispiel:
GRUB_GFXMODE=800x600
  1. Speichern Sie die Datei und schließen Sie den Texteditor.
  2. Aktualisieren Sie das Grub-Konfigurationsverzeichnis, damit Ihre Änderungen wirksam werden. Verwenden Sie dazu den Befehl:
#grub-mkconfig -o /boot/grub/grub.cfg
  1. Starten Sie Ihren Computer neu, um die Änderungen zu übernehmen. Nach dem Neustart sollte Grub mit der von Ihnen festgelegten Schriftgröße angezeigt werden.

Bitte beachten Sie, dass diese Anleitung auf der Annahme basiert, dass Sie Grub 2 verwenden. Wenn Sie eine ältere Version von Grub verwenden, können sich die Schritte und die Konfigurationsdatei leicht unterscheiden.