Non Bootstrapping Kernels, The Wonders Of LILO
(and some of the other great moments of fun that you can have with your MBR)


To explain, Linux is not a self boot striping kernel, i.e it cant load itself from disk and start running, another program has to do that bit, (otherwise your MBR would be very large, and dual booting would be impossible). The program that loads the Linux kernel image from disk, and decompresses it into memory and then runs it is called LILO (or Linux Loader), there many others like lilo but this one is mine.




"a boring bootloader",

"its a buffy bootloader !!"


Ok, that all looks very nice, but how is it done ?,.. well quite simple really,.. note that im using (at the time of writeing) mdk 8.2 as my distro and so some things may be a little diffrent for you,.. but you should still be able to work it out.

First you need a recent'ish version of lilo (www.rpmdinf.net is your friend here), i've used lilo 21.7 - 22.2, and there ok,.. and then you need a suitable image (such as a buffy one), it needs to be a normal rle encoded bmp, in 16 colors (any pallete is ok), gimp is your friend here.

You need to modify your /etc/lilo.conf to replace the existing line install=... (should be something like install=/boot/boot-menu.b) to (on my mdk 8.2 system install=/boot/lilo-bmp/boot.b), on debian 3.0 its more like (install=/boot/boot-bmp.b),.either way you want the bmp loader boot,.

Here are the imporant parts that you need to modify within your lilo.conf file,.. after you have added these do a 'lilo -v' as root to write it to disk.

# matthews buffy boot
install=/boot/lilo-bmp/boot.b
bitmap=/boot/lilobuffy.bmp
bmp-colors=1,,0,2,,0
bmp-table=120p,173p,1,15,17
bmp-timer=254p,432p,1,0,0


My 'lilo.conf' file, in full
boot=/dev/hda
map=/boot/map
#install=/boot/boot.b
#vga=normal

#default=2408-26
default=2418-8

keytable=/boot/uk.klt
lba32
prompt
timeout=100

# matthews buffy boot
install=/boot/lilo-bmp/boot.b
bitmap=/boot/lilobuffy.bmp
bmp-colors=1,,0,2,,0
bmp-table=120p,173p,1,15,17
bmp-timer=254p,432p,1,0,0

#message=/boot/message
#menu-scheme=wb:bw:wb:bw

image=/boot/vmlinuz-2.2
        label=failsafe-2.2
        root=/dev/hda6
        initrd=/boot/initrd-2.2.img
        append=" devfs=mount failsafe"
        read-only

 other=/dev/hda1
        label=dos
        table=/dev/hda

image=/boot/vmlinuz-2.4.8-26mdk
        label=failsafe-2.4
        root=/dev/hda6
        read-only
        optional
        vga=normal
        append=" devfs=mount failsafe"
        initrd=/boot/initrd-2.4.8-26mdk.img

image=/boot/vmlinuz-2.4.18-8mdk
        label=2418-8
        root=/dev/hda6
        read-only
        optional
        vga=normal
        append=" devfs=mount"
        initrd=/boot/initrd-2.4.18-8mdk.img

FIN