Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.

LILO FAQ - Version 0

1 view
Skip to first unread message

Werner Almesberger

May 30, 1993, 4:12:58 PM5/30/93
LILO - Frequently Asked Questions Version 0 29-MAY-1993

Everybody is telling different tales about how LILO should be installed,
many people are experiencing weird problems, others are suggesting quite
drastic measures to correct subtle configuration errors and nobody is
reading the documentation anyway ...

... so it's FAQ time again ! This FAQ consists of two parts: Part one
contains a few remarks about common sources of confusion. Part two contains
questions and answers.

Please send corrections, comments, suggestions, etc. about this FAQ to or

General remarks

Don't try installing LILO by typing commands like
/etc/lilo/lilo -i /etc/lilo/boot.b /vmlinux
First, this doesn't work with version 0.10 and above. Second, you will
have to refresh the installation whenever the kernel or any part of LILO
is changed. It is therefore advisable to store the configuration data in
a file. (Typically /etc/lilo/config)

/etc/lilo/install vs. /etc/lilo/config
Versions before 0.7 did expect all settings, kernel names, etc. on the
command line. Because such command lines usually became complicated and
hard to remember, everything was stored in /etc/lilo/install. This
script was run whenever the installation had to be refreshed. Version
0.7 introduced a more elegant configuration method: the configuration
file /etc/lilo/config. When using /etc/lilo/config, /etc/lilo/install
only contained the invocation of /etc/lilo/lilo with the necessary
option. That "new" /etc/lilo/install also appeared under the name Starting with LILO 0.10, only the new-style configuration
method is supported. Because of that, no additional command-line options
are needed anymore and /etc/lilo/install can even be replaced by a link
to /etc/lilo/lilo.

/etc/lilo/boot.NNNN installed by your favourite distribution
Some Linux distributions install some boot.NNNN files in /etc/lilo.
This is dangerous, because a) you may accidentially use those files
and b) it prevents LILO from generating the correct boot.NNNN files.
(boot.NNNN are backup copies of boot sectors.) Just delete any alien
boot.NNNN files from your system before using LILO.

... is a shell script that helps you installing and configuring LILO.
It doesn't use every single feature of LILO and does not support some
exotic configurations, but it's usually a good way to get started. You
can also use it to create a sample /etc/lilo/config and modify that


Q: What is LILO ?
A: LILO is a generic boot loader for Linux. "generic" means that it is
able to boot kernels from all Linux file systems. It can also act as
a boot manager for non-Linux operating systems.

Q: Which version of LILO should I use ?
A: Versions before 0.7 are obsolete and should be avoided. Versions since
0.8 come with a quick installation script that simplifies "standard"
installations. The current version is 0.10.

Q: How do I get LILO ?
A: LILO can be found in

Q: What about documentation ?
A: LILO documentation exists in the following formats:
- LaTeX source, contained in lilo.N.tar.z
- plain-ASCII README, contained in lilo.N.tar.z
- ready to print PostScript, and
- ready to print HP DeskJet and HP LaserJet data, and
N is the respective version number. The lilo.u* files are the user's
manual, lilo.t* are the technical overview.
Note: the README does not contain a few introductory sections of the
LaTeX manual.

Q: I don't want to read that many pages only to use a boot loader.
A: Then you should try to use QuickInst. If your system configuration is
too complex for QuickInst or if you run into unexpected problems and
this FAQ doesn't help, I'm afraid you can't avoid reading the

Q: I feel uncertain about that booting stuff. What should I read ?
A: The first section of the LaTeX documentation of LILO contains an
introduction of how PC disks are partitioned and how operating systems
are booted. The following sections describe boot concepts and show them
on a few examples. Those sections are not included in the plain-ASCII
README, because they contain complex drawings.

Q: Can I use LILO as a boot manager ?
A: Yes. It is known to work with PC/MS-DOS and OS/2. It probably also works
with many other operating systems.

Q: How do I boot other operating systems from LILO ?
A: You simply add sections to /etc/lilo/config, describing the location of
the operating system, its name and the partition table, e.g.

other = /dev/hda1 # partition on which the operating system is located
label = dos # name by which you want it to be identified
table = /dev/hda # partition table of that disk

Then re-run /etc/lilo/install

Q: How do I set the default kernel/operating system ?
A: The first kernel or operating system defined in /etc/lilo/config is
booted by default. Don't forget to re-run /etc/lilo/install after
reordering the sections.

Q: LILO doesn't boot my SCO/ISC/etc. What can I do ?
A: Verify that your configuration is correct. Re-run /etc/lilo/install.
If all else fails, try to use a different boot manager, e.g. bootactv.

