LILO

Wechseln zu: Navigation, Suche
LILO, der LInux LOader, ist ein verbreiteter Bootloader für Linux, der aber auch andere Betriebssysteme starten kann. LILO ist sehr flexibel und kann im Gegensatz zu vielen anderen Bootloadern auch einen Kernel hinter dem Festplattenzylinder 1024 starten. Seit 2002 hat LILO starke Konkurrenz von GRUB, der standardmäßig in openSUSE verwendet wird, bekommen.
Getestet mit openSUSE Empfohlene Artikel Verwandte Artikel
Icon-checked.png

Icon-manual.png Icon-help.png


LILO

Lilo-logo.png

Bootloader

Download für openSUSE:


Hersteller: 1992-2000: Werner Almesberger seit 2000: John Coffman

Lizenz: BSD
Webseite: LILO Projektseite


Funktion

LILO ist von seinem Layout her in der Lage, alle benötigten Daten auf den "rohen" Festplatten - ohne Informationen zur Partitionierung - zu finden. Deshalb lassen sich auch Betriebssysteme von einer anderen als der primären Festplatte booten. Beim Booten kann zwischen dem Laden verschiedener installierter Betriebssysteme gewählt werden. Nach dem Laden des MBR in den Speicher wird LILO gestartet; LILO bietet nun dem Benutzer die Auswahl aus einer Liste vorinstallierter Systeme an.

Er kann beim Systemstart Bootsektoren von Partitionen laden, um ein Betriebssystem von dieser Partition zu starten, oder den Linux-Kernel laden und Linux starten. Zudem bietet er die wichtige Gelegenheit, dem Linux-Kernel eine Kommandozeile mitzugeben. Zu Sicherheitszwecken kann LILO ganz oder teilweise passwortgeschützt werden.

Die LILO Startmaschinerie umfasst die folgenden Bestandteile:

  • LILO-Bootsektor mit einem Anfangsstück ("erste Stufe") des LILO-Codes, das den eigentlichen LILO beim Systemstart aktiviert.
  • LILO-Maschinencode, standardmäßig in /boot/boot-menu.b
  • Map-Datei (/boot/map), in der LILO bei seiner Installation einträgt, wo die Linux-Kernel und sonstigen Daten, die er braucht, zu finden sind.
  • optional: die Message-Datei /boot/message, die standardmäßig eine graphische LILO-Bootauswahl erzeugt.
  • die verschiedenen Linux-Kernel und Bootsektoren, die LILO zum Starten anbieten soll.
Jeder Schreibzugriff (auch durch Dateiverschiebung) auf einen dieser Bestandteile macht die Map-Datei ungültig und daher eine Neuinstallation von LILO erforderlich! Dies betrifft vor allem den Wechsel zu einem neuen Linux-Kernel.

Anwenden

Für den LILO-Bootsektor stehen folgende Installationsziele zur Auswahl:

  • Auf einer Diskette
    Dies ist die einfachste, aber auch langsamste Methode, mit LILO zu booten. Wählen Sie diese Methode, wenn Sie den bestehenden Bootsektor nicht überschreiben wollen.
  • Im Bootsektor einer primären Linux-Partition der ersten Festplatte
    Diese Variante lässt den MBR unberührt. Vor dem Booten muss diese Partition mit fdisk als aktiv markiert werden. Rufen Sie dazu als superuser root fdisk </dev/xxx> auf. Für </dev/xxx> setzen Sie die Device-Bezeichnung für Ihre Festplatte ein. fdisk fragt Sie nun nach einer Eingabe. m gibt Ihnen eine Liste der möglichen Eingaben, mit l werden Ihnen alle Partitionen angezeigt und mit a können Sie die primäre Partition startbar machen.
  • Im Master Boot Record
    Diese Variante bietet die größte Flexibilität. Insbesondere ist dies die einzige Möglichkeit, Linux von Festplatte aus zu booten, wenn sämtliche Linux-Partitionen auf einer zweiten Festplatte liegen und auf der ersten keine erweiterte Partition zur Verfügung steht. Ein Veränderung des MBR birgt aber bei unsachgemäßer Installation auch gewisse Risiken.
  • Wenn Sie bisher einen anderen Bootmanager verwendet haben...
    ... und ihn weiterverwenden wollen, gibt es, je nach dessen Fähigkeiten, noch weitere Möglichkeiten. Ein häufiger Fall: Sie haben eine primäre Linux-Partition auf der zweiten Platte, von der aus Sie Linux starten wollen. Ihr anderer Bootmanager wäre imstande, diese Partition über den Bootsektor zu starten. Dann können Sie diese Partition startbar machen, indem Sie LILO in deren Bootsektor installieren und Sie dem anderen Bootmanager als startbar melden.

LILO-Konfiguration

Als flexibler Bootmanager bietet LILO zahlreiche Möglichkeiten, seine Konfiguration den individuellen Erfordernissen anzupassen. Die wichtigsten Optionen und ihre Bedeutung werden im Folgenden erläutert.

