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_/