| FOTO | AUTO | EDV | AUDIO |

Der GRUB-Bootloader

Wenn ein Computer mit Linux eingeschaltet wird, wird das Betriebssystem über ein spezielles Programm namens Bootloader geladen. Ein Bootloader ist in der Regel auf der primären Festplatte des Systems oder auf einem anderen Mediengerät installiert und ist nur für das Laden des Linux-Kernels und seiner erforderlichen Dateien oder in manchen Fällen für das Laden anderer Betriebssysteme in den Speicher verantwortlich.

GRUB liefert auf x86-Rechnern eine echte, befehlsbasierte Prä-OS-Umgebung die das Starten des Systems mit Parametern von einer Befehlszeile aus ermöglicht.

Die eigentliche Konfiguration von GRUB basiert auf den im Folgenden beschriebenen drei Dateien:

/boot/grub/menu.lst
Diese Datei enthält sämtliche Informationen zu Partitionen oder Betriebssystemen, die mit GRUB gebootet werden können. Ohne diese Informationen kann die Systemsteuerung nicht an das Betriebssystem übergeben werden.

/boot/grub/device.map
Diese Datei übersetzt Gerätenamen aus der GRUB- und BIOS-Notation in Linux-Gerätenamen.

/etc/grub.conf
Diese Datei enthält die Parameter und Optionen, die die GRUB-Shell für das ordnungsgemäße Installieren des Bootloaders benötigt.

MBR neu schreiben

Mit folgendem Befehl wird Grub z.B. in den MBR des Master-IDE-Geräts auf dem primären IDE-Bus installiert.

/sbin/grub-install /dev/hda

Beim nächsten Systemstart wird das grafische Bootloader-Menü von GRUB angezeigt, bevor der Kernel in den Speicher geladen wird.

Startverhalten des OS verändern

Hierzu kann die datei menu.lst angepasst werden

vim /boot/grub/menu.lst

!!ACHTUNG !! Fehler in der Datei können dazu führen, dass der Bootvorgang zerstört wird.

# grub.conf generated by anaconda
#
# Note that you do not have to rerun grub after making changes to this file
# NOTICE:  You do not have a /boot partition.  This means that
#          all kernel and initrd paths are relative to /, eg.
#          root (hd0,1)
#          kernel /boot/vmlinuz-version ro root=/dev/sda2
#          initrd /boot/initrd-[generic-]version.img
#boot=/dev/sda
default=0
timeout=5
splashimage=(hd0,1)/boot/grub/splash.xpm.gz
hiddenmenu
title Scientific Linux (2.6.32-279.19.1.el6.i686)
	root (hd0,1)
	kernel /boot/vmlinuz-2.6.32-279.19.1.el6.i686 ro root=UUID=998822e2-948b-436f-b940-e3a6b938f6e3 rd_NO_LUKS  KEYBOARDTYPE=pc KEYTABLE=de-latin1-nodeadkeys rd_NO_MD SYSFONT=latarcyrheb-sun16 rd_NO_LVM LANG=de_DE.UTF-8 rd_NO_DM rhgb quiet crashkernel=auto
	initrd /boot/initramfs-2.6.32-279.19.1.el6.i686.img
title Scientific Linux (2.6.32-279.el6.i686)
	root (hd0,1)
	kernel /boot/vmlinuz-2.6.32-279.el6.i686 ro root=UUID=998822e2-948b-436f-b940-e3a6b938f6e3 rd_NO_LUKS  KEYBOARDTYPE=pc KEYTABLE=de-latin1-nodeadkeys rd_NO_MD SYSFONT=latarcyrheb-sun16 rd_NO_LVM LANG=de_DE.UTF-8 rd_NO_DM rhgb quiet
	initrd /boot/initramfs-2.6.32-279.el6.i686.img

Beispiel einer Menü-Datei

Zum besseren Verständnis des Aufbaus einer GRUB-Menüdatei stellen wir ein kurzes Beispiel vor. Diese Beispiel-Installation beinhaltet eine Linux-Bootpartition unter /dev/hda5, eine Root-Partition unter /dev/hda7 und eine Windows-Installation unter /dev/hda1.

gfxmenu (hd0,4)/message
color white/blue black/light-gray
default 0
timeout 8
 
title linux
   kernel (hd0,4)/vmlinuz root=/dev/hda7 vga=791
   initrd (hd0,4)/initrd
title windows
   chainloader(hd0,0)+1
title floppy
   chainloader(fd0)+1
title failsafe
   kernel (hd0,4)/vmlinuz.shipped root=/dev/hda7 ide=nodma \
   apm=off acpi=off vga=normal nosmp maxcpus=0 3
   initrd (hd0,4)/initrd.shipped
Der erste Block behandelt die Konfiguration des Splash-Screens:

gfxmenu (hd0,4)/message Das Hintergrundbild liegt auf /dev/hda5 und trägt den Namen message
color white/blue black/light-gray Das Farbschema: weiss (Vordergrund), blau (Hintergrund), schwarz (Auswahl) und hellgrau (Hintergrund der Auswahl). Das Farbschema wirkt sich nicht auf den Splashscreen aus, sondern erst, wenn Sie diesen mit Esc verlassen.
default 0 Der erste Menüeintrag mit title linux soll standardmäßig gebootet werden.
timeout 8 Nach acht Sekunden ohne Benutzerfeedback bootet GRUB automatisch durch.
Der zweite und größte Block listet die verschiedenen bootbaren Betriebssysteme auf.

Der erste Eintrag (title linux) ist für das Booten von SUSE LINUX zuständig. Der Kernel (vmlinuz) liegt auf der ersten Festplatte in den ersten logischen Partition (hier der Bootpartition). Kernelparameter wie zum Beispiel die Angabe der Rootpartition, des VGA-Modus etc. werden hier angehängt. Die Angabe der Rootpartition erfolgt nach dem Linux-Schema (/dev/hda7/) da diese Information für den Kernel bestimmt ist und nichts mit GRUB zu tun hat. Die initrd liegt ebenfalls in der ersten logischen Partition der ersten Festplatte.

Der zweite Eintrag ist für das Laden von Windows zuständig. Windows wird von der ersten Partition der ersten Festplatte aus gestartet (hd0,0). Mittels chainloader +1 wird das Auslesen und Ausführen des ersten Sektors der angegebenen Partition gesteuert.

Der nächste Abschnitt dient dazu, das Booten von Diskette zu ermöglichen, ohne dass dazu das BIOS umgestellt werden müsste.

Die Bootoption failsafe dient dazu, Linux mit einer bestimmten Auswahl an Kernelparametern zu starten, die selbst auf problematischen Systemen ein Hochfahren von Linux ermöglichen.

Ein wichtiger Parameter ist die Einstellunger der Auflösung VGA= . Hier eine Tabelle:

Colour depth 640×480 800×600 1024×768 1280×1024 1400×1050 1600×1200
8 (256) 769 771 773 775
15 (32K) 784 787 790 793
16 (65K) 785 788 791 794 834 884
24 (16M) 786 789 792 795

Weitere Bootoptionen wierden hier angesprochen: http://wiki.ubuntuusers.de/Bootoptionen?redirect=no

Mehr Infos