Konfiguration von lilo
Wenn der Bootmanager lilo benutzt werden soll, so werden alle Konfigurationsinformationen in der Datei /etc/lilo.conf abgelegt. Das Programm lilo liesst diese Datei und führt die folgenden Schritte aus:
* Aus den Einträgen der Konfigurationsdateien werden Menüeinträge erstellt, die in eine Datei (standardmäßig /boot/boot.b) abgelegt werden. Weitere Menüelemente können – je nach Konfiguration – in den Dateien /boot/boot-menu.b, /boot/message und /boot/boot-bmp.b abgelegt werden.
* Die Adressen und Größen der zu ladenden Kernel-Dateien werden in die Datei /boot/map geschrieben. Damit ist lilo später in der Lage, auf diese Dateien zuzugreifen, ohne ein Betriebssystem zu benutzen.
* Ein kleines Programm wird in den Master Boot Record geschrieben, das die Adressen der oben genannten Dateien in /boot enthält und die Aufgabe hat diese zu laden.
Das bedeutet, daß jedesmal, wenn eine Veränderung an den zu bootenden Kerneldateien gemacht wird, das Programm lilo neu aufgerufen werden muß. Selbst wenn alle Dateinamen gleich bleiben, so verändern sich eben doch die Adressen und Größen auf der Platte und die Informationen in /boot/map würden nicht mehr stimmen.
Normalerweise genügt der Aufruf von lilo ohne weitere Parameter.
Wird lilo mit der Option -u oder -U aufgerufen, so löscht es die Einträge auf dem entsprechenden Bootsektor und stellt ihn wieder so her, wie er war, bevor lilo installiert wurde. Damit kann eine Platte also wieder vom Bootmanager befreit werden.
Wenn beim Booten mit lilo ein Fehler auftritt, so kann dieser Fehler anhand des Bootprompts eingekreist werden. Der Bootprompt ist standardmäßig einfach das Wort:
LILO boot:
Das Wort LILO wird Zeichen für Zeichen auf den Schirm geschrieben. Falls es zu einem Fehler während des Bootmanager-Vorgangs kommt, so kann dieser Fehler anhand der Tatsache eingekreist werden, wieviele Buchstaben schon geschrieben wurden. Die folgenden Schritte werden jeweils durchgeführt, wenn ein Buchstabe geschrieben wurde:
nichts
Kein Teil von Lilo wurde geladen. Entweder ist lilo nicht installiert oder er sitzt auf einem Bootsektor einer Partition, die nicht aktiviert ist.
LFehlernummer
Der erste Teil des Bootloaders wurde lokalisiert und geladen, aber er kann den zweiten Teil nicht laden. Die zweistellige Fehlernummer gibt genauere Hinweise auf den Grund an. In der Regel deutet dieser Fehler auf ein Problem mit der Plattenoberfläche oder falschen Plattenparametern im BIOS hin.
LI
Der erste Teil des Bootloaders hat den zweiten Teil geladen, kann ihn aber nicht ausführen. Das kann daran liegen, daß es entweder eine Inkompatibilität mit der Plattengeometrie gibt, oder die Datei /boot/boot.b wurde von der Stelle bewegt, an der sie lag, als lilo installiert (aufgerufen) wurde.
LIL
Der zweite Teil des Bootloaders wurde gestartet, kann aber die Beschreibungstabelle des map-files nicht laden. Typischerweise ein Medien-Fehler (Oberflächenbeschädigung) oder unpassende Plattengeometrie.
LIL?
Der zweite Teil des Bootloaders wurde an eine falsche Adresse geladen. Auch hier ist die wahrscheinlichste Ursache, daß die Datei /boot/boot.b verändert oder bewegt wurde.
LIL-
Die Beschreibngstabelle ist beschädigt. Entweder ein Oberflächenfehler, oder die Datei /boot/map wurde verändert oder bewegt.
LILO
Alle Teile von lilo wurden ordnungsgemäß geladen.
In jedem Fall ist bei einem Fehler immer der erste Versuch, lilo nochmal aufzurufen, nachdem das System über eine andere Technik (Bootdiskette, BootCD) gebootet wurde. War es der erste Versuch, der gescheitert ist, also hat lilo noch nie vorher funktioniert, so sollte davor aber nochmal die Datei /etc/lilo.conf überprüft werden.
Die Datei /etc/lilo.conf
Die Datei /etc/lilo.conf enthält die Angaben, die lilo braucht um den Bootloader in einen Bootsektor zu schreiben. Sie besteht im Wesentlichen aus zwei Teilen. Der erste Teil beschreibt globale Einstellungen, der zweite beschreibt für jedes zu bootende System separate Einstellungen.
Ein typischer erster Teil einer lilo.conf-Datei könnte folgendermaßen aussehen:
append=”reboot=warm”
boot=/dev/hda
lba32
message=/boot/message
prompt
timeout=300
Die Zeile append=… ermöglicht es, jedem zu bootenden Kernel bestimmte Parameter mitzugeben. Hier ist es der Parameter reboot=warm, der dazu führt, daß beim Reboot nicht ein Kaltstart (mit Speicherprüfung) sondern ein Warmstart ausgeführt wird.
Die Zeile boot=… gibt den Ort an, auf den lilo den Bootloader schreiben soll. Wird hier eine ganze physikalische Platte angegeben, also eine Gerätedatei ohne Partitionsnummer wie /dev/hda, so wird der Master-Boot-Record dieser Platte beschrieben. Stünde hier die Angabe einer Partition, also etwa /dev/hda2, so würde der Bootsektor der Partition beschrieben.
Die Angabe von lba32 versetzt lilo in die Lage, auch mit Platten mit mehr als 1024 Zylindern umzugehen, wenn im BIOS der LBA-Modus eingestellt wurde.
Die Zeile message=… gibt an, aus welcher Datei die Bildschirmmeldung des Bootloaders stammen soll. Ohne diese Zeile wird keine Bildschirmmeldung benutzt. Der Inhalt der angegebenen Datei wird mit auf den Bootsektor geschrieben, wenn lilo aufgerufen wird. Sollten also Veränderungen vorgenommen werden sollen, so reicht es nicht, diese in die angegebene Datei zu schreiben. Es muß das Programm lilo nochmal aufgerufen werden, damit diese Veränderungen auch tatsächlich auf den Bootsektor kommen.
Die Angabe prompt veranlasst lilo, auf eine Benutzereingabe zu warten. Das ist insbesondere dann nötig, wenn mehr als ein Betriebssystem bootbar sein soll.
Die Zeile timeout=… gibt schließlich die Zehntelsekunden an, die auf Benutzereingaben gewartet werden soll, bevor das voreingestellte System gebootet wird. Die Angabe 300 steht also für 30 Sekunden.
Die Handbuchseite über lilo.conf(5) zeigt alle möglichen globalen Parameter auf.
Als zweiter Teil der Datei /etc/lilo.conf stehen die Einstellungen für die zu bootenden Systeme. Jede dieser Angaben beginnt mit einem image=… für Linux-Systeme oder einem other=… für alles andere und enthält dann noch mindestens die Angabe, auf welcher Partition sich die Wurzel des zu bootenden Systems befindet und welches label sie hat, mit dem lilo dann mitgeteilt werden kann, daß diese Partition gebootet werden soll. Ein Beispiel:
image = /boot/zImage
root = /dev/hda2
initrd = /boot/initrd
label = linux
image = /boot/vmlinuz
root = /dev/hda2
label = linuxalt
other = /dev/hda1
label = windows
alias = win
Der erste Block ist der voreingestellte. Dieses System wird also gebootet, wenn das Timeout erreicht ist oder LILO einfach mit der Enter-Taste beantwortet wird.
Dieser erste Block beschreibt also, daß der Kernel, der in /boot/zImage abgelegt wurde, gebootet werden soll. Das Wurzeldateisystem ist /dev/hda2. Die Zeile initrd = /boot/initrd bezeichnet die zu ladende initiale Ramdisk.
Der zweite Block beschreibt eine andere Kerneldatei (/boot/vmlinuz), die aber auch die Partition /dev/hda2 als Wurzelverzeichnis nützt. Um diesen Kernel zu booten muß auf dem Bootprompt das Wort “linuxalt” eingegeben werden.
Der dritte Block bezieht sich auf ein Nicht-Linux System (other). Statt der Kerneldatei wird hier einfach die Angabe der Partition gemacht, auf der dieses andere System liegt. Lilo kann ja davon ausgehen, daß jedes andere System auf dem Bootsektor seiner Partition seinen Bootstrap-Loader selbst abgespeichert hat. Das einzige, was wir noch an Information brauchen ist das Label, also das Wort, was wir auf dem Bootprompt angeben müssen, um dieses System zu laden. In unserem Beispiel ist es “windows”. Weil das sehr lang ist, kann dazu noch ein Alias vergeben werden, in unserem Fall das Wort “win”.
Kommentare
Kommentar hinterlassen Trackback