Die Konfiguration von LILO wird in der Datei '/etc/lilo.conf' eingetragen. Vor manuellen Änderungen ist es ratsam, eine Sicherheitskopie herzustellen. Eine Änderung wird erst wirksam, indem Sie LILO mit der neuesten Fassung der Konfigurationsdatei neu installieren.

Der Aufbau der Datei lilo.conf

Die Datei '/etc/lilo.conf' beginnt mit einem globalen Abschnitt (Flagge-Vereinigtes Koenigreich.png

 
 (''global options section'') mit allgemeinen Einstellungen, gefolgt von einem oder mehreren System-Abschnitten 
 (''image sections'') für die einzelnen Betriebssysteme, die LILO starten soll.  
 Ein neuer Systemabschnitt wird jeweils durch eine Zeile mit der Option (''image'') oder (''other'') eingeleitet.
 

Die Reihenfolge der einzelnen Betriebssysteme in der Datei 'lilo.conf' ist nur insofern von Bedeutung, als das zuerst in der Liste aufgeführte System automatisch gebootet wird, wenn keine Benutzereingabe erfolgt - gegebenenfalls nach Ablauf einer vorkonfigurierten Wartezeit.

Die folgende 'lilo.conf' Datei zeigt eine Beispielkonfiguration auf einem Rechner mit Linux und Windows. Beim Booten sollen zur Auswahl stehen:

  • Ein neuer Kernel (/boot/vmlinuz)
  • Ein Linux-Kernel als Fallback (/boot/vmlinuz.shipped)
  • Windows auf /dev/sda1
  • Das Speichertest-Programm Memtest86
 ### LILO global section
 boot    = /dev/sda           # LILO installation target: MBR
 backup  = /boot/MBR.sda.990428  # backup file for the old MBR
                                 # 1999-04-28
 vga     = normal             # normal text mode (80x25 chars)
 read-only
 menu-scheme = Wg:kw:Wg:Wg
 lba32                        # Use BIOS to ignore
                              # 1024 cylinder limit
 prompt
 password = q99iwr4           # LILO password (example)
 timeout = 80                 # Wait at prompt for 8 s before
                              # default is booted
 message = /boot/message      # LILO's greeting

 ### LILO Linux section (default)
   image  = /boot/vmlinuz     # Default
   label  = linux
   root   = /dev/sda7         # Root partition for the kernel
   initrd = /boot/initrd

 ### LILO Linux section (fallback)
   image  = /boot/vmlinuz.shipped
   label  = Failsafe
   root   = /dev/sda7
   initrd = /boot/initrd.suse
   optional

 ### LILO other system section (Windows)
   other  = /dev/sda1         # Windows partition
   label  = windows

 ### LILO Memory Test
   image  = /boot/memtest.bin
   label  = memtest86
 

In der Datei /etc/lilo.conf ist alles von einem # bis zum Zeilenende Kommentar. Er wird ebenso wie Zwischenraum von LILO ignoriert und kann zur Verbesserung der Lesbarkeit verwendet werden. Im Folgenden werden die einzelnen Einträge beschrieben:

  • Globaler Abschnitt (Parameterteil)
    • boot=bootdevice
      Device, auf dessen erstem Sektor der LILO-Bootsektor installiert werden soll (das Installationsziel). bootdevice kann sein: ein Diskettenlaufwerk (/dev/fd0), eine Partition (z.B. /dev/hdb3), oder eine ganze Platte (z.B. /dev/hda): letzteres bedeutet die Installation im MBR. Voreinstellung: Fehlt diese Angabe, wird LILO auf der gegenwärtigen Linux-Rootpartition installiert.
    • lba32
      Diese Option umgeht die 1024-Zylinder-Grenze von LILO. Dies funktioniert natürlich nur, wenn das BIOS Ihres Rechners dies auch unterstützt.
    • prompt
      Erzwingt das Erscheinen der LILO-Eingabeaufforderung (Prompt). Die Voreinstellung ist: kein Prompt! Empfohlen, sobald LILO mehr als nur ein System starten soll. Zusammen damit sollte auch die timeout-Option gesetzt werden, damit ein automatisches Booten möglich ist, wenn keine Eingabe erfolgt.
    • timeout=zehntelsekunden
      Setzt eine Auszeit für die Wahl des zu startenden Systems und ermöglicht dadurch das automatische Booten, wenn nicht rechtzeitig eine Auswahl erfolgt. zehntelsekunden ist dabei die verbleibende Zeit in Zehntel Sekunden für eine Eingabe. Durch Drücken von Shift wird diese Funktion außer Kraft gesetzt und der Rechner wartet auf Ihre Eingabe. Die Voreinstellung ist 80.
    • message = /boot/message
      Bei früheren Linux Versionen handelte es sich bei dieser Datei um eine Textdatei, in die eine nähere Beschreibung der Namen der Betriebssysteme untergebracht werden konnte. Bei neueren SuSE Linux Versionen wird mit Hilfe dieser Datei der Splash-Screen geladen.
  • Linux-Abschnitt
    • image=kernelimage
      Hier muss der Name des zu bootenden Kernel-Images stehen. Dies wird in der Regel /boot/vmlinuz sein.
    • label=<name>
      Innerhalb der /etc/lilo.conf eindeutiger, aber sonst frei wählbarer Name für das System (z.B. Linux). Maximale Länge 15 Zeichen: möglichst nur Buchstaben, Ziffern und Unterstrich - keine Leerzeichen, Sonderzeichen wie deutsche Umlaute u.Ä. Die genauen Regeln für erlaubte Zeichen finden Sie in der originalen LILO-Dokumentation. Die Voreinstellung ist Dateiname des Kernel-Images (zum Beispiel /boot/vmlinuz).
      Unter diesem Namen wählen Sie beim Systemstart das gewünschte Betriebssystem aus.
    • root=<rootdevice>
      Damit gibt LILO dem Kernel die Rootpartition (z.B. /dev/sda2) des Linux-Systems an.
      Wird diese Option weggelassen, nimmt der Kernel die in ihm selbst eingetragene Rootpartition <kernelimage>.
    • append=<parameter>
      Möchten Sie LILO nachträglich weitere Bootoptionen für den Kernel übergeben, fügen Sie der bestehenden lilo.conf eine mit append beginnende Zeile hinzu und geben nach dem = Zeichen die entsprechenden Parameter durch Leerzeichen getrennt und in Anführungsstrichen ein. Nach dieser Änderung muss LILO als Benutzer root mit lilo neu installiert werden, damit beim nächsten Booten Ihre Änderungen übernommen werden.
  • Linux-Abschnitt (Linux - Safe Settings)
    Dieser Abschnitt ist in neueren SuSE Linux Versionen in dieser Form nicht mehr vorhanden. Auch wenn ein eigener Kernel installiert wurde, ist es immer möglich, auf diesen Kernel zurückzugreifen und das System zu starten.
    • optional
      Sollte /boot/vmlinuz.shipped gelöscht werden (nicht empfehlenswert!), wird bei der LILO-Installation dieser Abschnitt ohne Fehlermeldung übergangen.
  • Anderes System
    • other=<partition>
      Mit other werden LILO Startpartitionen anderer Systeme zum Booten bekannt gemacht (z.B. /dev/hda1).
    • label=name
      Wählen Sie hier einen Name für dieses System. Die Voreinstellung - der bloße Device-Name der Partition - ist beim Booten nicht sehr aussagekräftig.
  • Memory Test
    Hier ist nur das Programm zum Testen des Speichers eingetragen.

Im diesem Abschnitt wurden nur die in der Datei /etc/lilo.conf minimal nötigen Einträge besprochen. Weitere nützliche Einstellungen entnehmen Sie bitte der Manual-Page von lilo.conf, die Sie mit dem Befehl man lilo.conf erhalten.

Installation und Deinstallation von LILO

Vergewissern sie sich vor der Installation von LILO auf jeden Fall, dass sie eventuell vorhandene andere Betriebssysteme von Diskette booten können (funktioniert nicht bei Windows XP/2000/NT)! Vor allem fdisk muss zur Verfügung stehen. openSUSE kann gegebenenfalls auch von der Installations-CD bzw. -DVD gebootet werden.

Installation nach Änderung der Konfiguration

Wenn sich an den LILO-Komponenten etwas geändert hat oder wenn sie ihre Konfiguration in /etc/lilo.conf>/tt> modifiziert haben, müssen sie LILO neu installieren. Dies geschieht durch einfachen Aufruf des sog. Map-Installers als Benutzer root:

# /sbin/lilo


LILO legt daraufhin ein Backup des Ziel-(Boot-)Sektors an, schreibt seine "erste Stufe" in diesen Sektor und erzeugt eine neue Map-Datei. LILO meldet nacheinander die installierten Systeme - z.B. im Fall unser obigen Beispielkonfiguration:

Added linux *
Added suse
Added windows
Added memtest86

Nach abgeschlossener Installation kann der Rechner neu gestartet werden (als Benutzer root):

# shutdown -r now


Nachdem das BIOS seinen Systemtest ausgeführt hat, meldet sich LILO in einem grafischen "Outfit". (Bei älteren SuSE Linux Versionen erscheint eine Eingabeaufforderung, an der Sie LILO Parameter für den Kernel übergeben und das gewünschte Bootimage auswählen können. Mit Tab lassen sich die Bezeichnungen der installierten Konfigurationen auflisten.)

Linux-Bootloader entfernen

Um LILO zu deinstallieren, wird der Bootsektor, in dem der Linux-Bootloader installiert worden ist, mit seinem früheren Inhalt überschrieben. Unter openSuSE ist das kein Problem, wenn ein gültiges Backup vorhanden ist. Die Vorgehensweise ist beschrieben im Artikel SDB:Problemlösungen-Bootloader:LILO-Löschen

Ein Backup des Bootsektors wird ungültig, wenn die betreffende Partition ein neues Dateisystem erhalten hat.
Die Partitionstabelle in einem MBR-Backup wird ungültig, wenn die betreffende Festplatte zwischenzeitlich anders partitioniert worden ist.
Solche Backups sind "Zeitbomben": am Besten sofort löschen!

Externe Links