Intro

LILO ("LInux LOader") ist der wohl meistbenutzte Linux-BootManager.

http://www.muc.de/~hm/MPorty/images/lilo.jpg

LILO ist vom Verständnis her recht einfach, erfordert aber, dass man nach Kernel-Änderungen und Änderungen an der lilo.conf nicht vergisst, das Kommando lilo abzusetzen, so dass LILOs "Map" aktualisiert wird (damit findet der sehr einfache LILO-Bootcode den Kernel auf den richtigen Sektoren der Festplatte, denn LILO kennt keine Filesysteme, sondern nur Sektoren).

LILO kann übrigens mehr, als vielleicht mancher erwarten/meinen würde - einiges erschließt sich einem aber nur, wenn man die Dokumentation liest, die sich i.d.R. unter /usr/share/doc/lilo/ befindet.

Siehe auch LILO/sichern, sowie LILO/undNT (Win2000 und WinXP verhält sich auch wie NT).

Homepage: http://brun.dyndns.org/pub/linux/lilo/ ;)

Eine mögliche Alternative zu LILO ist GRUB

Micro-Howto

Standard lilo.conf für Debian Woody, Kernel 2.4.18 mit initrd

ToDo

Hab Linux installiert und Windows bootet nicht mehr, was nun?

Einfach folgendes in die lilo.conf rein (am Ende):

# LILO-Eintrag für auf C: einer EIDE-Platte installiertes Windows:
other=/dev/hda1
  table=/dev/hda
  label=windows
# bei SCSI sinngemäß eben sda(1) statt hda(1)

Nach der Änderung natürlich einmal lilo laufen lassen.

Standard-Boot-Eintrag

Wenn man verschiedene Betriebssysteme am Laufen hat und eines als Standard im LILO festlegen will, kann man es einfach als ersten Eintrag machen - das ist die Standardwahl und wird automatisch gestartet, wenn man nichts anderes während der Wartezeit aussucht.

Config für RAID1-Systeme

Für RAID1 mit LinuxSoftwareRAID benutzt man am besten einen LILO neuer als 22.2, denn dieser unterstützt diesen Modus besonders, indem er /boot auf dem RAID-Device selbst hat und zusätzlich sich auch noch per "raid-extra-boot=" in die MBR beider Platten installieren kann.

Mit RAID5 funktioniert diese Technik nicht, aber man kann ja das Verzeichnis /boot und die LILO-Daten auf ein RAID1 legen und den Rest dann auf RAID5.

Real-Life-Beispiel-Config eines RAID1-Systems (mit devfs, geht aber auch sinngemäß ohne):

lba32
boot=/dev/md/7

# making a small simple lilo and an old ugly bios a very happy pair X-)
disk=/dev/md/0
 bios=0x80
disk=/dev/md/1
 bios=0x80
disk=/dev/md/2
 bios=0x80
disk=/dev/md/3
 bios=0x80
disk=/dev/md/4
 bios=0x80
disk=/dev/md/5
 bios=0x80
disk=/dev/md/6
 bios=0x80
disk=/dev/md/7
 bios=0x80

disk=/dev/ide/host2/bus0/target0/lun0/disc
 bios=0x80
disk=/dev/ide/host2/bus1/target0/lun0/disc
 bios=0x81

# extra bootsectors for raid boot
raid-extra-boot=/dev/ide/host2/bus0/target0/lun0/disc,/dev/ide/host2/bus1/target0/lun0/disc

install=/boot/boot.b
map=/boot/map
prompt
timeout=600
vga=normal

# serial=<portno>,<bps>
serial=0,115200

image=/boot/vmlinuz
        root=/dev/md/7
        label=resc.ser
        read-only

image=/boot/vmlinuz
        root=/dev/md/7
        label=resc.vga
        read-only
        append="mem=nopentium"

image=/boot/vmlinuz.old
        root=/dev/md/7
        label=old.ser
        read-only
        append="mem=nopentium console=ttyS0,115200"

image=/boot/vmlinuz.old
        root=/dev/md/7
        label=old.vga
        read-only
        append="mem=nopentium"

image=/boot/memtest.bin.28
        label=memtest86
        read-only

other=/dev/md/0
        label=productive

other=/dev/md/3
        label=backup

Einfache Beispielkonfiguration einer lilo.conf mit RAID (RAID1 für /boot (md0) beliebige RAID-Level für andere Partitionen)

boot=/dev/md0
raid-extra-boot=/dev/hda,/dev/hdb,/dev/hdc,/dev/hdd
prompt
map = /boot/System.map
timeout = 30
delay = 30
default=2.4.6-rc2

image=/boot/kernel-2.6.4-rc2
        label=2.6.4-rc2
        read-only
        root=/dev/md1

Bootoptionen

Lilo können spezielle Bootoptionen beim Start entweder manuell durch drücken von Esc, während das Auswahlmenue angezeigt wird und anschließender Texteingabe (so z.B. linux noapic) oder automatisch bei jedem Neustart mittels eines Eintrags in die "lilo.conf". Hier wird die Bootoption in die Zeile "append" eingefügt.

Bootoptionen:

noapic: dadurch wird das Interrupt-Sharing ausgeschaltet und alles laeuft problemlos. Freilich hast Du dann die traditionelle 15-Interrupt-Beschraenkung. Des weiteren will man das auf Servern mit extrem viel I/O nicht tun, da hier beide CPU's die Interrupts abfruehstuecken sollten.

Probleme

Es können Bootfehler wie 0x04 , CRC Fehler beim Kernel auspacken oder Hänger ohne Meldung entstehen. Teilweise immer der gleiche, oder abwechselnd. Ich vermute das Lilo zum Teil bei einigen Boards Problem hat mit der Memory Verwaltung, resp. den Interrupts.

Dann empfiehlt sich doch ein Blick nach GRUB - Bootmanager zu werfen, der kommt damit klar.

LILO (zuletzt geändert am 2007-12-23 22:48:14 durch localhost)