Ein eigener Kernel Der Kernel Probleme beim Booten Inhalt Index


Linux Boot Loader (LILO)

Der Linux Boot Loader ist ein mächtiges Tool zum Booten von Linux und anderen Systemen. Eine vollständige Beschreibung seiner Funktionalität ist hier an dieser Stelle nicht möglich. Eine sehr gute Beschreibung aller Möglichkeiten findet man in der beigelegten Dokumentation und einem entsprechenden Boot-HowTo. Das hier erwähnte Beispiel stellt nur eine Standardsituation dar.

Der LILO wird entweder in den Master-Boot-Record (MBR) oder an den Anfang einer Partition innerhalb der ersten 1024 Zylinder der ersten oder zweiten Festplatte geschrieben. Diese Restriktionen werden nicht vom Linux, sondern vom BIOS gesetzt.

In diesem Beispiel liegt die root-Partition (hier /dev/hda5) des Linux-Systems in einer erweiterten Partition (hier /dev/hda3) der ersten Festplatte. Ein anderes System (z.B. Win95 oder DOS) liegt auf der ersten primären Partition der gleichen Platte. Das folgende Beispiel der Datei /etc/lilo.conf, mit der der LILO konfiguriert wird, zeigt die Einstellungen um die DOS-Partition und die Linuxpartition (mit 2 verschiedenen Kerneln) zu booten:

Beispiel

# /etc/lilo.conf on sonne
#

# Geraet wohin der LILO installiert wird
# (hier MBR der 1. Festplatte)
# (/dev/hda3 waere die 3.Partition der 1. Platte)
#
boot=/dev/hda

# gibt an, dass der LILO beim Booten auf die Eingabe 
# warten soll, welches System gebootet wird
#
prompt

# wie lange am Boot-Prompt gewartet wird (in Sekunden)
# (nach Ablauf der Zeit wird das 1.Image gebootet)
#
timeout=10

# Linux-Konsole bleibt normal
#
vga = normal

# mit append="" koennen Kernelparameter uebergeben werden
# Ende der allg. Konfiguration

# --- Erstes und damit standardmaessig gebootetes Image ---

# Kernel, der gebootet werden soll
#
image = /boot/vmlinuz

# Root-Partition, in der sich der Kernel befindet
#
root = /dev/hda5

# Name, unter dem das Image am Bootprompt aufgerufen werden kann
#
label = linux

# --- Zweites Image ---

image = /boot/vmlinuz_2.0.36
root = /dev/hda5
label = linuxold

# --- Anderes OS ---

# Partition, die gebootet werden soll
#
other = /dev/hda1

# auf welcher Platte die Partition liegt
#
table = /dev/hda

# Name, unter dem das Image am Bootprompt aufgerufen werden kann
#
label = MachoSoft

#

Installiert wird der Bootloader durch Aufruf des Kommandos lilo.

Die obige Konfiguration setzt voraus, dass das Booten aller Betriebssysteme vom Lilo aus steuerbar ist. Leider streikt bei derartiger Einstellung häufig der NT-Bootmanager, so dass man diesen zum Booten von Linux erziehen muss.

Für einen solchen Fall installiert man den Lilo nicht in den MBR, sondern in den Bootsektor der Rootpartition und konfiguriert die lilo.conf nur für die Linux-Images. Anschließend bootet man mit Hilfe einer Bootdiskette sein Linux und kopiert den Bootsektor in eine Datei (wir nehmen an, die Linux-Rootpartition ist /dev/hdb2):

root@sonne> dd if=/dev/hdb2 of=/tmp/bootsector bs=512 count=1

Die Datei bootsector speichert man auf eine von NT lesbare Diskette, z.B. eine DOS-formatierte Diskette:

root@sonne> mcopy /tmp/bootsector a:

Als Nächstes ist NT zu booten. Als Systemadministrator speichert man nun die Datei von der Diskette in ein NT-Verzeichnis und ergänzt die Datei boot.ini um einen entsprechenden Eintrag:

c:\bootsector="Linux"

Jetzt kann Lilo über den NT-Bootmanager aufgerufen werden.


Ein eigener Kernel Der Kernel Probleme beim Booten Inhalt Index