18.12.2014, 06:04 UhrDeutsch | English
Hallo Gast [ Registrierung | Anmelden ]

kanotix.com FAQ (häufig gestellte Fragen)

Kategorie: Index -> Bootmanager - Grub -alt!-

Frage

Antwort

Was ist GRUB der Bootmanager?

Allgemeines

Grub ist ein Bootmanager, der geeignet ist, Betriebssysteme von verschiedenen Partitionen zu starten. Grub ist nicht auf Blocklisten zum Finden der Dateien für den Systemstart angewiesen und kann eine ganze Reihe von Dateisystemen direkt lesen: ext2, ext3, reiserfs, ... (Linux), Fat32, Fat16 (Windows), UFS (BSD), Minix und viele andere.

Grub beherscht BIOS-Erweiterungen (kann also Partitionen oberhalb der 8 GByte booten!) und kennt keine 1024-Zylindergrenze. Grub ist es ziemlich egal wo der Kernel physikalisch liegt, er braucht nur die Angabe der Partition und den Pfad des zu bootenden Kernels (dies kann auch ein Symlink sein). Nach Änderung der Konfiguration (also der menu.lst) ist kein Programmaufruf wie bei Lilo nötig, die neue Konfiguration wird beim nächsten Booten eingelesen.

KANOTIX verwendet Grub beim Booten von CD. und bei einer HD-Installtion wird standarmäßig Grub verwendet. Grub kann dennoch problemlos nachträglich installiert werden. Grub wird mit folgendem Befehl aus einer Root-Shell in den MBR installiert werden - für KANOTIX Versionen 2005-03 oder älter ist im folgenden media durch mnt zu ersetzen.


# grub-install --root-directory=/media/hdaX /dev/hdY


/media/hdaX steht hierbei für die schreibend gemountete Partition, auf der im Verzeichnis /boot/grub die benötigten Dateien (stage2, stage1_5xxx) abgelegt werden.
Die Konfigurationsdatei menu.lst muß ebenfalls in diesem Verzeichnis erstellt werden.
/dev/hdY ist die Platte, in deren MBR Grub installiert wird, normalerweise /dev/hda.

Laufwerks-Bezeichnungen/Gerätenamen

Grub unterscheidet nicht zwischen SCSI- und IDE-Festplatten. (hd0) ist immer die erste Festplatte, die in der Bootreihenfolge (Einstellung im BIOS) auch die erste ist, egal ob nun IDE oder SCSI. Ungewöhlich ist die Zählweise,die 1. Partition auf der ersten Festplatte heißt (hd0,0). Die primären Partitionen haben die Ziffernfolge von 0-3 und die logischen Partitionen zählen dann ab 4 aufwärts.

GrubLinuxBezeichnung
(fd0)/dev/fd0Disketten-LW (unter Windows :)
(hd0)/dev/hdaerste Festplatte
(hd0,0)/dev/hda1Part.1 auf Festpl.1
(hd0,5)/dev/hda6erweit. Part. auf Festpl. 1


Alle Bezeichnungen für Geräte werden für Grub in Klammern () gesetzt. Man beachte jedoch die Einträge hinter dem Kernel, im Gegensatz zu Grub benötigt der Kernel die Angaben in der für Linux üblichen Art. Die Einträge im folgenden Beispiel zeigen beide auf die gleiche Partition, die nämlich die vierte auf der ersten Platte. Der obere Eintrag in der Grub-Schreibweise, der untere in der für Linux typischen Art:

root (hd0,3)
kernel /boot/vmlinuz root=/dev/hda4


Command-Modus (Grub-Shell)

Ein besonders angenehmes Feature von Grub ist der Command-Modus. Er wird mit "c" aufgerufen, es erscheint die Grub-Shell. Damit ist man in der Lage, auch bei einer fehlerhaften menu.lst verschiedene Systeme und Dateien (z.B. Kernel) zu finden und zu booten.

