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
almesber@nessie.cs.id.ethz.ch or almesber@bernina.ethz.ch


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
  install.new. 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.

QuickInst
  ... 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
  later.


Q&A
---

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
   tsx-11.mit.edu:/pub/linux/packages/lilo
   sunsite.unc.edu:/pub/Linux/system/Linux-boot/lilo

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, lilo.u.N.ps.z and lilo.t.N.ps.z
    - ready to print HP DeskJet and HP LaserJet data, lilo.u.N.dj.z and
      lilo.t.N.dj.z
   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
   documentation.

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
   FDISK /MBR
   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      almesber@nessie.cs.id.ethz.ch /
 /_IFW_A44__Tel._+41_1_254_7213__________________almesber@bernina.ethz.ch_/