Q: Where should I install LILO's boot sector ?
A: If you have a Linux file system partition on your first hard disk, you
should install the LILO boot sector there and make that partition
active (or use some boot manager). Otherwise, you can install the LILO
boot sector as your MBR (e.g. on /dev/hda) or possibly on an extended
partition (see the LaTeX documentation for details).

Q: How do I uninstall LILO ?
A: If you've installed LILO as your MBR (/dev/hda or /dev/sda) and if
your previous MBR was the "standard" DOS MBR, you can remove LILO from
the MBR by simply booting MS-DOS 5.0 and running the command
Otherwise, if you haven't installed LILO as your MBR, you can simply
disable it by making a different partition active. The active partition
can be changed with MS-DOS' FDISK, Linux fdisk, LILO's activate, etc.
Finally, if you've installed LILO as your MBR, but you're using a
special MBR, you should look for a file /etc/lilo/boot.0300 (IDE) or
/etc/lilo/boot.0800 (SCSI). See the next item for a description of how
to use that file.

Q: I can't access my PC/MS-DOS partition after installing LILO. Am I lost ?
A: Not necessarily. You've probably only overwritten the boot sector of
your MS-DOS partition. That boot sector contains vital information about
the file system structure. (Note: unlike MS-DOS, many other file systems
do not use the first sector and LILO can therefore store its boot sector
there.) Whenever LILO overwrites a boot sector for the first time, it
makes a backup copy in /etc/lilo, named boot.NNNN. The number
corresponds to the number of the respective device, e.g. hda is 0300,
hda1 is 0301, sda is 0800, sda1 is 0801, etc. You can restore the old
boot sector with a command like
dd if=/etc/lilo/boot.NNNN of=/dev/XXXX bs=446 count=1
E.g. dd if=/etc/lilo/boot.0302 of=/dev/hda2 bs=446 count=1

WARNING: check the date of the boot.NNNN file. Sometimes, distributions
that contain LILO come with boot.NNNN files from the system on
which the distribution was created. Those files should be
deleted before using LILO.

Q: Why does LILO stop with "Error 0x04" when booting from a floppy ?
A: Your BIOS may suffer from a bug that generates errors when trying to
read more than one sector with a single call. Unfortunately, that's
what LILO does in order to improve load time. Removing the option
COMPACT from /etc/lilo/config works around that.

Q: LILO used to work, but since I've updated LILO/compiled a new kernel/
installed a new version of SLS, LILO only prints "LI".
A: Be sure to re-run /etc/lilo/install whenever the kernel or any part of
LILO is changed. Running /etc/lilo/install too often doesn't hurt, but
forgetting to run it does. By the way, the kernel Makefile has two
targets that automatically run /etc/lilo/install after building a new
kernel: "lilo" builds /vmlinux (not compressed) and "zlilo" builds
/vmlinuz (compressed).

Q: LILO only prints "LI" on my SCSI system.
A: In prehistorical times, SCSI users had to describe the geometry of their
disks in a file called /etc/lilo/disktab. Recent kernels are able to
provide that information for most SCSI adapters. Hence, /etc/lilo/disktab
is not necessary and may only introduce errors. If you have a disktab
with non-comment entries, try running /etc/lilo/install with the option
-f /dev/null If LILO needs a disktab, it will issue an error message.

Q: My kernel boots but dies with "VFS: Unable to mount root".
A: Your kernel is not properly configured. You can either run rdev on it
to set the root device or put the corresponding ROOT=/dev/xxxx entry
into /etc/lilo/config and re-run /etc/lilo/install

Q: What does "Device 0xNNNN: Invalid partition table, Nth entry" mean ?
A: Each partition entry contains linear (Nth sector on the disk) and 3D
(sector/head/cylinder) addresses. Both types of addresses must
correspond. In your partition table, they don't. This is probably
caused by a buggy fdisk using non-cylinder-aligned addresses and some
other program later re-aligning one part of the address. LILO can try
to fix the partition table. The exact procedure depends on the version
of LILO. Please check the documentation. The cleanest (but also most
painful) solution to the problem is to re-partition the disk with a
version of fdisk that obeys alignment rules.

Q: Do LILO and OS/2 Boot Manager get along well ?
A: There have been reports of success and failure with configurations
involving OS/2 BM. The easiest solution is probably to avoid OS/2 BM
and boot OS/2 directly by LILO.
/ Werner Almesberger, ETH Zuerich, CH /

0 new messages