GRUB Legacy

Aus Linupedia
Wechseln zu: Navigation, Suche
GRUB

Grub Legacy
Basisdaten
Entwickler: Das GRUB-Team
Aktuelle Version: 0.97
letzte Veröffentlichung: 5/2006
Betriebssystem: Unix-Derivate, Linux
Kategorie: Bootmanager
Lizenz: GPL
Deutschsprachig: nein
Webseite: http://www.gnu.org/software/grub/manual/legacy/index.html


Was ist GRUB Legacy

GRUB (Grand Unified Bootloader) ist ein Boot-Manager, der heutzutage bei vielen Linux-Distributionen, wie z.B. Red Hat, Mandrake und auch openSUSE per default installiert wird. GRUB in seiner heutigen Form wird vom GNU Projekt gepflegt und weiterentwickelt. Aktuell ist GRUB 2 eine komplette Neuentwicklung aus dem selben Team, aber nicht kompatibel zu Grub Legacy.

GRUB Legacy kann verschiedene UNIX-Derivate wie Linux, FreeBSD, NetBSD oder OpenBSD starten und auch das Booten von Windows ist kein Problem.



Der Bootvorgang mit GRUB (Legacy)

Der Bootloader GRUB startet in 2 Stufen:

Stage1 befindet sich entweder im Master Boot Record (MBR) der Festplatte oder im Boot-Sektor einer Partition. Die einzige Aufgabe dieser Stufe ist es, Stage2 zu laden. Stage2 stellt die eigentlichen Funktionen des Bootloaders bereit. Diese befindet sich unter /boot/grub/stage2.

Bei der Installation wird in der Stufe 1 festgeschrieben, an welchem physikalischen Ort sich die Stufe 2 befindet. Befindet sich /boot/grub in bestimmten Dateisystemen, dann wird eine 3. Stufe zwischen Stage1 und Stage2 benötigt, mit deren Hilfe das Dateisystem und somit die GRUB-Dateien gelesen werden können. Hier lädt stage1 die stage1_5, welche Zusatzcode für den Zugriff auf das verwendete Dateisystem enthält, und diese lädt dann stage2.

Stage2 kann dann den Linux-Kernel laden und booten, oder auch andere Betriebssysteme oder andere Bootloader starten.



Festplattenbezeichnung unter GRUB

Die Besonderheit von GRUB ist die Bezeichnung der Festplatten und Partitionen. Sie unterscheidet sich von der gewohnten Linux-Bezeichnug der Devices.

hd0 = erste Festplatte
hd1 = zweite Festlatte ...
hd0,0 = 1. Partition der ersten Festplatte 
hd1,2 = 3. Partition der zweiten Festplatte ...

Für UFS oder UFS2 benutzende Systeme wie Solaris oder BSD-Derivate:

hd0,1,a= 1. Slice in der 2. Partition der 1. Platte

Die Festplattenreihenfolge wird vom BIOS festgelegt, wobei die im BIOS festgelegte Boot-Platte immer 0x80 (hexadezimal 80, dezimal 128, bei GRUB im allgemeinen als hd0 bezeichnet) erhält und die übrigen Platten danach fortlaufend nummeriert werden.


Wichtige Konfigurationsdateien von GRUB Legacy

Die wichtigsten Konfigurations-Dateien von GRUB sind die /boot/grub/menu.lst und die /boot/grub/device.map.

Die Datei /boot/grub/menu.lst ist die Menüdatei und enthält Informationen zu allen Partitionen und Betriebssystemen, welche mit GRUB gebootet werden sollen/können. Beispiel /boot/grub/menu.lst:

color white/blue black/light-gray
default 0
timeout 8
gfxmenu (hd1,1)/boot/message

title Linux
    kernel (hd1,1)/boot/vmlinuz root=/dev/sdc2 vga=0x317 splash=silent acpi=off desktop resume=/dev/sdc1 showopts
    initrd (hd1,1)/boot/initrd

title Windows
    root (hd0,0)
    chainloader +1

title Diskette
    root (fd0)
    chainloader +1

title Failsafe
    kernel (hd1,1)/boot/vmlinuz root=/dev/sdc2 showopts ide=nodma apm=off acpi=off vga=normal noresume nosmp noapic    maxcpus=0 3
    initrd (hd1,1)/boot/initrd

title Speichertest
    kernel (hd1,1)/boot/memtest.bin

Wichtig für den „Anfangsgebrauch“ sind die Werte für "default" und "timeout": "timeout" gibt an, nach wie vielen Sekunden ohne Eingabe das unter "default" eingestellte Booteintrag ausgeführt werden soll.

Etwas tiefere Einblick in die menu.lst bieten eine Vielzahl Von Artikeln und User Tips <ref>http://www.pro-linux.de/artikel/2/119/der-bootloader-grub.html</ref>


Beim Boot-Vorgang wird die Datei /boot/grub/device.map nicht verwendet, hier muss mit den Werten gelebt werden, die das BIOS gerade benutzt. Wenn im laufenden Linux-System GRUB-Aktivitäten ausgeführt werden, dient die Datei als Übersetzungtabelle zwischen GRUB- und Linux-Bezeichnung. Es ist zu beachten, dass die GRUB-Bezeichnung in diesem Fall formal nichts mit der BIOS-ID zu tun hat; um Mißverständnisse zu vermeiden, sollte daher dafür gesorgt werden, dass die Werte zusammenpassen (dazu können die Informationen aus dem als root ausgeführten Befehl

hwinfo --disk | egrep "Device Files:|BIOS id:"

verwendet werden). Wenn die Datei nicht vorhanden ist, wird sie bei der nächsten Ausführung des Programms grub (das sofort wieder mit "quit" verlassen werden kann) mit vermuteten Werten neu angelegt, die zwar in einfachen Fällen meist mit der jeweiligen BIOS-ID korrespondieren, dies aber nicht tun müssen.

Beispiel /boot/grub/device.map:

(fd0) /dev/fd0
(hd0) /dev/sdc
(hd1) /dev/sdd
(hd2) /dev/sda
(hd3) /dev/sdb


Zur Konfiguration des Bootloader GRUB auf OpenSuse empfielt es sich, ein wenig in der Doku zu blättern. <ref>http://old-de.opensuse.org/SDB:Der_Bootmanager_GRUB</ref>


Quellen und weiterführende Links