Um ein wenig zu testen, kann Grub auch aus einem gebooteten KANOTIX in einer Root-Shell mit # grub gestartet werden. In der Grub-Shell kann man sich mit "help" alle verfügbaren Befehle anzeigen lassen. Detailierte Hilfe zur jedem Befel gibt es mit "help befehl", zur Linux-Shell kehrt man mit quit" zurück (die Grub-Shell wird beendet). In der Grub-Shell funktioniert die Tabulatortaste ähnlich wie in der Linux-Shell, das ist eine sehr große Erleichterung. Kommandos, Laufwerksbezeichnungen und Dateinamen lassen sich mit der TAB-Taste automatisch vervollständigen.

Grub bietet hierbei z.B. die Möglichkeit, die Lage des Kernels und der initrd noch vor dem eigentlichen Booten mittels "find" festzustellen, z.B. gibt Grub auf den Befehl

find /boot/vmlinuz

die Partitionen aus, die einen Kernel mit dem Namen vmlinuz im Verzeichnis /boot enthalten:

(hd0,3) (hd1,0)

Die verfürgbaren Partitionen kann man mit dem Befehl "geometry" festellen, ein

geometry (hd0)

gibt z.B.folgendes aus:

drive 0x80: C/H/S = 3648/255/63, The number of sectors = 58605120, /dev/hda Partition num: 0,
Filesystem type is fat, partition type 0xb Partition num: 1,
Filesystem type is fat, partition type 0xb Partition num: 2,
Filesystem type is fat, partition type 0xc Partition num: 4,
Filesystem type is ext2fs, partition type 0x83 Partition num: 5,
Filesystem type unknown, partition type 0x82 Partition num: 6,
Filesystem type is fat, partition type 0xb


Nachdem der Kernel und eine eventuell vorhandene initrd (oder auch miniroot.gz) gefunden wurde, kann mit boot gestartet werden.

Edit-Modus

Dieser Modus ermöglicht es die Einträge der Datei menu.lst während des Bootens zu ändern. Dies geht auch, wenn Grub von CD gebootet wird und die Datei schreibgeschützt ist. Dazu muß zuerst die ESC-Taste dann bestätigen mit Returnund dann die Taste "e" gedrückt werden. Die Parameter werden dann einfach ans Ende der Zeile geschrieben oder man bewegt sich in der Zeile mit den Cursor-Tasten.

grub1



grub2


menu.lst (Beispiele für Einträge)

Kommentarzeilen werden mit # eingeleitet und stören den Bootvorgang nicht, sie können also in der Datei verbleiben.

# Beispiel /boot/grub/menu.lst

################################################
# setkey verändert die Tastaturbelegung auf die deutsche Tastatur
setkey y z
setkey z y
setkey Y Z
setkey Z Y
setkey equal parenright
setkey parenright parenleft
setkey parenleft asterisk
setkey doublequote at
setkey plus bracketright
setkey minus slashs
setkey slash ampersand
setkey ampersand percent
setkey percent caret
setkey underscore question
setkey question underscore
setkey semicolon less
setkey less numbersign
setkey numbersign backslash
setkey colon greater
setkey greater bar
setkey asterisk braceright
# stellt die Zeit in Sekunden ein, nach der automatisch gebootet wird
# in dieser Zeit kann mit "e" oder "c" der Edit- bzw. Command-Modus aufgerufen werden timeout 30 # stellt das Default-System das nach dem Timeout gebootet wird ein default 0
# merkt sich die zuletzt gebootete Partition wenn "savedefault" unter Title steht #default saved
# wird gebootet, falls das Booten des Default-Eintrages fehlschlät fallback 1
# Vordergrund/Hintergrund-Farben festlegen
# Auswahl: blinkt rot Hintergrund: blau color white/blue blink-red/blue
# Eintrag 1 ist default 0 und bootet z.B. Windows 98 ###############
title Windows 98 (Partition 1 auf Platte 1)
rootnoverify (hd0,0)
makeactive
chainloader +1
# Eintrag 2 ist default 1 und bootet z.B. Windows 2000
###############
title Windows 2000 (Partition 2 auf Platte 1)
rootnoverify (hd0,1)
makeaktive
chainloader
/bootsect.dos
# Eintrag 3 ist default 2 und bootet Suse
###############
title Suse-Linux
root (hd1,5)
kernel /boot/vmlinuz
root=/dev/hdb6 read-only
# auch andere Parameter sind möglich z.B:
# kernel /boot/vmlinuz root=/dev/hdb6 single kernel /boot/vmlinuz root=/dev/hdb6 vga=ask
# Eintrag 4 ist default 3 und bootet Debian
###############
title GNU/Debian (erste erweiterte Partition auf Platte 2)
root (hd1,4)
kernel /boot/vmlinuz
root=/dev/hdb5 read-only
# Eintrag 5 ist default 4 und bootet DOS von Festplatte
###############
title DOS (Partition 3 auf Platte 1)
root (hd0,2)
makeactive chainloader +1
# Eintrag 6 ist default 5 und bootet von Diskette
###############
title Diskette
chainloader (fd0)+1


