LILO(8)

NAME
lilo - install boot loader

SYNOPSIS
Main function:

/sbin/lilo - install boot loader

Auxiliary uses:

/sbin/lilo -q - query map
/sbin/lilo -T - tell more about specified topic
/sbin/lilo -R - set default command line for next reboot
/sbin/lilo -A - activate/show active partition
/sbin/lilo -E - edit header or update a bitmap file
/sbin/lilo -M - write a Master Boot Record on a device
/sbin/lilo -I - inquire path name of current kernel
/sbin/lilo {-u|-U} - uninstall LILO boot loader

DESCRIPTION

lilo installs a boot loader that will be activated next time you boot. It has lots of options.

-A master-device [ N ]
    Inquire of active partition on device master-device; e.g., "/dev/hda". With a number in the range 1 to 4, activate the specified partition on the master device.

-b bootdev
    Specify the boot device; i.e., where the boot loader will be installed. "-b /dev/hda" specifies the Master Boot Record; "-b /dev/sdb5" specifies the first extended partition on the second SCSI disk.

-B bitmap-file
    Specify a bitmap file for the boot-time graphics screen.

-c  Enable map compaction. This will merge read requests from adjacent sectors. Speeds up the booting (especially from floppy).

-C config-file
    lilo reads its instructions about what files to map from the specified configuration file. This option overrides the use of the default config file, /etc/lilo.conf.

-d delay
    Specifies the delay time in tenths of a second (20 = 2 sec) before automatically booting the first image. Gives you time to interrupt the automatic boot process with Shift, Alt, Ctrl, ScrollLock, or CapsLock. If interrupted, the `boot:' prompt is displayed. This switch is overriden by the appearance of prompt in the config-file.

-D label
    Use the kernel with the given label, instead of the first one in the list, as the default kernel to boot.

-E filename.ext
    If .ext is .bmp, then take the file to be a bitmap graphic file for use in the "bitmap=" configuration file directive. Enter an interactive editor to create or update the color/placement information in the bitmap file LILO header. If .ext is .dat, then take the file to be a configuration file which specifies bitmap graphic parameters, which are transferred into the LILO header in the bitmap file of the same name.

-f disk-tab
    Specify disk geometry parameter file. (The default is /etc/disktab.)

-F  Override boot sector check for filesystems (e.g., swap, XFS, ...) which might be destroyed by the installation of the LILO boot sector on the first sector of the partition. These filesystems use the first sector as a superblock. Compare with "-P ignore", which bypasses certain partition table checks.

-g  Generate cylinder/head/sector (geometric) disk addresses. Limited to cylinders up to 1023. Forces compatibility with older versions of LILO.

-i boot-loader
    Specify a file to be used as the new boot loader. (The default is /boot/boot.b.)

-I label
    The label of the running kernel can be found in the environment variable BOOT_IMAGE after startup, or in the pseudo-file `/proc/cmdline'. This command will print path name of the corresponding kernel file, keytable file, or of any initial ramdisk file ("i", "k", or "r" option).

-l  Generate 24-bit linear sector addresses instead of cylinder/head/sector addresses.

-L  Generate 32-bit Logical Block Addresses instead of cylinder/head/sector addresses, allowing access to all partitions on disks with more than 1024 cylinders.

-m map-file
    Use specified map file instead of the default.

-M master-device [ mbr-file ]
    Install a Master Boot Record on the device specified as master-device. The new MBR is copied by default from "mbr.b", which is built into /sbin/lilo (version 22.3), unless a specific file is named as the second argument. The primary partition table on master-device is undistrubed. If no device serial number is present, then generate one and write it to the MBR.

-p  Require interactive entry of all passwords specified as "" in the configuration file.

-P {fix|ignore}
    Fix or ignore `corrupt' partition tables, i.e., partition tables with linear and cylinder/head/sector addresses that do not correspond. Always try -P ignore first, as -P fix will re-write the partition table, possibly destroying all partitions on the disk. -P ignore is also used to bypass the partition table check for partition types within the partition table which might not allow the installation of a LILO boot sector. Compare with the "-F" flag, which overrides the check of the actual boot sector.

-q  List the currently mapped files. lilo maintains a file, by default /boot/map, containing the name and location of the kernel(s) to boot. This option will list the names therein. Use with -v for more detailed information about the installed boot loader.

-r root-directory
    Before doing anything else, do a chroot to the indicated directory. The new root directory must contain a /dev directory, and may need a /boot directory. It may also need an /etc/lilo.conf file. Used by the mkbootdisk shell script for creating a bootable floppy.

-R command line
    This option sets the default command for the boot loader the next time it executes. The boot loader will then erase this line: this is a once-only command. It is typically used in reboot scripts, just before calling `shutdown -r'. Used without any arguments, it will cancel a lock-ed or fallback command line.

-s save-file
    When lilo overwrites the boot sector, it preserves the old contents in a file, by default /boot/boot.NNNN where NNNN depends on the device. This option specifies an alternate save file for the boot sector. (Or, together with the -u option, specifies from where to restore the boot sector.)

-S save-file
    Normally, lilo will not overwrite an existing save file. This options says that overwriting is allowed.

-t  Test only. Do not really write a new boot sector or map file. Use together with -v to find out what lilo is about to do.

