Debian GNU/Linux Anwenderhandbuch | ||
---|---|---|
Zurück | Nach vorne |
Vor dem Laden des Linux-Kernels wird mit dem sogenannten Bootloader ein kleines Programm geladen, welches Ihnen eine Auswahl zwischen verschiedenen installierten Betriebssystemen erlaubt. Der unter GNU/Linux gebräuchlichste Bootloader ist lilo.
Bei der Installation von Debian GNU/Linux auf Ihrem System wird generell der Bootloader lilo auf Ihrer Festplatte installiert und so eingerichtet, daß das neue Debian GNU/Linux-System gestartet wird.
Nach Installation des Basis-Systems und des Master Boot Records, gelangen Sie beim Booten des Rechners automatisch in den LILO und können plötzlich nur noch Linux starten. In diesem Abschnitt wird beschrieben, wie Sie die alten Systeme wieder aktivieren.
LILO ist ein vollständiger Boot-Manager, mit dem nicht nur Linux gebootet werden kann, sondern auch jedes andere System, das sich an die im PC vorherrschenden Konventionen hält. Konfiguriert wird dieser Boot-Manager über die Datei /etc/lilo.conf.
Wann immer Sie diese Datei ändern, müssen Sie das Programm lilo auf der Kommandozeile als Superuser aufrufen, um die Änderungen tatsächlich zu übernehmen. Es reicht nicht, die Konfigurationsdatei zu verändern!
Wichtig in diesem Zusammenhang sind die Zeilen, die mit image und other anfangen, sowie die jeweils nachfolgende Zeile. Diese Schlüsselwörter dürfen mehrfach verwendet werden. Jede so beginnende Zeile bezeichnet ein System, das von LILO gebootet werden kann. Eine solche Partition kann einen Kernel, eine Root-Partition oder ein anderes, Nicht-Linux-System (other), beinhalten. Die Reihenfolge dieser Systeme ist entscheidend, denn das erste wird automatisch gebootet, wenn die Wartezeit (siehe delay) abgelaufen ist und LILO nicht durch Drücken der Shift-Taste angehalten wurde. Nach einer Erstinstallation existiert lediglich ein einziges solches System, welches das aktuelle Debian GNU/Linux-System bootet.
Um ein zweites Linux-System zu booten (z.B. unter Verwendung eines anderen Kernels), müssen Sie die Datei /etc/lilo.conf um folgende Zeilen ergänzen:
image=/boot/vmlinuz.neu label=neu append='mcd=0x320,11' read-only |
Um ein anderes System als Linux zu booten, verwenden Sie das Schlüsselwort other wie folgt:
other=/dev/hda1 label=win |
Rufen Sie danach lilo als Superuser auf, um lilo neu zu installieren. Bei einem Neustart des Systems können Sie nun am Bootprompt durch Eingeben von „win“ das Betriebssystem auf der Partition /dev/hda1 starten.
GRUB (GRand Unified Bootloader) ist ein weiterer Bootloader, dessen Aufgabe es ist nach dem einschalten des Rechners die weitere Kontrolle an das Betriebssystem (also den Kernel) zu übergeben. Das Betriebsystem initialisiert dann über die geeigneten Treiber alle weitere Hardware im System. GRUB ist in der Lage viele verschiedene Betriebssysteme zu laden. Wird ein Betriebssystem nicht direkt von GRUB unterstützt, so kann dieses dennoch von GRUB über einen sogenannten „Chain-Bootloader“ geladen werden. Für die wichtigsten Betriebssysteme sind diese bereits im GRUB Paket enthalten.
Einer der größten Vorteile von GRUB ist, das GRUB in der Lage ist auf das Dateisystem direkt zuzugreifen. Das bedeutet das GRUB nicht wissen muß wo genau der zu ladende Kernel auf der Festplatte liegt. Sie können also jederzeit einen neuen Kernel erzeugen und müssen hinterher nicht nochmal GRUB im MBR der Festplatte installieren. Es ist ebenfalls nicht notwendig alle Kernelversionen die sich auf der Festplatte befinden in die Konfigurationsdatei einzutragen. Sie können mit GRUB jederzeit auf jeden Kernel auf Ihrer Festplatte zugreifen, wenn auch mit ein wenig Tipparbeit.
Die Installation von GRUB unter Debian ist wie üblich mit einem einfachen apt-get install grub so gut wie abgeschlossen. Sie sollten danach zunächst das Paket lilo entfernen, dies wird nicht mehr benötigt. Leider ist noch keine Installationsroutine zur kompletten automatischen Installation von GRUB verfügbar, so das noch einige wenige Schritte von Hand vorgenommen werden müssen.
Um die notwendigen Daten (die Stage 1 und 2 Bootloader) in den Masterboot-Record der Festplatte zu schreiben, benutzen Sie das Programm „grub-install“. Wenn Sie „grub-install“ zunächst ohne Optionen aufrufen bekommen Sie eine kurze Übersicht der möglichen Optionen angezeigt:
debian:~# grub-install install_device not specified. Usage: grub-install [OPTION] install_device Install GRUB on your drive. -h, --help print this message and exit -v, --version print the version information and exit --root-directory=DIR install GRUB images under the directory DIR instead of the root directory. --grub-shell=FILE use FILE as the grub shell. --force-lba force GRUB to use LBA mode even for a buggy BIOS. --recheck probe a device map even if it already exists. INSTALL_DEVICE can be a GRUB device name or a system device filename. Reports bugs to <bug-grub@gnu.org>. |
surimi:/home/fr# grub-install /dev/hda Installation finished. No error reported. This is the contents of the device map /boot/grub/device.map. Check if this is correct or not. If any of the lines is incorrect, fix it and re-run the script `grub-install'. (fd0) /dev/fd0 (hd0) /dev/hda (hd1) /dev/hdb |
GRUB ist nun funktionsfähig installiert, Sie sollten aber noch ein Menü einrichten um nicht bei jedem Systemstart die Parameter für das Root-Device und den Kernel von Hand eingeben zu müssen. Kopieren Sie hierzu am besten das mitgelieferte Beispiel an die entsprechende Stelle.
Die Konfiguration von GRUB kann herkömlich, mittels eines Editors, erfolgen oder aber ganz elegant mittels update-grub.
update-grub ist Bestandteil des GRUB Debian Paketes. Existiert noch keine Konfigurationsdatei, so wird diese automatisch erstellt. Als Basis dienen dazu die Kernel- und RAM-Disk-Images im Verzeichnis /boot/. Zu jedem vorhandenen Kernel wird jeweils ein Eintrag für den normalen Start sowie für den Start im Single-User Modus erstellt.
wasabi:~# update-grub Searching for GRUB installation directory ... found: /boot/grub . Testing for an existing GRUB menu.list file... Could not find /boot/grub/menu.lst file. Would you like one generated for you? (y/N) y Updating /boot/grub/menu.lst ... done Please note that configuration parameters for GRUB are stored in /boot/grub/menu.lst . You must edit this file in order to set the options which GRUB passes to the kernel, as well as the drive which GRUB looks in to for the kernel. Everything on the line after "kopt=" is passed to the kernel as parameters, and "groot=" must be set to the partition(in GRUB terms, such as "(hd0,0)") which GRUB will load the kernel from. After you have edited /boot/grub/menu.lst , please re-run 'update-grub'. |
Natürlich sind Veränderungen an der automatisch erstellten Konfiguration möglich. In der Konfigurationsdatei gibt es einen Abschnitt der mit „### BEGIN AUTOMAGIC KERNELS LIST“ beginnt. Diese Einträge können verändert werden, es dürfen aber auf keinen Fall die Kommentarzeichen (#) am Anfang jeder Zeile verändert werden! Ein Beispiel. Aus:
# kopt=root=/dev/hda1 ro |
Wird:
# kopt=root=/dev/hda1 ro apm=on ide2=0x180,0x386 |
Die hinzugefügten Parameter werden beim Starten des Kernels übergeben. Nach der Änderung wird nochmals update-grub aufgerufen und die Änderungen werden in die eigentliche Konfiguration am Ende der Datei übernommen.
Wenn Sie im Verzeichnis /boot/grub/ eine Datei eine Datei menu.lst erzeugen, so wird GRUB beim nächsten Start aus dieser Datei ein Menü erstellen und Sie können dann aus den verschiedenen Einträgen dieses Menüs den gewünschten auswählen. Ein Beispiel für ein solches Menü finden Sie unter /usr/share/doc/grub/examples/menu.lst.
debian:~# cp /usr/share/doc/grub/examples/menu.lst /boot/grub/ |
timeout 10 default 0 # For booting Linux title Debian GNU/Linux root (hd0,0) kernel /vmlinuz root=/dev/hda1 |
Wenn ein Kernelpaket verwendet wird, so ist darauf zu achten das diese normalerweise eine Init-Ramdisk (initrd) verwenden. Ein entsprechender Eintrag, um eben diese Ramdisk ergänzt sieht wie folgt aus:
title GNU/Linux 2.4.6 SMP root (hd0,6) kernel /vmlinuz-2.4.6-686-smp root=/dev/hda1 read-only initrd /initrd-2.4.6-686-smp |
Dieses Beispiel verwendet einen SMP Kernel und eine etwas andere Festplattenaufteilung, aber das Prinzip sollte erkennbar sein.
Vielleicht haben Sie sich schon über die etwas ungewohnten Bezeichnungen der Laufwerke in der Konfigurationsdatei gewundert. GRUB benutzt die von HURD-Kernel verwendeten Bezeichnungen für Gerätedateien, die Umstellung ist aber für den geübten Linux-Admin nicht sehr groß.
Zunächst ist zu bemerken das alle Bezeichnungen für Geräte in Klammern () geschrieben werden. Statt der unter Linux üblichen Buchstaben (z.B. hda) werden die einzelnen Platten mit fortlaufenden Zahlen ab 0 bezeichnet. hda entspricht also hd0. Die einzelnen Partitionen einer Platten werden wie unter Linux mit Zahlen bezeichnet, allerdings beginnend mit 0 und getrennt mit einem Komma. Somit entspricht /dev/hda1 also (hd0,0).
Weitere Geräte werden als (fd0) (Diskette) und (sd0) (SCSI Platten) bezeichnet. Sie können GRUB auch zum booten übers Netz einsetzen oder das Root-Filesystem per NFS mounten. Die Bezeichnung des Netzwerkdevices lautet (nd).
GRUB verfügt auch über eine sehr leistungsfähige Kommandozeile, bedenken Sie dabei das zu dieser Zeit noch kein komplettes Betriebssystem oder gar ein Kernel geladen ist! Sollte es Ihnen nicht gelungen sein ein funktionsfähiges Menü zu erstellen, so landen Sie automatisch auf der GRUB-Kommandozeile. Sie können hier alle Kommandos, Laufwerksbezeichnungen und Dateinamen mit der TAB-Taste automatisch vervollständigen lassen, diese Feature kennen Sie sicher schon aus der Shell.
Wenn jedoch ein Menü angezeigt wird, können Sie dieses mit der Taste c verlassen und auf der Kommandozeile zum Beispiel von Hand einen anderen Kernel starten. Fehlerhafte Einträge im Menü lassen sich aus dem Menü mit der Taste e temporär verändern. Vergessen Sie nicht diese Änderungen später in die Datei /boot/grub/menu.lst einzutragen.
Weitere Informationen zu GRUB finden Sie auf Ihrem System unter file:///usr/share/doc/grub/ und auf der Webseite des Projektes unter http://www.gnu.org/software/grub/grub.en.html.
Zurück | Zum Anfang | Nach vorne |
„Geräderte“ Mäuse | Init Scripte |