Inhalt

2. Hintergrund Information und Standard Installation

Wenn Lilo das System bootet, kann er nur die Daten-Sektoren laden, die über das BIOS erreichbar sind. Jeder Pfadname in /etc/lilo.conf wird zum Installationszeitpunkt ausgewertet, d.h. beim Aufruf von lilo. Dies ist auch der Zeitpunkt, bei dem das Programm die Zuordnungs-Tabelle (map) erstellt. Diese Tabelle gibt an, welche Sektoren von den Dateien benutzt werden. Daraus folgt als Konsequenz, daß die Dateien in einer Partition liegen müssen, welche über das BIOS ansprechbar ist. Außerdem muß jedesmal der Lader neu-installiert werden (d.h. Aufruf von lilo), sobald man die Files ändert. Nach jeder Kernel-Kompilierung und erfolgreicher Installation ist auch Lilo neu zu installieren.

2.1 Wohin Lilo installieren?

Die boot = Anweisung in /etc/lilo.conf sagt dem Lilo, wohin er den Haupt-Boot-Lader zu installieren hat. Im allgemeinen kann man den Master-Boot-Record (z.B. /dev/hda) oder die Root-Partition der Linux Installation angeben (z.B. /dev/hda1 oder /dev/hda2).

Wenn ein anderes Betriebssystem auf der Platte installiert ist, sollte man Lilo besser in der Root-Partition unterbringen. In diesem Fall ist diese Partition als »bootable« (bootbar) zu markieren. Das erreicht man mit dem »a« Kommando von fdisk oder mit dem »b« Kommando von cfdisk. Es ist einfacher Lilo und Linux (bei Bedarf) zu entfernen, wenn Lilo nicht im Master Boot Record (MBR) installiert wird.

2.2 Wie IDE-Platten konfigurieren?

Da ich nur Linux benutze, benötige ich die LBA- oder LARGE-Einstellung im BIOS nicht. Diese Einstellungen sind fürchterliche Krücken um Design-Schwächen der PCs zu umgehen. Diese fordern, daß der Kernel in den ersten 1024 Zylindern liegen muß; das ist kein Problem, so lange man seine Platte partitioniert und die Root-Partition klein hält. (Dies sollte man sowieso immer beachten)

Wenn auf der Platte aber schon ein anderes Betriebssystem installiert ist, kann es unter Umständen unmöglich sein, die BIOS-Einstellungen zu modifizieren, da sonst das alte System nicht mehr lauffähig wäre. Alle neueren Lilo-Distributionen sind jedoch fähig, mit den Einstellungen für LBA- und LARGE-Disk umzugehen.

Die Festplatten, die auschließlich unter Linux benutzt werden und von denen auch nicht gebootet wird, können aus dem BIOS ausgetragen werden. Dadurch bootet das System schneller und Linux erkennt diese Platten später trotzdem automatisch und ohne Zeitverlust. Ich schließe z.B. öfter zusätzlich Festplatten an meinen Rechner an, ohne die BIOS-Einstellung zu verändern.

2.3 Wie beim Booten eingreifen?

Wenn der Lilo-Prompt erscheint, ist es durch Drücken der <Tab> Taste möglich eine Auswahlliste anzuzeigen. Sollte Lilo dafür nicht konfiguriert sein, so hilft das Drücken und Halten der <Alt> oder <Shift> Taste bevor »LILO« angezeigt wird.

Wenn man einen Kernel zum Booten auswählt, kann man nach dem ausgewählten Kernelnamen noch zusätzliche Kommandozeilen-Parameter angeben. Der Kernel akzeptiert umfangreiche Kommandozeilen-Parameter; dies ist aber nicht der richtige Ort, um sie alle aufzulisten. Einige sind aber meiner Meinung nach interessant:

root=

diese Partition soll als root gemountet werden, sie kann unterschiedlich sein zu dem Eintrag in lilo.conf. Zum Beispiel, habe ich eine kleine Parition mit einem Minimal-Linux, die es mir ermöglicht das System zu booten, sollte durch einen Fehler meine Root-Partition zerstört werden.

init=

Version 1.3.43 und neuere Linux-Kernel akzeptieren das Ausführen von anderen Programmen als /sbin/init. Wenn beim Booten kritische Probleme auftreten, ist es durch init=/bin/sh möglich ein spartanisches System zu starten. Nach Erscheinen des Shell-Prompts ist es in den meisten Fällen nötig, erstmal die Partitionen zu mounten:

/sbin/mount -w -n -o remount /; mount -a

Vor dem Ausschalten des Computers nicht vergessen,

/sbin/umount -a
aufzurufen.

eine Nummer

eine Nummer in der Kernel-Kommandozeile veranlaßt init den gewünschten Run-Level einzunehmen. Der Default ist normalerweise 3. Bitte genaueres in der Dokumentation zu init, /etc/inittab und /etc/rc.d nachlesen.

2.4 Wie Lilo entfernen?

Wenn Lilo einen Boot-Sektor überschreibt, sichert er ihn in /boot/boot.xxyy. Dabei ist xxyy die Major- und Minor-Device-Nummer in Hexadezimal.

ls -l /dev/device

zeigt einem die Major- und Minor-Nummern an. Zum Beispiel, der erste Sektor von /dev/hda (Major 3, Minor 0) wird in /boot/boot.0300 gespeichert; installiert man Lilo auf /dev/fd0 wird ein /boot/boot.0200 angelegt; die Installation von Lilo auf /dev/sdb3 (Major 8, Minor 19) sichert eine Kopie in /boot/boot.0819.

Achtung: Sollte ein solches File schon existieren, wird von Lilo keine Kopie generiert. Darüber muß man sich bei der Installation von Lilo, z.B. nach einer Kernel-Kompilierung, aber nicht sorgen.

Sollte man in die Verlegenheit geraten, Lilo entfernen zu müssen, z.B. bei der De-Installation von Linux, braucht nur der ursprüngliche Boot-Sektor wieder hergestellt werden. Ist Lilo in /dev/hda installiert, genügt es,

dd if=/boot/boot.0300 of=/dev/hda bs=446 count=1

aufzurufen. Ich benutze einfach:

cat /boot/boot.0300 > /dev/hda

Dies ist aber nicht ganz sicher, da auch die ursprüngliche Partitionstabelle mitrestauriert wird; diese könnte aber in der Zwischenzeit geändert worden sein. Diese Kommando ist aber viel einfacher zu handhaben als ein fdisk /mbr in einer DOS shell, denn es erlaubt einem, sauber Linux von der Platte zu entfernen, ohne ein anderes Betriebssystem zu benötigen. Nachdem Entfernen von Lilo sollte man nicht vergessen, mit dem Linux fdisk alle Linux-Partitionen zu löschen, da es mit dem DOS fdisk nicht möglich ist diese zu löschen.

Ist Lilo auf der Root-Partition installiert, z.B. auf /dev/hda2, so ist keinerlei Aktion notwendig, um Lilo zu de-installieren. Nur das Linux fdisk aufrufen und alle Linux-Partitionen aus der Paritionstabelle entfernen. Nicht vergessen, die DOS-Partition als Boot-Partition zu markieren.


Inhalt