What it is and What it is not..
LILO a bootloader for Linux /x86 and other PC -OS.
Uses hard-drive or floppy to load.
Can boot Linux as well as DOS,Windows (all versions),
OS/2, and the BSD variants
Does not understand filesystem.
Code and Image stored in raw disk offset
Uses BIOS routines to load.
Configuration settings stored in lilo.conf
First section has global options(parameters for boot location
The second section(s) contain parameters associated
with the operating system images to be loaded.
Upto 16 boot selections.
Run /sbin/lilo after
editing for the changes to
Kernel must live in some place that is accessible by the
Program builds the tables that list which sectors are
used by the files used to load the operating system. As a
consequence, all of these files must live in a partition
that can be accessed by the BIOS.
Lilo has to be reinstalled every time a change is made.
The 'boot=' directive in /etc/lilo.conf tells Lilo where it should place
its primary boot loader. In general, you can either specify the
master boot record (/dev/hda) or the root partition of your Linux
installation (is usually is /dev/hda1 or /dev/hda2)
Install lilo on root partition if another O.S is already installed. In
this case, you must mark the partition as ``bootable'' using the
``a'' command of fdisk or the ``b'' command of cfdisk.
"linear" keyword in /etc/lilo.conf can help in dealing with geometry
problems. The keyword instructs Lilo to use linear sector
addresses instead of sector/head/cylinder tuples. Conversion
to 3D addresses is delayed to run-time, therefore making the
setup more immune to geometry problems.
At boot-time LILO waits for specified time.
Choose an operating system image to boot by typing its
label.(Press TAB for available labels).
Options can be
linux single(for recovery options)
Command line arguments also supported.
root=: you can tell the Linux kernel to mount as root a different
partition than the one appearing in /lilo.conf.
init=: version 1.3.43 and newer of the Linux kernel can
execute another command instead of /sbin/init, as specified
on the command line.(Example:you can access the bare system
by specifying init=/bin/sh)
A number: by specifying a number on the kernel command
line, you instruct init to enter a specific run-level (the default is
usually 3 or 2).
The number of boot options (or something) is limited
(only 19 or so). This plays a role if you always only
add new kernels, as is advisable (cannot result in a
The label size is limited. If you have many boot
options, you want descriptive names.
It loads the kernel quite slowly (like, tens of
It is not aware of filesystem thus images have to
pointed with exact physical address.
The most common BIOS restrictions that affect LILO are the
limitation to two hard disks and the inability to access more
than 1024 cylinders per disk. LILO can detect both conditions,
but in order to work around the underlying problems, manual
intervention is necessary.
LILO depends on the BIOS to load the following items:
/boot/map (created when running /sbin/lilo) a
all kernels the boot sectors of all other operating systems it
boots the startup message, if one has been defined