Von sekundärer Platte booten (z.B. mehrere Windows-Installationen)

Manche Leute brauchen/wollen mehrere Windows-Installationen. Windows will aber immer von der 1.Platte starten. Wir müssen also eine Partition verstecken und eine andere aktivieren. Die folgenden Befehle sollte man auf der GRUB-Kommandozeile eingeben und bei Erfolg in die menu.lst eintragen. Das sollte dann für jede Windows-Partition geschehen. Backup nicht vergessen! ;-)

hide (hd0,0) # versteckt Partition 1 der Platte 1
unhide (hd0,1) # macht Partition 2 der Platte 1 sichtbar
rootnoverify (hd0,1) # macht Partition 2 der Platte 1 zum Root-FS
makeactive # macht Partition 2 der Platte 1 aktiv
chainloader +1 # zeigt auf der ersten Sektor der Start-Partition
boot # bootet das Betriebssystem


Wenn man von der 2.Platte ein 2.Windows starten will, vertauscht man virtuell Platte 1 und 2. Dadurch wird Windows eine erste Platte vorgegetäuscht:

map (hd0) (hd1)
map (hd1) (hd0)


Stolperfallen

Grub kennt zwar keine 1024 Zylindergrenze und kann Systeme oberhalb von 1024 Zylindern booten, aber /boot/grub/stage2 muß durch das Bios erreichbar sein (also davor liegen). stage2 darf nach der Installation nicht verschoben oder in seiner Lage verändert werden (z.B. könnte Defrag sowas versuchen). Beim Setup werden Daten geschrieben, die dann nicht mehr stimmen würden. Es ist sinnvoll, stage2 mit einem Schreibschutz zu versehen (man muß sich im aktuellen Verzeichnis befinden):

Dos: attrib +r +s stage2
LINUX: # chmod a -w ./stage2

Neugierig geworden?

... dann lade Dir eine Grub-Disketten-Image (ca. 580 kB) und probiere damit ein wenig herum. Auf der Diskette ist auch ein funktionierendes FreeDOS und ein Editor. Wenn du den Schreibschutz der Diskette entfernst, kannst Du die menu.lst der Diskette editieren und an deine Gegegenheiten anpassen.

Du kannst auch die offizielle FAQ zu Grub nachlesen.

Sofern man eine unterstützte Netzwerkkarte besitzt, kann Grub auch über das Netzwerk booten. Eine entsprechende Boot-Disk kann man sich hier erstellen lassen und anschließend downloaden (allerdings mit einer älteren Version von Grub).

nach oben
Windows hat mir den Bootsector überschrieben. Wie kann ich Grub nachinstallieren?


Im folgenden gehen wir davon aus, das zwei Festplatten im PC sind. Auf der ersten Platte ist Windows installiert, und in einer Partition dieser Platte ist KANOTIX installiert, zB hdb5.

