LILO was originally developed by Werner Almesberger, while its current developer is John Coffman.
LILO does not depend on a specific file system, and can boot an operating system (e.g., Linux kernel images) from floppy disks and hard disks. One of up to sixteen different images can be selected at boot time. Various parameters, such as the root device, can be set independently for each kernel. LILO can be placed either in the master boot record (MBR) or the boot sector of a partition. In the latter case something else must be placed in the MBR to load LILO.
At system start, only the BIOS drivers are available for LILO to access hard disks. For this reason, with very old BIOS, the accessible area is limited to cylinders 0 to 1023 of the first two hard disks. For later BIOS, LILO can use 32-bit "logical block addressing" (LBA) to access practically the entire storage of all the harddisks that the BIOS allows access to.
The lilo.conf file is typically located at /etc/lilo.conf. Within lilo.conf there are typically two section types. The first section, which defines the global options, contains parameters which specify boot location attributes. The second section(s) contain parameters associated with the operating system images to be loaded. The section type can be repeated for up to 16 different boot selections.
LILO can write a Master Boot Record on a device:
eg: L 01 01 01, L 07 07 07 etc..
|0x00||Internal Error||This code is generated by the sector read routine of the LILO boot loader whenever an internal inconsistency is detected. This might be caused by corrupt files. Try re-building the map file. Another possible cause for this error are attempts to access cylinders beyond 1024 while using the LINEAR option.|
|0x01||Illegal Command||This shouldn't happen, but if it does, it may indicate an attempt to access a disk which is not supported by the BIOS. Definitely check to see if the disk is seen by the BIOS first (and that the BIOS detail is complete).|
|0x02||Address mark not found||This usually indicates a media problem. Try again several times.|
|0x03||Write-protected disk||This should only occur on write operations.|
|0x04||Sector not found||This typically indicates a geometry mismatch. If you're booting a raw-written disk image, verify whether it was created for disks with the same geometry as the one you're using. If you're booting from a SCSI disk or a large IDE disk, you should check, whether LILO has obtained correct geometry data from the kernel or whether the geometry definition corresponds to the real disk geometry. Removing COMPACT may help too. So may adding LBA32 or LINEAR.|
|0x06||Change line active||This should be a transient error. Try booting a second time.|
|0x07||Invalid initialization||The BIOS failed to properly initialize the disk controller. You should control the BIOS setup parameters. A warm boot might help too. (Boot a rescue disc and rerun LILO.)|
|0x08||DMA overrun||This shouldn't happen. Try booting again.|
|0x09||DMA attempt across 64k boundary||This shouldn't happen, but may indicate a disk geometry mis-match. Try omitting the COMPACT option. You may need to specify the disk geometry yourself.|
|0x0C||Invalid media||This shouldn't happen and might be caused by a media error. Try booting again.|
|0x10||CRC error||A media error has been detected. Try booting several times, running the map installer a second time (to put the map file at some other physical location or to write "good data" over the bad spot), mapping out the bad sectors/tracks and, if all else fails, replacing the media.|
|0x11||ECC correction successful||A read error occurred, but was corrected. LILO does not recognize this condition and aborts the load process anyway. A second load attempt should succeed.|
|0x20||Controller error||This shouldn't happen, then again, none of these errors should happen eh?|
|0x40||Seek failure||This might be a media problem. Try booting again.|
|0x80||Disk timeout||The disk or the drive isn't ready. Either the media is bad or the disk isn't spinning. If you're booting from a floppy, you might not have closed the drive door. Otherwise, trying to boot again might help.|
|0x99||Invalid Second Stage||Mismatch between drive and BIOS geometry, or a bad map file. Some evidence that LINEAR needs to be set on the disk (see LiloNotes)|
|0x9A||Can't Find Second Stage||Check to see if you have the correct device for boot, eg. boot=/dev/hda1 when it should be in the MBR i.e. boot=/dev/hda.|
|0xBB||BIOS error||This shouldn't happen. Try booting again. If the problem persists, removing the COMPACT option or adding/removing LINEAR or LBA32 might help.|