Meet your /boot directory

If you haven't done so, take a look at your boot directory (ls /boot). This directory contains most of the files involved in constructing or running the bootstrap:

boot.b Boot source (boot.b, boot.chain.b, dosmbr.b etc)
message message source (/boot/message)
map lilo's map file (/boot/map)
initrd ramdisk (initrd, xyz.img)
vmlinuz Kernel (vmlinuz, also found in / )


boot.b This file contains all of the binary code written by lilo. This includes the bootstrap that it writes to your boot record, the secondary loader (the majority of the boot code), and as of version 20, the various chain loaders (for the other operating systems) which had previously been separate files (chain.b, anyd.b, etc.)
message The first text you see on startup comes from this file. This takes the form of a boot menu, welcome screen, even the introductory message on an install disk. You don't have to have a message file. If you remove the message= line from lilo.conf, all you will see is the LILO prompt (unless you've removed that, too.)
map lilo records all of the pertinent configuration data (taken from lilo.conf) in this file. You do not need this file to install lilo; but after lilo creates it you must not move or change it.
initrd A ramdisk is a collection of files loaded into and residing in RAM for the purposes of speed or running without using the disk. It is also compressed so that many files can be loaded from a small space (like a floppy). initrd stands for "initial ramdisk" and you can command the kernel to start one when it loads. A "normal" Linux system doesn't require a ramdisk, but yours might use one for some reason. initrd is mainly used for installation, rescue, and special-purpose (everything crammed onto a floppy) disks.
vmlinuz The Linux KERNEL is the heart of Linux and the most important component of your operating system. There are a few places it might be located. Sometimes you can find more than one copy of it. It is commonly found in the root directory, in /boot, and possibly elsewhere. The 'z' signifies that it has been compressed (it automatically expands when it is run). Many kernel images have a nice long name that contains their version number, for example, vmlinuz-2.0.36; You can copy or rename them to reflect other information, such as Kernel-2.0.36-withSound, etc.

Loose Ends

boot.0200 lilo makes a copy of your boot record before it overwrites it as specified in the boot= line. (The file is named according to the "major and minor" device number. 0200 is hda.) lilo will preserve this file, so subsequent use of lilo does not overwrite this file.
lilo.conf This all-important configuration file is not found in /boot but in /etc (in some distributions, in /etc/lilo/). You can specify arguments to lilo on the command line but it is far easier to put them in this config file and use that. Important: lilo.conf is not read during bootup the way the other files in /etc are. It is only read when installing LILO (that is, when using the /sbin/lilo command).
boot= Not a file, but it specifies where lilo will write the primary bootloader; for example, /dev/fd0, /dev/hda, or /dev/hda1. If you leave this line out of lilo.conf it will default to writing LILO to the boot block of your root partition. Not the worst thing in the world, and if you use a boot manager and actually boot from there then it's actually correct; but in most cases you really wanted to write to the MBR. What happens then is that lilo apparently succeeds in installing but then your computer won't boot because it successfully installed to the wrong place!

Back