GRUB Legacy: Unterschied zwischen den Versionen

Aus Linupedia.org
Wechseln zu: Navigation, Suche
(In Sachen device.map muß ich robi korrigieren.)
K (Ref scheint aktuell nicht zu gehen, dann eben verlinkt)
 
(2 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt)
Zeile 20: Zeile 20:
 
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 (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.  
 
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.<ref>http://www.gnu.org/software/grub/manual/legacy/index.html</ref>
+
Aktuell ist [[GRUB 2]] eine komplette Neuentwicklung aus dem selben Team, aber nicht kompatibel zu [http://www.gnu.org/software/grub/manual/legacy/index.html Grub Legacy].
  
 
GRUB Legacy kann verschiedene UNIX-Derivate wie [[Linux]], FreeBSD, NetBSD oder OpenBSD starten und auch das Booten von Windows ist kein Problem.
 
GRUB Legacy kann verschiedene UNIX-Derivate wie [[Linux]], FreeBSD, NetBSD oder OpenBSD starten und auch das Booten von Windows ist kein Problem.
Zeile 34: Zeile 34:
 
Stage2 stellt die eigentlichen Funktionen des Bootloaders bereit. Diese befindet sich unter /boot/grub/stage2.
 
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 Stufen zwischen Stage1 und Stage2 benötigt, mit deren Hilfe das Dateisystem und somit die Grubdateien 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.
+
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.
 
Stage2 kann dann den Linux-Kernel laden und booten, oder auch andere Betriebssysteme oder andere Bootloader starten.
Zeile 55: Zeile 55:
 
  hd0,1,a= 1. Slice in der 2. Partition der 1. Platte
 
  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.
+
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.
  
  
Zeile 90: Zeile 90:
 
  title Speichertest
 
  title Speichertest
 
     kernel (hd1,1)/boot/memtest.bin
 
     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.
 
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.
Zeile 97: Zeile 96:
  
  
Beim Boot-Vorgang wird die Datei 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 device.map als Übersetzungtabelle zwischen GRUB- und Linux-Bezeichnung. Es ist zu beachten, daß die GRUB-Bezeichnung in diesem Fall formal nichts mit der BIOS-ID zu tun hat, um Mißverständnisse zu vermeiden sollte jedoch dafür gesorgt werden, daß die Werte zusammenpassen (dazu können die Informationen aus dem als ''root'' ausgeführten Befehl
+
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:"
 
  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 keineswegs der BIOS-ID entsprechen müssen.
+
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.
  
Muster einer device.map:
+
Beispiel /boot/grub/device.map:
 
  (fd0) /dev/fd0
 
  (fd0) /dev/fd0
 
  (hd0) /dev/sdc
 
  (hd0) /dev/sdc
Zeile 121: Zeile 120:
 
* http://tldp.org/HOWTO/Multiboot-with-GRUB.html
 
* http://tldp.org/HOWTO/Multiboot-with-GRUB.html
 
* http://de.wikipedia.org/wiki/GRUB
 
* http://de.wikipedia.org/wiki/GRUB
 
 
-----
 
Fußnoten:
 
{|class=wikitable
 
|
 
<references/>
 
|}
 
  
  

Aktuelle Version vom 13. September 2015, 15:22 Uhr

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