Allgemeines Der Boot-Manager ist die erste Software, die von einem startenden PC geladen wird. Bei fast allen moderenen Linux-Distributionen erledigt diese Aufgabe das Programm "Grub". Grub ist für das Laden und starten des Linux-Kernels zuständig und kann Linux, Windows und einige andere Betriebssysteme starten, wahlweise auch im Multi-Boot-Modus. Früher kam hier Lilo ("Linux Loader") zum Einsatz, mittlerweile verwenden nahezu alle Linux-Distributionen den flexibleren Grub. Im Unterschied zu Lilo erfordert Grub keine Neuinstallation nach Änderungen an der Konfiguration. Zudem bietet Grub eine interaktive Shell, die das Starten nicht konfigurierter Partitionen oder Kernel ermöglicht. Der Boot-Loader Grub wird bei einer Standard-Installation von Linux auf die Festplatte in den Master-Boot-Record (siehe unten Festplatten, Partitionen und Co:) installiert. Mit einigen Handgriffen lässt er sich auch auf eine Diskette speichern und hilft im Fall, wenn z. B. der MBR der Boot-Platte versagt oder überschrieben ist, Linux oder Windows zu starten.
Diskette erstellen Es gibt mehrere Möglichkeiten, eine Grub-Boot-Diskette zu erstellen. 1) Image auf Diskette kopieren. - Das aktuelle Image von Grub vom FTP-Server des Projektes herunterladen: ftp://alpha.gnu.org/gnu/grub/
- Mit dem Befehl #dd if=grub-0.96-i386-pc.ext2fs of=/dev/fd0 kopieren Sie das Image auf eine Diskette. Passen Sie ggf. den Dateinamen an. VORSICHT: Alle Dateien auf Diskette werden gelöscht!
- Für Multi-Boot-Menü ist die Datei "menu.lst" im Verzeichnis /boot/grub zuständig. Damit ein Bootmenü; auf der Diskette vorhanden ist, kopieren Sie die Datei wie unten beschrieben auf die Diskette. Für das Anpassen der Datei sehen Sie unten Bootmenü-Einträge:.
2) Installierte Grub-Version auf Diskette kopieren. - Lösen Sie die Einbindung der Diskette mit #umount -l /dev/fd0, wenn die Shell sich beschwert, dass das Laufwerk "busy" ist;
- Formatieren Sie eine Diskette mit dem Befehl #mkfs.ext2 /dev/fd0 im ext2fs Format;
- Binden Sie das Diskettenlaufwerk mit #mount /dev/fd0 /mnt ein;
- Legen Sie das Verzeichnis /boot auf der Diskette mit #mkdir /mnt/boot/ ein;
- Kopieren Sie alle Dateien vom Verzeichnis "/boot/grub" der Festplatte mit #cp -r /boot/grub/ /mnt/boot/ auf Diskette;
- Starten Sie die Grub-Shell #grub - grub> - Grub-Promt erscheint;
- Geben Sie Befehle ein:
grub>device (fd0) /dev/fd0
grub>root (fd0)
grub>setup (fd0)
grub>quit - Wechseln Sie vom root zu Ihrem Account #exit.
Bootmenü-Einträge In der Datei "menu.lst" stehen alle signifikanten Einstellungen, die Grub bei einem Bootvorgang benötigt, u. a. die Auswahlmöglichkeit der im System vorhandenen Betriebssysteme. Mit Hilfe der bestehenden Menüeinträge sollten Sie alle installierten Betriebssysteme auf ihrem eigenen PC problemlos booten können. Um auch andere Systeme starten zu können, müssen Sie eventuell eigene Einträge anlegen. 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 Konstellationen. Weit verbreitet sind PC's, die auf der ersten primären Partition eine Windows-Installation haben und in der erweiterten Partition ein Linux-System. Um ein solches System zu starten, reichen in der Regel zwei 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 Festplatten, Partitionen und Co Hilfreich bei der Installation mehrerer Betriebssysteme auf einem PC ist ein grundlegendes Verständnis der Partitionierung von Festplatten. Hier kommt immer noch das aus DOS-Zeiten bekannte Schema zum Einsatz. Dreh- und Angelpunkt bei Multi-Boot-Systemen ist der Master-Boot-Record (MBR), der erste Sektor der Festplatte. Am Anfang dieses 512 Byte großen Bereiches befindet sich ein Urloader gennates Programm zum Systemstart, das das BIOS direkt nach den Selbsttests ausführt. Ein reines Windows-System enthält hier einfachen Programmcode, der ein weiteres Programm aus dem Boot-Sektor der aktiven primären Partition startet. Linux-Systeme installieren im MBR einen Boot-Manager (hier Grub), der Windows oder Linux startet. Der Boot-Sektor ist der erste Sektor einer Partition und ebenfalls 512 Byte groß. Hier speichert Windows XP ein Programm, das NT-Loader ausführt, der Wiederum den Windows-Start veranlasst. Linux-Boot-Manager im MBR können Linux auch ohne Programmcode im Boot-Sektor starten. Grub nutzt eine andere Notation als Linux, um die Datenträger und Partitionen zu bezeichnen; hd0 steht für die Boot-Platte, hd1, hd2 usw. für die weiteren Festplatten: (hd0,0) = hda1; (hd0,4) = hda5; (hd1,0) = hdb1 usw. - beim Grub werden Partitionen von Null gezählt, der erste IDE-Port = 0, der zweite = 1. Die Zuordnung der Gerätenamen legt die Datei "/boot/grub/device.map" fest, die beim Installieren angelegt wird. System starten Um z. B. ein Linux-System zu starten, benötigen Sie folgende Informationen: - Wo befindet sich Initial Ramdisk ("initrd" bei SuSE, "initrd.img" bei Mandrake oder Fedora core 2?
- Auf welcher Festplatte und welche ist die Boot-Partition?
- Wo befindet sich der Kernel und die Root-Partition?
Die folgenden Befehle in der Grub-Shell starten ein Linux-System. Wenn Sie zum Zeitpunkt der Eingabe die o. g. Informationen nicht genau wissen, betätigen Sie die [Tab]-Taste ähnlich wie bei Linux. Beim Befehl "root (hd" + [Tab]-Taste - versucht Grub z. B. nach Geräten zu suchen und gibt die möglichen Festplatten aus. Ähnlich verhält es sich bei Partitionen. Beim Kernel oder Initial Ramdisk können Sie ebenfalls die [Tab]-Taste oder den Befehl "find" verwenden. grub>root (hd0,4) - gibt den Ort des Grub-Root-Device (der Boot-Partition) an
grub>kernel /boot/vmlinuz root=/dev/hda5 - gibt Grub den Kernel-Namen und die Root-Partition
grub>initrd=/boot/initrd - Name und Pfad für Initial Ramdisk
grub>boot - bootet das angegebene System
Wenn Sie ein Windows-System starten wollen, geben Sie analog die folgenden Befehle ein:
grub>rootnoverify (hd0,0) - dieser Befehl versuch nicht, die Zielpartition einzubinden
grub>chainloader +1 - lädt den Boot-Sektor der angegbenen Partition und übergibt diesen an das System
grub>boot - bootet das angegebene System |