LILO is one of the first boot loaders for Linux that was capable of booting from the hard disk, dating back to 19924. It's still the market leader and over the years it was updated with new features such as a nice boot menu and the use of the new BIOS functions that eliminate the 1024 cylinder limit. The basic working principle of LILO has stayed the same. This means that most work is done by the installer and not by the boot time code. LILO is the only boot loader that supports booting from a RAID system.
All Linux distributions already have LILO installed, but not necessarily the latest version. In this example we will download the latest version of LILO. At the time of writing, the latest version of LILO was 22.3.1, Unpack the source tarball and make. This is easy as long as you have a sufficiently recent version of bin86 installed. The file README.common.problems tells you where to get it. We won't install LILO for now, but run it from the source directory where it was built.
If you have read the ``Getting Linux into Small Machines'' article, the following may be familiar to you, but we will do a few things differently:
First create the file lilo-initrd.conf with the following contents:
prompt timeout=100 boot=/dev/fd0u1722 map=/mnt/boot/map disk=/dev/fd0u1722 geometric install=/mnt/boot/boot.b image=/mnt/boot/zImage label=linux root=/dev/ram initrd=/mnt/boot/root.img.gz image=/mnt/boot/zImage label=noram root=/dev/fd0u1722
Note the following:
Finally type the following commands to format the diskette, make a minix file system on it, copy the files and run LILO:
fdformat /dev/fd0u1722 mkfs.minix /dev/fd0u1722 mount /dev/fd0u1722 /mnt mkdir /mnt/boot cp zImage /mnt/boot cp root.img.gz /mnt/boot cp lilo-22.3.1/boot-menu.b /mnt/boot/boot.b lilo-22.3.1/lilo -C lilo-initrd.conf umount /mntInstead of boot-menu.b there is still the old-style boot-text.b, giving exactly the same interface as old LILO versions and boot-bmp.b to show a bitmapped screen. You can try all three of course.