Das Boot-Menü von GRUB 2 kann auf eine einfache Weise grafisch verändert werden. Das langweilige Standardmenü wie hier bei Ubuntu

kann mit einem schöneren, anspruchsvolleren Menü ersetzt werden. Wie zum Beispiel hier:

Um zu zeigen wie es geht, wird das oben gezeigte Beispiel basierend auf dem Glas-Theme von der ubuntuusers-Seite verwendet.
Vorbereitung
Zuerst muss sichergestellt werden dass der GRUB 2 und nicht der Vorgänger GRUB Legacy auf dem Rechner installiert ist.
$ grub-install -v
Alles ab Version 1.9x ist GRUB 2. Anderenfalls muss ein Upgrade her. Wie das geht ist hier beschrieben.
Ist GRUB 2 installiert, werden zuerst die Backups der Konfigurationsdateien erstellt. Sie befinden sich in der Datei /etc/default/grub bzw. in den Verzeichnissen /etc/grub.d und /boot/grub.
$ sudo cp /etc/default/grub /etc/default/grub.bkp $ sudo cp -R /etc/grub.d /etc/grub.d.bkp $ sudo cp -R /boot/grub /boot/grub.bkp
Theme hinzufügen
Als Nächstes muss das Boot-Menü-Theme Glas heruntergeladen werden.
Ein Themen-Ordner im /boot/grub Verzeichnis erstellen…
$ sudo mkdir /boot/grub/themes
…und die Glas-Theme-Archiv-Datei dorthin entpacken:
$ sudo tar -xvzf /home/{USER}/Downloads/glas_grub_theme.tar.gz -C /boot/grub/themes
Natürlich kann auch ein anderes Bild genommen werden. Das Bild in den /boot/grub/themes/glas Ordner kopieren und in background.jpg umbenennen. Unterstützt werden PNG, JPG und TGA-Formate.
Das Theme-Verzeichnis enthält einen icons-Ordner, /boot/grub/themes/glas/icons. In diesem Ordner sind Icons abgelegt, die bei den Boot-Menüeinträgen angezeigt werden sollen. Die Namen der Icon-Dateien müssen mit den Menüeintrag-Klassennamen übereinstimmen, sonst werden sie nicht angezeigt.
Die Klassennamen findet man in der /boot/grub/grub.cfg-Datei. Sie beginnen mit menuentry oder submenu.
Zum Beispiel für den Ubuntu-Eintrag muss das Icon ubuntu.png heißen:
menuentry 'Ubuntu, with Linux 3.13.0-117-generic' --class ubuntu --class gnu-linux --class gnu --class os { ... }
für Windows 7 – windows.png:
menuentry "Windows 7 (loader) (on /dev/sdb1)" --class windows --class os { ... }
für zusammengefasste Menüeinträge – prev-linux.png:
submenu "Previous Linux versions" --class prev-linux { ... }
usw.
Allerdings besitzen nicht alle Einträge mindestens eine Klasse. Wie im Falle vom Memory Test:
menuentry "Memory test (memtest86+)" { ... }
Bei submenu-Einträgen ist es auch der Fall. In dem “Previous Linux versions” – Beispiel oben wurde die Klasse nachträglich hinzugefügt.
Die Eintragung der Klassen soll aber nicht in der grub.cfg-Datei stattfinden. Diese Datei wird automatisch bei der Ausführung von update-grub erstellt und jede manuelle Änderung dieser Datei wird dabei überschrieben. Man sollte stattdessen die Dateien in dem Verzeichnis /etc/grub.d bearbeiten, welche die Informationen für die Erstellung der grub.cfg liefern. Die Dateien, besser gesagt Skripte in diesem Verzeichnis sind:
- 00_header
- 05_debian_theme
- 10_linux
- 20_linux_xen
- 20_memtest86+
- 30_os-prober
- 30_uefi-firmware
- 40_custom
- 41_custom
Die genaue Beschreibung der Skripte von ubuntuusers.
Möchte man also ein Menüeintragicon für ein Memory Test hinzufügen, muss das Skript 20_memtest86+ bearbeitet werden.
$ sudo gedit /etc/grub.d/20_memtest86+
Hier sind zwei Memory Test – Menüeintrage definiert.
menuentry "Memory test (memtest86+)" { ... } menuentry "Memory test (memtest86+, serial console 115200)" { ... }
Es ist sinnvoll sie in ein Hauptmenü zusammen zu fassen und das Icon dem Hauptmenü zuweisen (im Boot-Menü-Beispielbild oben sind sie einzeln aufgelistet).
submenu "Memory Tests" --class memtest {
menuentry "Memory test (memtest86+)" { ... }
menuentry "Memory test (memtest86+, serial console 115200)" { ... }
}
Optional kann man noch dem Skript 40_custom folgende zwei Zeilen hinzufügen, die zusätzliche Einträge für einen Neustart und das Herunterfahren erstellen:
menuentry "Restart" --class restart {reboot} menuentry "Shut Down" --class shutdown {halt}
GRUB konfigurieren
Die Darstellung des GRUB-Menüs wird über zwei Dateien gesteuert. Zu einem wird das Verhalten des Menüs über die /etc/default/grub und zum zweiten die Grafik über die /boot/grub/themes/glas/theme.txt eingestellt.
grub-Datei
$ sudo gedit /etc/default/grub
In dieser Datei sollen folgende Parameter angepasst werden:
GRUB_DEFAULT=saved #GRUB_HIDDEN_TIMEOUT=0 GRUB_TIMEOUT=120 GRUB_GFXMODE=1280x1024 GRUB_GFXPAYLOAD_LINUX=keep GRUB_THEME="/boot/grub/themes/glas/theme.txt" GRUB_SAVEDEFAULT=true
GRUB_DEFAULT ist der markierte, ausgewählte Menüeintrag. Der Wert saved zusammen mit GRUB_SAVEDEFAULT=true speichert den zuletzt ausgewählten Menüeintrag und wählt ihn automatisch beim nächsten Start wieder aus.
GRUB_HIDDEN_TIMEOUT macht das Bootmenü unsichtbar und kann nur mit der gedrückten Umschalt-Taste während des Starts sichtbar gemacht werden. Die Angabe eines Sekunden-Ganzzahlenwertes verzögert den Startvorgang. Dieser Parameter soll auskommentiert bleiben.
GRUB_TIMEOUT verzögert den automatischen Start des zuletzt gewählten Menüeintrages und gibt dem Benutzer die Möglichkeit die Auswahl zu ändern.
GRUB_GFXMODE stellt die GRUB-Menü-Auflösung ein. Die Unterstützten Auflösungen können mit dem GRUB 2-Shell-Befehl vbeinfo ermittelt werden.
GRUB_GFXPAYLOAD_LINUX=keep behält die mit GRUB_GFXMODE eingestellte Schriftauflösung.
GRUB_THEME ist der Pfad zu der Theme-Konfigurationsdatei.
Die vorgenommenen Änderungen müssen nun in die grub.cfg-Konfigurationsdatei exportiert werden:
$ sudo update-grub
theme.txt-Datei
In dieser Konfigurationsdatei wird die grafische Darstellung des Bootmenüs eingestellt.
$ sudo gedit /boot/grub/themes/glas/theme.txt
Die folgenden Einstellungen anpassen.
Der Titel und das Hintergrundbild:
title-text: "GRUB 2 Boot Menu" title-font: "Ubuntu Bold 50" title-color: "white" desktop-image: "background.jpg"
Der Fortschritt-Balken soll bei 25% der Bildschirmbreite beginnen, 50% des Bildschirmes breit, 25 Pixel hoch und 45 Pixel von unten platziert sein. Der Text mit der Größe von 14px in Rot wird innerhalb des Balkens angezeigt.
+ progress_bar { [...] left = 25% top = 100%-45 height = 25 width = 50% font = "DejaVu Sans Regular 14" text_color = "red" [...] }
Das Bootmenü wird 30% von der Bildschirmoberkante, 25% von links, 50% breit und mit der Höhe von 560 Pixel angezeigt. Die einzelnen Menüeinträge sind 60 Pixel hoch mit 48 Pixel hohen Icons und 40 Pixel großem Text. Der Parameter menu_pixmap_style, der für den Menürahmen zuständig ist, soll auskommentiert werden. Somit wird der Rahmen nicht angezeigt. Ein 27 Pixel breiter Scroll-Balken soll angezeitg werden, wenn die Liste der Menüeinträge länger sein sollte.
+ boot_menu { top = 30% left = 25% width = 50% height = 560 item_font = "Ubuntu Condensed Regular 40" item_color = "white" selected_item_font = "Ubuntu Condensed Bold 40" icon_height = 48 icon_width = 40 item_height = 60 item_padding = 0 item_icon_space = 7 item_spacing = 0 selected_item_color = "white" selected_item_pixmap_style = "menu_bar_*.png" scrollbar = true scrollbar_frame = "scroll_frame_*.png" scrollbar_thumb = "scroll_thumb_s_*.png" #menu_pixmap_style = "box_*.png" scrollbar_width = 27 }
Nach dem Abspeichern der Datei kann der Rechner neu gestartet werden. Sollte die Bootmenü-Darstellung, abhängig von der Bildschirmgröße und -auflösung, nicht dem gewünschten Ergebnis entsprechen, die theme.txt-Datei nochmal anpassen. Das fertige Bootmenü sollte ungefähr so aussehen:

War diese Seite für dich informativ? Hat sie dir gefallen und geholfen?
Dann unterstütze die Weiterentwicklung mit einer kleinen Spende!
Die Spenden werden für die Lizenzen sowie neue Hard- und Software verwendet, die für weitere Projekte auf dieser Webseite eingesetzt werden.