Bootmenü Grub 2 einrichten |
Ab Grub 2 sind die
Boot-Menü-Einstellungen in diesen Dateien zu finden: /etc/default/grub und /boot/grub/grub.cfg und in diesem Verzeichnis alle Dateien die mit einer Nummer anfangen /etc/grub.d/ 00_header 05_debian_theme.... |
So kann eine /etc/default/grub aussehen (diese hier ist aus Ubuntu 10.04.3) | ||
Die Zeilen sagen folgendes aus: | |||
GRUB_TIMEOUT=10 | die Startverzögerung des Menüs beträgt 10 Sekunden | ||
GRUB_GFXMODE=1024x768x32 | das Bootmenü hat diese Auflösung | ||
export GRUB_MENU_PICTURE="bay.jpg | das Bootmenü hat dieses Hintergrundbild, Auflösung des Bildes muss die des GRUB_GFXMODE´s sein | ||
export GRUB_COLOR_NORMAL | die Textfarbe der Auswahl ist schwarz | ||
export GRUB_COLOR_HIGHLIGHT | die Textfarbe bei Auswahl eines Menü-Punktes ist light-cyan |
So kann eine /boot/grub/grub.cfg aussehen (diese hier ist aus Ubuntu 10.04.3) | ||
|
||
# # DO NOT EDIT THIS FILE # # It is automatically generated by /usr/sbin/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 set default="0" 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 recordfail { set recordfail=1 if [ -n ${have_grubenv} ]; then if [ -z ${boot_once} ]; then save_env recordfail; fi; fi } insmod ext2 set root='(hd0,1)' search --no-floppy --fs-uuid --set cf38589b-93e0-43cd-8796-b6264f4df5f2 if loadfont /usr/share/grub/unicode.pf2 ; then set gfxmode=1024x768x32 insmod gfxterm insmod vbe if terminal_output gfxterm ; then true ; else # For backward compatibility with versions of terminal.mod that don't # understand terminal_output terminal gfxterm fi fi insmod ext2 set root='(hd0,1)' search --no-floppy --fs-uuid --set cf38589b-93e0-43cd-8796-b6264f4df5f2 set locale_dir=($root)/boot/grub/locale set lang=de insmod gettext if [ ${recordfail} = 1 ]; then set timeout=-1 else set timeout=10 fi ### END /etc/grub.d/00_header ### ### BEGIN /etc/grub.d/05_debian_theme ### insmod ext2 set root='(hd0,1)' search --no-floppy --fs-uuid --set cf38589b-93e0-43cd-8796-b6264f4df5f2 insmod jpeg if background_image /usr/share/desktop-base/bay.jpg ; then set color_normal=black/black set color_highlight=light-cyan/black else set menu_color_normal=white/black set menu_color_highlight=black/light-gray fi ### END /etc/grub.d/05_debian_theme ### ### BEGIN /etc/grub.d/10_linux ### menuentry 'Ubuntu, mit Linux 2.6.32-33-generic' --class ubuntu --class gnu-linux --class gnu --class os { recordfail insmod ext2 set root='(hd0,1)' search --no-floppy --fs-uuid --set cf38589b-93e0-43cd-8796-b6264f4df5f2 linux /boot/vmlinuz-2.6.32-33-generic root=UUID=cf38589b-93e0-43cd-8796-b6264f4df5f2 ro quiet splash initrd /boot/initrd.img-2.6.32-33-generic } menuentry 'Ubuntu, mit Linux 2.6.32-33-generic (Wiederherstellungsmodus)' --class ubuntu --class gnu-linux --class gnu --class os { recordfail insmod ext2 set root='(hd0,1)' search --no-floppy --fs-uuid --set cf38589b-93e0-43cd-8796-b6264f4df5f2 echo `Linux 2.6.32.33-generic wird geladen...` linux /boot/vmlinuz-2.6.32-33-generic root=UUID=cf38589b-93e0-43cd-8796-b6264f4df5f2 ro single echo `Initiale Ramdisk wird geladen...` initrd /boot/initrd.img-2.6.32-33-generic } menuentry 'Ubuntu, mit Linux 2.6.32-32-generic' --class ubuntu --class gnu-linux --class gnu --class os { recordfail insmod ext2 set root='(hd0,1)' search --no-floppy --fs-uuid --set cf38589b-93e0-43cd-8796-b6264f4df5f2 linux /boot/vmlinuz-2.6.32-32-generic root=UUID=cf38589b-93e0-43cd-8796-b6264f4df5f2 ro quiet splash initrd /boot/initrd.img-2.6.32-32-generic } menuentry 'Ubuntu, mit Linux 2.6.32-32-generic (Wiederherstellungsmodus)' --class ubuntu --class gnu-linux --class gnu --class os { recordfail insmod ext2 set root='(hd0,1)' search --no-floppy --fs-uuid --set cf38589b-93e0-43cd-8796-b6264f4df5f2 echo `Linux 2.6.32.32-generic wird geladen...` linux /boot/vmlinuz-2.6.32-32-generic root=UUID=cf38589b-93e0-43cd-8796-b6264f4df5f2 ro single echo `Initiale Ramdisk wird geladen...` initrd /boot/initrd.img-2.6.32-32-generic } ### END /etc/grub.d/10_linux ### ### BEGIN /etc/grub.d/20_memtest86+ ### menuentry "Memory test (memtest86+)" { insmod ext2 set root='(hd0,1)' search --no-floppy --fs-uuid --set cf38589b-93e0-43cd-8796-b6264f4df5f2 linux16 /boot/memtest86+.bin } menuentry "Memory test (memtest86+, serial console 115200)" { insmod ext2 set root='(hd0,1)' search --no-floppy --fs-uuid --set cf38589b-93e0-43cd-8796-b6264f4df5f2 linux16 /boot/memtest86+.bin console=ttyS0,115200n8 } ### END /etc/grub.d/20_memtest86+ ### ### BEGIN /etc/grub.d/30_os-prober ### menuentry "Windows 7 (loader) (on /dev/sda1)" { insmod ntfs set root='(hd0,1)' search --no-floppy --fs-uuid --set 329ce80e9ce7ca85 chainloader +1 } ### END /etc/grub.d/30_os-prober ### ### 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 ### |
Im vorletzten Abschnitt (30_os-prober) wird der Windows7-Loader angesprochen; da dieser auf der Festplatte 0 auf sda1 liegt steht in Zeile 3 set root='(hd0,1)', im Beispiel von GParted-->> | ||
Es ist auch möglich die Datei 30_os-prober in /etc/grub.d/ nach 09_os-prober um zu benennen, somit wird nach einem update-grub in der Konsole Windows7 ganz oben in der Boot-Menüliste stehen. |
Normalerweise werden Einstellungen nur in der etc/default/grub gemacht, abgespeichert und anschließend mit dem Befehl update-grub (in der Konsole) die Änderungen in die boot/grub/grub.cfg geschrieben und dadurch aktualisiert. Das ist aber nicht immer möglich. Wie man genau vorgehen sollte, ist in folgendem Artikel beschrieben. Der Link zum Originalartikel: Schöner Booten | ||
Die neue Version
des BootManagers Grub2 auf Ubuntu 9.10 Schöner Booten? von Oliver Frommel Das neue Ubuntu 9.10 verwendet zum Booten standardmäßig die GrubVersion2, die dem Anwender einige Änderungen beschert. Dieser Artikel gibt einen Crash-Kurs. Schon seit langem verwenden die meisten Linux Distributionen zum Booten den Boot-Manager Grub, der dem Benutzer ein Auswahlmenü anzeigt und dann den gewünschten Kernel bootet. Bisher war das Grub 1, das verwirrenderweise oft eine Null in der Versionsnummer führte. Als erste Distribution hat nun Ubuntu 9.10 "KarmicKoala" auf das neue Grub 2 (das ist 1.97) um gestellt. Für den Anwender hat sich dabei durchaus einiges geändert: Grub ist nun viel stärker modularisiert, sowohl was seine Funktionalität als auch was die Konfiguration angeht. Ein Blick in das Verzeichnis /boot/grub zeigt mehr als 150 Dateien, die Grub zum Beispiel mit der Fähigkeit ausstatten die verschiedenen Dateisysteme zu lesen, mit RAID und LVM umzugehen und so weiter. Dort findet sich ebenfalls die neue Konfigurationsdatei grub.cfg, die die vom alten Grub bekannte menu.lst ablöst. Nicht nur heißt die Datei anders, auch die Syntax hat sich geändert. So stehen die einzelnen Einträge für die zu bootenden Systeme nun nicht mehr einfach untereinander, sondern sind von geschweiften Klammern eingeschlossen: menuentry 'Ubuntu, mit Linux 2.6.31-21-generic' --class ubuntu --class gnu-linux --class gnu --class os { recordfail insmod ext2 set root='(hd0,4)' search --no-floppy --fs-uuid --set 47802796-7c08-4a59-a776-fa0f05f7cd28 linux /boot/vmlinuz-2.6.31-21-generic root=UUID=47802796-7c08-4a59-a776-fa0f05f7cd28 ro quiet splash initrd /boot/initrd.img-2.6.31-21-generic } Der Eintrag enthält beispielsweise auch die Zeile insmod ext2 zum Laden des nötigen Dateisystemmoduls. Eine weitere wichtige Änderung ist hier zu sehen: Die Grub Programmierer haben die Nummerierung der Partitionen – aber nicht die der Festplatten – geändert. Die erste Partition der ersten Platte heißt also nun hd0,1 und nicht wie vorher hd0,0. Editieren soll der Anwender aber nicht die Datei grub.cfg selbst, sondern eine Reihe von Konfigurationsdateien, die in /etc/grub.d liegen. Ähnlich wie die Init Skripte eines Linux System beginnen deren Namen mit einer Nummer, in deren Reihenfolge sie abgearbeitet werden: $ ls -l /etc/grub.d 00_header 05_debian_theme 10_linux 20_memtest86+ 30_os-prober 40_custom Das sind die Standardeinträge auf dem neuen Ubuntu 9.10. Anhand der Namen kann man schon relativ leicht erraten, wofür die einzelnen Dateien stehen. Wichtig ist zu beachten, dass es sich hierbei um Shellskripte handelt, die ausführbar sein und eben der Syntax von BashSkripten genügen müssen. Mit dem Befehl grub-mkconfig erzeugt der Anwender schließlich aus diesen Dateien die grub.cfg (Es kann aber auch der Befehl update-grub verwendet werden). Per Default gibt das Kommando das Ergebnis einfach im Terminal aus. Der folgende Aufruf schreibt die Konfiguration in die passende Datei: $ sudo grubmkconfig o/boot/grub/grub.cfg Found linux image: /boot/vmlinuz2.6.3114generic Found initrd image: /boot/initrd.img 2.6.3114generic Found linux image: /boot/vmlinuz2.6.3111generic Found initrd image: /boot/initrd.img 2.6.3111generic Found memtest86+ image: /boot/memtest86+.bin done Bei der Installation des Bootloaders im Master Boot Record oder in einer Partition hat sich nichts geändert, das geht weiterhin mit sudo grub-install /dev/sda. Fremde Betriebssysteme findet Grub zum größten Teil selbst, sodass der Anwender nicht händisch eingreifen muss. Problematisch wird es nur, wenn Grub das Dateisystem nicht lesen kann, wie beispielsweise Solaris' ZFS. In diesem Fall legt man in /etc/grub.d/ eine weitere Datei an z.B.: 40_custom: #!/bin/sh exec tail n+3 $0 # This file provides an easy way to add custom menu entries. Simply type # menu entries you want to add after this comment. Be careful not to change # the ´exec tail´line above. menuentry "Solaris 10" { set root=(hd1,1) chainloader +1 } Das klappt natürlich nur, wenn Solaris seinerseits in der eigenen Partition einen Bootloader installiert hat. Beim Booten selbst bietet Grub nun andere Möglichkeiten zum Editieren als den zeilenweisen Modus der Version 1. Nun gibt es einen richtigen Editor mit EmacsBindings. Insgesamt stellt sich die Frage, ob Grub 2 gegenüber seinem Vorgänger einen Fortschritt bringt. Für den Anwender bedeutet es zunächst einmal nur, sich wieder umstellen zu müssen. Andererseits bleibt ihm kaum eine Alternative dazu, wenn in Zukunft immer mehr Distributionen auf Grub 2 umstellen. Zum Abschluss noch ein Wort der Warnung: Wie immer bei der Arbeit mit Bootloadern sollte man sich genau überlegen, was man macht und sicherheitshalber lieber noch einmal nachlesen. Zu schnell findet man sich sonst vor einem System wieder, das nicht mehr starten will. In diesem Fall hilft meist nur noch das Booten mit einer LiveCD oder einem Rettungssystem wie der Super Grub. |
Da sich in letzter Zeit Grub ziemlich geändert
hat sind evtl. folgende Einstellungen zu machen In der Datei /etc/grub.d/40_custom folgende Zeilen ergänzen für Farbe im Startmenü: set menu_color_normal="white/black" set menu_color_highlight="light-cyan/black" #set menu_color_normal="yellow/cyan" #set menu_color_highlight="yellow/cyan" Um ein Hintergrundbild im Startmenü einzufügen die Zeile in /etc/default/grub ergänzen und anpassen: export GRUB_BACKGROUND="/home/linuxmint/Bilder/Grub-Startbilder/aurora2.png" Um die Auflösung auf 1280 x 1024 zu ändern folgendes ergänzen: GRUB_GFXMODE=1280x1024x32 Um die Startzeit zu ändern den Wert 10 (Sekunden) ändern: GRUB_TIMEOUT=10 Nach der jeweiligen gewünschten Änderung sudo update-grub im Terminal ausführen. |