Im Ordner “etc/grub.d“ finden sich die Skripte aus denen die Grub-Konfigurationsdatei “boot/grub/grub.cfg“ aufgebaut wird. Dieser Artikel betrachtet die Datei “40_custom“ für eigene Menüeinträge…

Die Dateien im Ordner „etc/grub.d“

  • 00_header
  • 05_debian-theme
  • 10_linux
  • 20_linux-xen
  • 20_memtest86+
  • 30_os-prober
  • 30_uefi-firmware
  • 40_custom
  • 41_custom

In der Datei “grub.cfg“ sind die entsprechenden Abschnitte mit einer Begin- und End-Markierung versehen… Für eigene Menüeinträge kann die Datei “40_custom“ genutzt werden.

Die Datei „40_custom“

Am Anfang der Datei steht bereits folgender Inhalt der auch nicht gelöscht werden sollte:

#!/bin/sh
exec tail -n +3 $0

Um einen eigenen Menüeintrag zu erzeugen, wird folgender Abschnitt in der custom-Datei ergänzt:

menuentry "Betriebssystem 1"{
set root=(hd0,gpt1)
linux /boot/vmlinuz-4.15.0-33-generic root=/dev/sda1 ro quiet splash
initrd /boot/initrd.img-4.15.0-33-generic
}

Als “menuentry“ kann also ein beliebiger Name vergeben werden. Die öffnende und schließende Klammer sollte nun gleich geschrieben werden – bevor man sie vergisst. Zwischen den geschweiften Klammern werden drei Zeilen benötigt.

  • set root Zeile
  • linux Zeile
  • initrd Zeile

Die set root-Zeile gibt die Partition an, auf der die Bootdateien des im Menü-Eintrag angegebenen Systems liegen. Je nach Erstellung der Partitionstabelle sind z.B. hd0,msdos1 oder hd0,gpt1 einzusetzen. Die erste Festplatte wird mit hd0 bezeichnet und die Partitionen ab 1 durchgezählt.

Die linux-Zeile: Diese Zeile gibt die Bezeichnung für den Kernel an, der geladen werden soll und wo sich dieser befindet.

Die initrd-Zeile: Diese Zeile gibt die Bezeichnung für das Boot-Image an, das geladen werden soll und wo sich dieses befindet. Der hier angegebene Kernel und das Boot-Image sollten die gleiche Versionsnummer haben. Innerhalb der linux-Zeile braucht es übrigens keine UUID. Die einzige Anpassung die ich in meiner Datei noch zufügen musste war die eDP- Abschaltung. Bei mir sieht die linux-Zeile abschließen also so aus:

linux /boot/vmlinuz-4.15.0-33-generic root=/dev/sda1 ro video=eDP-1:d quiet splash

Bis auf diese kleine Abweichung kann der oben beschriebene Abschnitt für eigene Menüeinträge übernommen werden. Mit den Anpassungen für Menüeintrag, Partition, Kernel und Boot-Image sollte ein eigene Menüeintrag auch funktionieren – nach einem “sudo update-grub“!

Die Reihenfolge der Menüeinträge:

Um den Menüeintrag nach oben ins Menü zu holen, habe ich eine Kopie der “40_custom-Datei“ erstellt und diese Kopie in “08_custom“ umbenannt.

Wichtig ist dabei wohl, dass diese eigene Datei erst nach der Debian-Theme-Datei kommt und vor der ersten Linux-Datei. Die Nummerierung entspricht auch der Bearbeitungsreihenfolge Es ist also möglich die “40_custom“ in “06_custom“ umzubenennen und somit die Einträge nach oben ins Menü einzuordnen.

Von Torsten