Booten mit der Live-CD.
Öffne ein Terminal/Shell/Konsole, umd mit $ sudo root zu werden.
Die Partition, in der KANOTIX installiert wurde, mounten (in unserem Beispiel hdb5)
# mount /media/hdb5
Dannach wird GRUB nochmals in den MBR der ersten Platte geschrieben:

# grub-install --recheck --no-floppy --root-directory=/media/hdb5 /dev/hda


(für KANOTIX Versionen 2005-03 oder älter ist media durch mnt> zu ersetzen.)

nach oben
Ich möchte/kann/darf Grub nicht auf MBR installieren! Kann ich Grub auch nachträglich auf eine Floppy installieren?


Klar!

Während der HD-Installation von KANOTIX kann man eine Boot-Diskette machen. Hier wird gezeigt wie man diese nachträglich machen kann.


Dafür sind von Dir folgende Schritte auszuführen:


  1. Diskette formatieren

    # fdformat /dev/fd0


  2. Filesystem auf der Diskette erzeugen (es empfehlt sich hier ext2 oder vfat zu nehmen)

    # mkfs -t ext2 -c /dev/fd0u1440oder
    # mkfs.vfat /dev/fd0u1440


  3. Diskette mounten

    # mount /dev/fd0 /floppy


  4. Verzeichnisstruktur auf der Diskette erzeugen

    # mkdir -p /floppy/boot/grub


  5. Benötigte Dateien auf die Diskette kopieren

    # cp /boot/grub/stage1 /floppy/boot/grub
    # cp /boot/grub/stage2 /floppy/boot/grub


  6. Damit von Diskette auch das richtige OS (KANOTIX) von der richtigen Partition auch starten kann, musst Du abschließend noch folgendes machen:

  7. Kopieren der "menu.lst"-Datei, die von KANOTIX in das /boot-Verzeichnis der Kanotix-Partition geschrieben wurde, auf die Diskette

    # cp /boot/grub/menu.lst /floppy/boot/grub/menu.lst


  8. Unmounten der Diskette

    # umount /dev/fd0


  9. Aufrufen der Grub-Shell, um die Einrichtung abzuschliessen. Hier gibst Du folgendes ein:

    # grub

    grub> root (fd0)

    grub> setup (fd0)

    grub> quit




  10. Damit haben wir uns eine bootbare Diskette erstellt, mit der KANOTIX zuverlässig gebootet werden kann.


    Muß man die Diskette aus einer gestarteten Live-CD erzeugen, ist der Ablauf ein bißchen anders.
    Nehmen wir an KANOTIX ist auf der /dev/hda5 Partition installiert, dann muß folgendes zusätzlich gemacht werden anstelle von Punkt 7

  11. Mounten der KANOTIX Partition

    # mount /dev/hda5 /media/hda5


  12. Kopieren der "menu.lst"-Datei, die von KANOTIX in das /boot-Verzeichnis der Kanotix-Partition geschrieben wurde, auf die Diskette

    # cp /media/hda5/boot/grub/menu.lst /floppy/boot/grub/menu.lst


  13. Unmounten der KANOTIX Partition

    # umount /dev/fd0


  14. Den Rest ist ähnlich zum ersten Fall.

    (für KANOTIX Versionen 2005-03 oder älter ist media durch mnt zu ersetzen.)

    nach oben
Ich möchte den grub aus dem MBR los werden?
Was soll ich machen?

Einfach als root

# lilo -M /dev/hda -s /dev/null

nach oben
 
Deutsch | English
Logos and trademarks are the property of their respective owners, comments are property of their posters, the rest is © 2004 - 2006 by Jörg Schirottke (Kano).
Consult Impressum and Legal Terms for details. Kanotix is Free Software released under the GNU/GPL license.
This CMS is powered by PostNuke, all themes used at this site are released under the GNU/GPL license. designed and hosted by w3you. Our web server is running on Kanotix64-2006.