![]() |
|
||||||||||||||||||||
|
|||||||||||||||||||||
|
|||||||||||||||||||||
von Kalle Gerwien
Der Bootloader Grub wird bei einer Standard-Installation auf die Festplatte installiert. Mit einigen Handgriffen lässt er sich allerdings auch auf eine Diskette bannen und hilft im Fall der Fälle unnötige Schweissausbrüche zu vermeiden. Egal ob Linux oder Windows: wenn der Bootsektor der Festplatte versagt, starten Sie den Rechner einfach über die Rettungs-Floppy. Mit einer Grub Boot-Diskette können Sie zudem nicht nur Ihr eigenes System starten, sondern auch fremde PCs lassen sich damit booten.
Die meisten Distributionen lassen sich auch über CD oder DVD starten, sollte der Bootloader aus Versehen beschädigt sein. Fehlt jedoch das CD/DVD-Laufwerk oder ist es defekt, kommt eine Diskette gelegen.
Es gibt mehrere Möglichkeiten sich eine Grub-Diskette zu erstellen. Zum einen können Sie sich die aktuelle Grub-Version als Image vom FTP-Server des Gnu-Projekt laden [1] und auf Diskette kopieren. Die entsprechende Datei hat die Endung .ext2fs. Nachdem Sie das Image auf Ihre Festplatte geladen haben, kopieren Sie es mit dem Befehl dd if=grub-0.95-i386-pc.ext2fs of=/dev/fd0 auf eine Diskette. Passen Sie gegebenenfalls den Dateinamen an.
Wenn Sie keinen Internetzugang haben können Sie eine Boot-Diskette von dem auf Ihrem System installierten Grub machen. Dazu müssen Sie zunächst eine Diskette mit dem Dateisystem Ext2 formatieren. Dies geht am einfachsten mit dem Programm kfloppy. Anschließend legen sie auf dem Datenträger den Verzeichnisbaum /boot/gruban und kopieren alle Dateien aus dem gleichnamigen Verzeichnis von der Festplatte in das Verzeichnis auf der Diskette.
Mandrake Linux benutzt allerdings in der Standardeinstellung den Bootloader Lilo. Um trotzdem die Grub-Diskette anlegen zu können, kopieren Sie am besten obengenannte Dateien von einem laufenden Knoppix auf die Diskette. Die entsprechenden Dateien befinden sich im Verzeichnis /KOPPIX/usr/lib/grub/i386-pc/.
Sind Sie damit fertig, muss nur noch Grub auf die Diskette installiert werden. Dazu müssen Sie zunächst mit dem Befehl su - zum Benutzer Root wechseln, mit dem Befehl grub die Bootloader-Shell starten und danach in Grub die folgenden Befehle ausführen:
Sind Sie damit fertig, wechseln Sie mit exit wieder zu Ihrem persönlichen Benutzeraccount.
Auf der Diskette befindet sich auch die Datei /mnt/floppy/boot/grub/menu.lst. In dieser Datei stehen alle signifikanten Einstellungen die Grub beim Systemstart hilfreich sind. Unter Anderem die Auswahlmöglichkeit der im System vorhandenen Betriebssysteme, inklusive der korrekten Parameter. Mit Hilfe der bestehenden Menüeinträge sollten sich alle installierten Betriebssysteme problemlos booten lassen.
Für den ungeübten User hilfreicher ist die Modifikation der amerikanischen Tastaturbelegung, mit der Grub standardmäßig nach dem Booten aufwartet. Um dieses Manko zu beheben, passen Sie in der Datei menu.lst die Tastenbelegung auf das deutsche Layout an. Fügen Sie dazu die folgenden Setkey-Befehle in die Datei menu.lst ein (siehe Abbildung 1):
Diese Befehle interpretiert Grub während des Startens und stellt die wichtigsten Tasten wie Schrägstrich, Doppelpunkt oder runde Klammern korrekt auf die deutsche Tastatur ein. Falls Sie die komplette Tastatur berichtigen möchten, finden Sie in Tabelle Sonderzeichen wichtige Bezeichnungen.
Nach der Tasten-Definition können Sie beliebige Bootmenü-Einträge hinzufügen. Jeder Menüeintrag beginnt mit der Zeile title. Zwar wissen Sie auf einem fremden PC in der Regel nicht, wie dort die einzelnen Partitionen angebracht sind, es gibt jedoch drei oft vorkommende Konstellation. Weit verbreitet sind PCs, die auf der ersten Partition ein Dos/Windows haben und in der erweiterten Partition ein Linux-System. Diese Möglichkeit berücksichtigen folgende Einträge:
title Windows
rootnoverify (hd0,0)
chainloader +1
title Linux neben Windows
root (hd0,4)
kernel=/boot/vmlinuz \
root=/dev/hda5
initrd=/boot/initrd
Die zweite weit verbreitete Möglichkeit ist ein alleiniges Linux auf der ersten Partition.
title Nur Linux
root (hd0,0)
kernel=/boot/vmlinuz \
root=/dev/hda1
initrd=/boot/initrd
Die erstellten Einträge lassen sich beim Start des Computers im Boot-Menü durch drücken der Taste [E] editieren. Um noch etwas Farbe ins Spiel zu bringen, färben Sie das Bootmenü ein. Fügen Sie dazu die Zeile color cyan/blue white/blue vor der ersten title-Definition ein. Speichern Sie anschließend die Datei ab und hängen die Diskette aus dem Dateisystem aus. Bestücken Sie einen PC mit der Diskette und schalten ihn ein.
Auf einem fremden System, bei dem keiner der Boot-Einträge passt, haben Sie eventuell das Problem, dass Sie nicht wissen wie viele Festplatten in dem System sind und wie diese partitioniert sind. Sie wissen dann auch nicht, auf welcher Partition sich der Kernel befindet.
Um dies herauszufinden verlassen Sie als erstes mit einem Druck auf die Taste [C] das Boot-Menü. Sie befinden sich jetzt in Eingabezeile des Bootloaders, in der so genannten Grub-Shell. Wie in der Linux-Shell ist auch hier die [Tab]-Taste von großer Bedeutung.
Um in Erfahrung zu bringen, wieviele Festplatten in dem System sind, verwenden Sie den Befehl root der die Parameter festplattennummer,partition benötigt. Schreiben Sie dazu root ( und betätigen nach Eingabe der Klammer die [Tab]-Taste. Grub versucht nun die Zeile zu vervollständigen und erstellt Ihnen eine Liste aller im System vorhandenen Laufwerke. Nach dem Hinweis Possible disks are: sollte Grub zumindest das Diskettenlaufwerk (fd0) und eine Festplatte (hd0) anzeigen.
Im Gegensatz zu den gewohnten Linux-Bezeichnungen nummeriert Grub die Festplatten numerisch durch. Das Programm fängt dabei immer mit 0 an. Der Festplatte hda trägt also bei Grub die Bezeichnung hd0. Jetzt geht es darum, herauszufinden, wie viele Partitionen sich auf den einzelnen Festplatten befinden. Die Partitions-Nummer ist der zweite Parameter des root Befehls. Tippen Sie in die Konsole den Befehl root (hd0, ein und betätigen erneut [Tab], durchsucht Grub die erste Festplatte und listet alle enthaltenen Partitionen auf (Abbildung 2). Wählen Sie eine aus, und bestätigen Sie die Eingabe.
| Wenn Grub /boot/vmlinuz nicht findet |
|
Die Methode den Kernel mit dem find-Befehl zu lokalisieren, beruht auf der Erkenntnis das fast alle Distributionen den Link vmlinuz auf den eigentlichen Kernel gesetzt haben. So hat man bei den vielen unterschiedlichen Kernel, deren richtiger Dateiname sich unter anderem aus dem System und der Versionsnummer zusammensetzt, ein verlässliche Konstante. Eine Ausnahme stellt Fedora Core da; einen Link auf den Kernel findet man hier nicht. In diesem Fall hilft ein wenig "Knowledge": Liefert die Eingabe von root (hd0, [Tab] zwei Partitionen vom Typ 82, gefolgt von einer Partition vom Typ 83 (Swap), handelt es sich höchstwarscheinlich um eine Standard Fedora-Core-Installation. Da diese den Kernel und die Initrd im Hauptverzeichnis der Root-Partition ablegt, können Sie einen Test ausführen. Machen Sie die erste Partition mit root (hd0,0) zur Root-Partition. Geben Sie jetzt die Zeile kernel / gefolgt von [Tab] ein. Sollte Grub die Zeile vervollständigen, haben Sie den Kernel gefunden. Auf die gleiche Weise fügen Sie noch die initrd hinzu und können auch dieses System mit der Grub-Diskette starten. Da die meisten Distributionen Kernel und Initrd entweder im Wurzelverzeichnis oder unter /boot ablegen, sollte Ihnen jetzt kein Linux-System mehr Probleme bereiten. |
Zu diesem Zeitpunkt haben Sie schon einen umfassenden Überblick über das System. Möchten Sie ein auf der Festplatte installiertes Linux-System booten, benötigen Sie den genauen Pfad des Kernel. Um diesen zu Erfahren, bedienen Sie sich der Funktion find. Geben Sie in der Eingabezeile den Befehl find /boot/vmlinuz ein, gibt Ihnen Grub die Festplatte und die Partitionsnummer des gefundenen Kernel als Antwort.
Alle Easy-Linux-Distributionen benutzen zum Systemstart auch eine so genannte Initial Ramdisk. Sie lässt sich mit dem Befehl find /boot/initrd (bei SuSE Linux) respektive find /boot/initrd.img (bei Mandrake Linux und Fedora Core 2) aufstöbern. Mit diesen gesammelten Information, sind Sie in der Lage jedes Linux-System zu booten.
Der Befehl root (hda0,1) gibt Grub die Boot-Partition /dev/hda2 an. Der zweite Befehl kernel /boot/vmlinuz-2.6.7-ide4 root=/dev/hda2 gibt Grub den Kernel (benutzen Sie auch hier die [Tab]-Taste um den kompletten Kernel-Namen zu erfahren) und das Wurzelverzeichnis des Linux-Systems an. Haben Sie zudem eine Ramdisk ausfindig gemacht, geben Sie auch die mit dem Befehl initrd=/boot/initrd (SuSE Linux) respektive initrd=/boot/initrd.img an (Mandrake Linux und Fedora Core2). Danach startet die Eingabe von boot das System.
Möchten Sie ein Dos/Windows-System starten, beginnen Sie ebenfalls mit dem Root-Befehl, benutzen danach aber statt der Kernel-Zeile den Befehl chainloader +1. Der Befehl chainloader +1 lädt den Bootsektor von der angegebenen Partiton und übergibt diesen dem System. So lassen sich auch Betriebssysteme booten, die den Multi-Boot-Standard nicht unterstützen.
Sollte das Booten fehlschlagen, benutzen Sie statt des Befehls root den Befehl rootnoverify. Im Gegensatz zum root-Befehl mountet diese Option die Zielpartition nicht. Als zweiten neuen Befehl benutzen Sie danach makeactive. Grub markiert damit die entsprechende Partition als aktiv, da Dos/Windows nur von aktiven Partitonen startet. In den meisten Fällen ist dieser Befehl allerdings nicht notwendig, da die entsprechenden Partitionen durch die Installations-Prozedur im Allgemeinen schon aktiv sind. (mhi)
| Sonderzeichen | |
| Begriff | Zeichen |
|---|---|
| exclam | ! |
| space | |
| question | ? |
| slash | / |
| greater | > |
| period | . |
| less | < |
| comma | , |
| bar | | |
| backslash | \ |
| tilde | ~ |
| backquote | ` |
| doublequote | " |
| quote | ' |
| colon | : |
| semicolon | ; |
| braceright | } |
| bracketright | ] |
| braceleft | { |
| bracketleft | [ |
| plus | + |
| equal | = |
| underscore | _ |
| minus | - |
| parenright | ) |
| parenleft | ( |
| asterisk | * |
| ampersand | & |
| caret | ^ |
| percent | % |
| dollar | $ |
| numbersign | # |
| at | @ |
| Infos |
|
[1] Grub-FTP-Verzeichnis: ftp://alpha.gnu.org/gnu/grub/
|
Dieser Online-Artikel kann Links enthalten, die auf nicht mehr vorhandene Seiten verweisen. Wir ändern solche "broken links" nur in wenigen Ausnahmefällen. Der Online-Artikel soll möglichst unverändert der gedruckten Fassung entsprechen.
Druckerfreundliche Version |
Feedback zu dieser Seite |
Datenschutz |
© 2012 Linux New Media AG |
Last modified: 2007-01-25 17:27
[Linux-Magazin]
[LinuxUser]
[Linux-Community]
[Admin-Magazin]
[Ubuntu User]
[Smart Developer]
[Linux Events]
[Linux Magazine]
[Ubuntu User]
[Admin Magazine]
[Smart Developer]
[Linux Magazine Poland]
[Linux Community Poland]
[Linux Magazine Brasil]
[Linux Magazine Spain]
[Linux Technical Review]