-T option
    Print out system information, some of it extracted from the system bios. This is more convenient than booting the LILO diagnostic floppy on problem systems. option may be any one of the following:

       help  - print a list of available diagnostics
       ChRul - list the partition types subject to
               Change-Rules
       EBDA  - list Extended BIOS Data Area information
       geom=<drive> list drive geometry for bios drive;
               e.g., geom=0x80
       geom  - list drive geometry for all drives
       table=<drive> list the primary partition table;
               e.g., table=/dev/sda
       video - list graphic modes available to boot
               loader

-u [device-name]
    Uninstall lilo by copying the saved boot sector back. The '-s' and '-C' switches may be used with this option. The device-name is optional. A time-stamp is checked.

-U [device-name]
    Idem, but do not check the time-stamp.

-v  Increase verbosity. Giving one to five -v options will make lilo more verbose, or use, -v n (n=1..5) to set verbosity level 'n'.

-V  Print version number.

-w  Suppress warning messages.

-x option
    For RAID installations only. The option may be any of the keywords none, auto, mbr-only, or a comma separated list of additional boot devices (no spaces allowed in the list).

-X  Reserved for LILO internal use. May produce different output for different LILO versions. The line beginning "CFLAGS=" will contain the compiler options used to generate this version of LILO.

-z  When used with the -M switch, clears the device serial number. Usually used in the following sequence to generate a new device serial number:
         lilo -z -M /dev/hda
         lilo -M /dev/hda

The above command line options correspond to the key words in the config file indicated below.

    -b bootdev | boot=bootdev
    -B file.bmp | bitmap=file.bmp
    -c | compact
    -d dsec | delay=dsec
    -D label | default=label
    -i boot-loader | install=boot-loader
    -f file | disktab=file
    -g | geometric
    -l | linear
    -L | lba32
    -m mapfile | map=mapfile
    -P fix | fix-table
    -P ignore | ignore-table
    -s file | backup=file
    -S file | force-backup=file
    -v [N] | verbose=N
    -w | nowarn
    -x option | raid-extra-boot=option

BOOT OPTIONS
The options described here may be specified at on the command line when a kernel image is booted. These options are processed by LILO, and are removed from the command line passed to the kernel, unless otherwise noted.

lock
    Locks the command line, as though 'lock' had been specified in 'lilo.conf.'

mem=###[,K,M]
    Specifies the maximum memory in the system in bytes, kilobytes, or megabytes. This option is not removed from the command line, and is always passed to the kernel.

nobd
    Suppresses collection of BIOS data. This option is reserved for use with non-IBM-compliant BIOS's which hang with the lines:

         Loading...............
         BIOS data check

vga=[ASK,EXT,EXTENDED,NORMAL]
    Allows overriding the default video mode upon kernel startup.

BOOT ERRORS
The boot process takes place in two stages. The first stage loader is a single sector, and is loaded by the BIOS or by the loader in the MBR. It loads the multi-sector second stage loader, but is very space limited. When the first stage loader gets control, it types the letter "L"; when it is ready to transfer control to the second stage loader it types the letter "I". If any error occurs, like a disk read error, it will put out a hexadecimil error code, and then it will re-try the operation. All hex error codes are BIOS return values, except for the lilo-generated 40, 99 and 9A. A partial list of error codes follows:

    00 no error
    01 invalid disk command
    0A bad sector flag
    0B bad track flag
    20 controller failure
    40 seek failure (BIOS)
    40 cylinder>1023 (LILO)
    99 invalid second stage index sector (LILO)
    9A no second stage loader signature (LILO)
    AA drive not ready
    FF sense operation failed

Error code 40 is generated by the BIOS, or by LILO during the conversion of a linear (24-bit) disk address to a geometric (C:H:S) address. On older systems which do not support lba32 (32-bit) addressing, this error may also be generated. Errors 99 and 9A usually mean the map file (-m or map=) is not readable, likely because LILO was not re-run after some system change, or there is a geometry mis-match between what LILO used (lilo -v3 to display) and what is actually being used by the BIOS (one of the lilo diagnostic disks, available in the source distribution, may be needed to diagnose this problem). When the second stage loader has received control from the first stage, it prints the letter "L", and when it has initialized itself, including verifying the "Descriptor Table" - the list of kernels/others to boot - it will print the letter "O", to form the full word "LILO", in uppercase. All second stage loader error messages are English text, and try to pinpoint, more or less successfully, the point of failure.

INCOMPATIBILITIES
lilo is known to have problems with the reiserfs introduced with the 2.2.x kernels, unless the file system is mounted with the 'notail' option. This incompatibilty has been resolved with reiserfs 3.6.18 and lilo 21.6.

Beginning with version 22.0, RAID installations write the boot record to the RAID partition. Conditional writing of MBRs may occur to aid in making the RAID set bootable in a recovery situation, but all default actions may be overridden. Action similar to previous versions is achieved using the `-x mbr-only' switch.

BUGS
Configuration file options `backup' and `force-backup' are not yet correctly implemented for RAID installations. Use of the default boot record backup mechanism seems to work okay, and should be used.

SEE ALSO
fdisk(8), lilo.conf(5), mkrescue(8), mkinitrd(8).

The lilo distribution comes with very extensive documentation. (lilo 21)

AUTHORS
Werner Almesberger <almesber@lrc.epfl.ch> (versions 0 to 21)
John Coffman <johninsd@san.rr.com> (21.2 to present)