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.