LILO.CONF(5)

NAME
lilo.conf - configuration file for lilo

DESCRIPTION

This file, by default /etc/lilo.conf, is read by the boot loader installer 'lilo' (see lilo(8)).

It might look as follows:

    # lilo.conf
    #
    #  global options:
    boot=/dev/hda
    prompt
    timeout=150
    lba32
    compact
    vga=normal
    root=/dev/hda1
    read-only
    menu-title=" John's Computer "
    #
    #  bootable kernel images:
    image=/boot/zImage-1.5.99
         label=try
    image=/boot/zImage-1.0.9
         label=1.0.9
    image=/tamu/vmlinuz
         label=tamu
         root=/dev/hdb2
         vga=ask
    #
    #  other operating systems:
    other=/dev/hda3
         label=dos
    other=/dev/hdb5
         label=os2
         loader=/boot/os2_d.b
         table=E:

This configuration file specifies that lilo uses the Master Boot Record on /dev/hda. (For a discussion of the various ways to use lilo, and the interaction with other operating systems, see user.tex from the lilo documentation.)

When booting, the boot loader will issue its boot: prompt and wait for you to enter the label of the kernel (and any options) which you wish to boot. At any time you may hit [Tab] to see a list of kernel/other labels. Alternately, if the boot-menu.b boot loader is installed, a menu of boot options will be presented for your selection. The title of this menu is overridden with the menu title specification in this configuration file. If you enter nothing, then the default kernel image, the first mentioned, (/boot/zImage-1.5.99) will be booted after a timeout of 15 seconds (150 deciseconds). There can be up to 16 images mentioned in lilo.conf.

As can be seen above, a configuration file starts with a number of global options (the top 9 lines in the example), followed by descriptions of the options for the various images. An option in an image description will override a global option.

Comment lines may appear anywhere, and begin with the "#" character.

GLOBAL OPTIONS
There are many possible keywords. The description below is almost literally from user.tex (just slightly abbreviated).

backup=<backup-file>
    Copy the original boot sector to backup-file (which may also be a device, e.g. /dev/null) instead of /boot/boot.NNNN.

bitmap=<bitmap-file>
    Specifies use of a 640x480x16 bitmap file as the background on which a boot menu is displayed. May not be used if 'message=' is specified. Requires that 'install=' specify a boot-loader which is capable of displaying the bitmap; i.e., boot-bmp.b. (Version 22.3): Use of this option now implies use of a bitmap-capable boot loader, unless overridden with "install=" (see below).

bmp-colors=<fg>,<bg>,<sh>,<hfg>,<hbg>,<hsh>
    Specifies the decimal values of the colors to be used for the menu display on a 'bitmap=' background. The list consists of 6 entries, 3 for normal text followed by 3 for highlighted text. The order of each triple is: foreground color, background color, shadow color. If background color is not specified, "transparent" is assumed. If shadow color is not specified, then "none" is assumed. The list entries are separated by commas, with no spaces.

bmp-table=<x>,<y>,<ncol>,<nrow>,<xsep>,<spill>
    Specifies the location and layout of the menu table. <x>,<y> specify the starting x- and y-position of the upper left corner of the table in character coordinates: x in [1..80], y in [1..30]. <ncol> is the number of columns in the menu (1..5); and <nrow> is the number of rows (entries) in each column. If more than one column is specified, then <xsep> is the number of character columns between the leftmost characters in each column: (18..40), and <spill> is the number of entries in one column which must be filled before entries spill into the next column. <spill> must be .le. <nrow>. If pixel addressing is used, instead of character addressing, then any of <x>, <y>, or <xsep> may be specified with a 'p' suffix on the decimal value.

bmp-timer=<x>,<y>,<fg>,<bg>,<sh>
    Optional specification of the 'timeout=' countdown timer. <x>,<y> specifies the character (or pixel) coordinate of the location of the timer the same as 'bmp-table=' above; and the color triple specifes the character color attributes the same as 'bmp-colors=' above, with the exception that the background color must be specified. If used to override the timer specification in a bitmap file, then the form 'bmp-timer = none' is acceptable. This will disable the timer display entirely.

boot=<boot-device>
    Sets the name of the device (e.g. a hard disk partition) that contains the boot sector. If this keyword is omitted, the boot sector is read from (and possibly written to) the device that is currently mounted as root. A raid installation is initiated by specifying a RAID1 device as the boot device; e.g., "boot=/dev/md0". Note that LILO version 22.0 and later operate differently from earlier versions with respect to the actual location of the boot records.

change-rules
    Defines boot-time changes to partition type numbers (`hiding').

    change-rules
       reset
       type=DOS12
          normal=1
          hidden=0x11
       type=DOS16_small
          normal=4
          hidden=0x14
       type=DOS16_big
          normal=0x06
          hidden=0x16

    The above excerpt from a configuration file specifies that all default change-rules are removed ("reset"), and the change-rules for three partition types are specified. Without the reset, the three types specified would have been added to the existing default change-rules. Normally, the default rules are sufficient. The strings which define the partition types are used in a change section (see below), with the suffixes "_normal" or "_hidden" appended. See section "Partition type change rules" of user.tex for more details.

compact
    Tries to merge read requests for adjacent sectors into a single read request. This drastically reduces load time and keeps the map smaller. Using `compact' is especially recommended when booting from a floppy disk.

default=<name>
    Uses the specified image as the default boot image. If `default' is omitted, the image appearing first in the configuration file is used.

delay=<tsecs>
    Specifies the number of tenths of a second the boot loader should wait before automatically booting a locked command line, a command line pre-stored by "lilo -R", or the default `image=' or `other='. When `delay' is non-zero, the boot loader will wait for an interrupt for the specified interval. If an interrupt is received, or is already waiting, the boot: prompt will be be issued, and no automatic boot will take place. The setting of CAPS LOCK or SCROLL LOCK, or any of the keys ALT, CTRL, or SHIFT, when held down, are taken as interrupts. This action is modified by specifying `prompt' (see below).

disk=<device-name>
    Defines non-standard parameters for the specified disk. See section "Disk geometry" of user.tex for details. Especially useful is the `bios=' parameter. The BIOS numbers your disks 0x80, 0x81, etc. and it is impossible to decide which Linux disk corresponds to which BIOS disk (since this depends on the BIOS setup, and on the type of BIOS), so if you have an unusual setup you need to state the correspondence between Linux disks and BIOS disks. For example,

           disk=/dev/sda
                bios=0x80
           disk=/dev/hda
                bios=0x81

    would say that your SCSI disk is the first BIOS disk, and your (primary master) IDE disk is the second BIOS disk.

disktab=<disktab-file>
    Specifies the name of the disk parameter table. The map installer looks for /etc/disktab if `disktab' is omitted. The use of disktabs is discouraged.

fix-table
    This allows lilo to adjust 3D addresses in partition tables. Each partition entry contains a 3D (cylinder/head/sector) and a linear address of the first and the last sector of the partition. If a partition is not track-aligned and if certain other operating systems (e.g. PC/MS-DOS or OS/2) are using the same disk, they may change the 3D address. lilo can store its boot sector only on partitions where both address types correspond. lilo re-adjusts incorrect 3D start addresses if `fix-table' is set. WARNING: This does not guarantee that other operating systems may not attempt to reset the address later. It is also possible that this change has other, unexpected side-effects. The correct fix is to re-partition the drive with a program that does align partitions to tracks. Also, with some disks (e.g. some large EIDE disks with address translation enabled), under some circumstances, it may even be unavoidable to have conflicting partition table entries.

force-backup=<backup-file>
    Like `backup', but overwrite an old backup copy if it exists.

geometric
    Force disk addressing which is compatible with older versions of LILO. Geometric addressing uses cylinder/head/sector addresses, and is limited to disk cylinders up to 1023. If inaccessible cylinders are referenced, diagnostics will be issued at boot-install time, rather than boot-time. With a newer BIOS, use of 'lba32' is recommended.

ignore-table
    tells lilo to ignore corrupt partition tables.

install=<boot-loader>
    Install the specified file as the new boot loader. Starting with version 21.5, two boot loaders are available: boot-text.b and boot-menu.b, with boot.b a symbolic link to the latter. Both boot loaders allow the entry of kernel command line options in exactly the same fashion. Both also have full serial line support (see serial= below), although no menu capabilities are available on the serial terminal. The former is available for strict compatibility with previous versions of LILO. If `install' is omitted, /boot/boot.b is used as the default. Beginning with version 22, a third user-interface, boot-bmp.b, is available. This presents a GUI interface, the background for which is selected with "bitmap=". (Version 22.3): The selection of the user interface with "install=" is dependent upon the presence of the substrings "text", "menu", or "bmp" in the parameter to the "install=". The boot loaders selected are no longer files, but are contained within the boot-installer binary /sbin/lilo. If "install=" is omitted, the default boot loader is "menu", unless "bitmap=" is specified (see above), in which case the boot loader "bmp" will be selected.

large-memory
    (Version 22.3): Normally any initial ramdisk (initrd) loaded with a kernel is loaded as high in memory as possible, but never above 15Mb. This is due to a BIOS limitation on older systems. On newer systems, this option enables using memory above 15Mb (up to a kernel imposed limit, around 768Mb) for passing the initrd to the kernel. The presence of this option merely indicates that your system does not have the old BIOS limitation. This switch (or its abscence) is not passed to the kernel, and does not in any way affect the amount of physical memory which it will use. (See the kernel documentation for the kernel command line parameter "mem=" for limiting the memory used by the kernel.)

lba32
    Generate 32-bit Logical Block Addresses instead of cylinder/head/sector addresses. If the BIOS supports packet addressing, then packet calls will be used to access the disk. This allows booting from any partition on disks with more than 1024 cylinders. If the BIOS does not support packet addressing, then 'lba32' addresses are translated to cylinder/head/sector ('geometric'), just as for 'linear'. All floppy disk references are retained in C:H:S form. Use of 'lba32' is recommended on all post-1998 systems. Beginning with LILO version 22, 'lba32' is the default disk addressing scheme.

linear
    Generate 24-bit linear sector addresses instead of cylinder/head/sector (geometric) addresses. Linear addresses are translated at run time to geometric addresses, and are limited to cylinders <= 1023. When using `linear' with large disks, /sbin/lilo may generate references to inaccessible disk cylinders. 'lba32' avoids many of these pitfalls with its use of packet addressing, but requires a recent BIOS (post-1998).

lock
    Enables automatic recording of boot command lines as the defaults for the following boots. This way, lilo "locks" on a choice until it is manually overridden.

mandatory
    The per-image password option `mandatory' (see below) applies to all images.

map=<map-file>
    Specifies the location of the map file. If `map' is omitted, the file /boot/map is used. On machines with a pre-1998 BIOS, the EDD bios extensions which are required to support "lba32" disk sector addressing may not be present. In this case, the boot-loader will fall back automatically to "geometric" addressing; this fall back situation, or the specific use of "geometric" or "linear" addressing, will require the map file to be located within the first 1024 cylinders of the disk drive. This BIOS limitation is not present on post-1998 systems, most of which support the newer EDD disk BIOS calls.

menu-title=<title-string>
    Specifies the title line (up to 37 characters) for the boot menu. This title replaces the default "LILO Boot Menu" title string. If boot-menu.b is not installed as the boot loader (see install= option), then this line has no effect.

menu-scheme=<color-scheme>
    The default color scheme of the boot menu may be overridden on VGA displays using this option. (The color scheme of MDA displays is fixed.) The general color-scheme string is of the form:

         <text>:<highlight>:<border>:<title>

    where each entry is two characters which specify a foreground color and a background color. Only the first entry is required. The default highlight is the reverse of the text color; and the default border and title colors are the text color. Colors are specified using the characters kbgcrmyw, for blacK, Blue, Green, Cyan, Red, Magenta, Yellow, and White: upper case for intense (fg only), lower case for dim. Legal color-scheme strings would be

        menu-scheme=Wm     intense white on magenta
        menu-scheme=wr:bw:wr:Yr    the LILO default
        menu-scheme=Yk:kw    bright yellow on black

    If boot-menu.b is not installed as the boot loader, then this line has no effect.

message=<message-file>
    specifies a file containing a message that is displayed before the boot prompt. No message is displayed while waiting for a shifting key after printing "LILO ". In the message, the FF character ([Ctrl L]) clears the local screen. This is undesirable when the boot-menu.b boot loader is installed. The size of the message file is limited to 65535 bytes. The map file has to be rebuilt if the message file is changed or moved. 'message=' and 'bitmap=' are mutually exclusive.

nowarn
    Disables warnings about possible future dangers.

optional
    The per-image option `optional' (see below) applies to all images.

password=<password>
    The per-image option `password=...' (see below) applies to all images. This option may prevent unattended booting, if the default image is `password=' protected at the default level `mandatory', which is a level higher than `restricted'.

prompt
    Automatic booting (see `delay' above) will not take place unless a locked or pre-stored ("lilo -R") command line is present. Instead, the boot loader will issue the boot: prompt and wait for user input before proceeding (see timeout below). Unattended default image reboots are impossible if `prompt' is set and `timeout' is not, or the default image is password protected at a higher level than `restricted'.

raid-extra-boot=<option>
    This option only has meaning for RAID1 installations. The <option> may be specified as none, auto, mbr-only, or a comma-separated list of devices; e.g., "/dev/hda,/dev/hdc6". Starting with LILO version 22.0, the boot record is normally written to the first sector of the RAID1 device. On PARALLEL raid sets, no other boot records are needed. The default action is auto, meaning, automatically generate auxilary boot records as needed on SKEWED raid sets. none means suppress generation of all auxiliary boot records. mbr-only suppresses generation of boot records on the raid device, and forces compatibility with versions of LILO earlier than version 22.0 by writing boot records to all Master Boot Records (MBRs) of all disks in the raid set. Use of an explicit list of devices, forces writing of auxiliary boot records only on those devices enumerated, in addition to the boot record on the RAID1 device. Since the version 22 RAID1 codes will never automatically write a boot record on the MBR of device 0x80, if such a boot record is desired, this is the way to have it written.

restricted
    The per-image password option `restricted' (see below) applies to all images.

serial=<parameters>
    enables control from a serial line. The specified serial port is initialized and the boot loader is accepting input from it and from the PC's keyboard. Sending a break on the serial line corresponds to pressing a shift key on the console in order to get the boot loader's attention. All boot images should be password-protected if the serial access is less secure than access to the console, e.g. if the line is connected to a modem. The parameter string has the following syntax:

        <port>[,<bps>[<parity>[<bits>]]]

    <port>: the number of the serial port, zero-based. 0 corresponds to COM1 alias /dev/ttyS0, etc. All four ports can be used (if present).

    <bps>: the baud rate of the serial port. The following baud rates are supported: 110, 150, 300, 600, 1200, 2400(default), 4800, 9600, plus the extended rates 19200, 38400, and 57600(56000). 115200 is allowed, but may not work with all COMx port hardware.

    <parity>: the parity used on the serial line. The boot loader ignores input parity and strips the 8th bit. The following (upper or lower case) characters are used to describe the parity: "n" for no parity, "e" for even parity and "o" for odd parity.

    <bits>: the number of bits in a character. Only 7 and 8 bits are supported. Default is 8 if parity is "none", 7 if parity is "even" or "odd".

    If `serial' is set, the value of `delay' is automatically raised to 20.

    Example: "serial=0,2400n8" initializes COM1 with the default parameters.

single-key
    This option specifies that boot images or 'other's are to be selected and launched with a single keystroke. Selection is based upon the first character of each name, which must be unique. This option should not be used with the menu or bitmap user interface ("install=").

suppress-boot-time-BIOS-data
    This global option suppresses the boot-time real mode collection of BIOS data on systems which hang on certain BIOS calls. It is equivalent to using the boot-time switch 'nobd'.

    This option defeats the disk volume recognition and BIOS device code detection features of LILO on systems with more than one disk. Thus the use of this option will produce a strong cautionary message, which cannot be suppressed.

timeout=<tsecs>
    sets a timeout (in tenths of a second) for keyboard input at the boot: prompt. "timeout" only has meaning if "prompt" is mentioned. If no key is pressed for the specified time, the default image is automatically booted. The default timeout is infinite.

verbose=<number>
    Turns on lots of progress reporting. Higher numbers give more verbose output. If -v is additionally specified on the lilo command line, the level is increased accordingly. The maximum verbosity level is 5.

Additionally, the kernel configuration parameters append, ramdisk, read-only, read-write, root and vga can be set in the global options section. They are used as defaults if they aren't specified in the configuration sections of the respective kernel images.

PER-IMAGE SECTION
A per-image section starts with either a line

    image=<pathname>

to indicate a file or device containing the boot image of a Linux kernel, or a line

    other=<device>

to indicate an arbitrary system to boot.

In the former case, if an image line specifies booting from a device, then one has to indicate the range of sectors to be mapped using

    range=<start>-<end>
    range=<start>+<nsec>
    range=<sector>

In the third case, 'nsec=1' is assumed.

KERNEL OPTIONS (image=)
If the booted image is a Linux kernel, then one may pass command line parameters to this kernel.

append=<string>
    Appends the options specified to the parameter line passed to the kernel. This is typically used to specify parameters of hardware that can't be entirely auto-detected or for which probing may be dangerous. Multiple kernel parameters are separated by a blank space, and the string must be enclosed in double quotes. Append may be used only once per "image=" section. Example:

         append="mem=96M hd=576,64,32 console=ttyS1,9600"

initrd=<name>
    Specifies the initial ramdisk image to be loaded with the kernel. The image will contain modules needed at boot time, such as network and scsi drivers. See man pages for mkinitrd(8).

literal=<string>
    Like `append', but removes all other options (e.g. setting of the root device). Because vital options can be removed unintentionally with `literal', this option cannot be set in the global options section.

ramdisk=<size>
    This specifies the size (e.g., "4096k") of the optional RAM disk. A value of zero indicates that no RAM disk should be created. If this variable is omitted, the RAM disk size configured into the boot image is used.

read-only
    This specifies that the root file system should be mounted read-only. It may be specified as a global option. Typically, the system startup procedure re-mounts the root file system read-write later (e.g. after fsck'ing it).

read-write
    This specifies that the root file system should be mounted read-write. It may be specified as a global option.

root=<root-device>
    This specifies the device that should be mounted as root. It may be specified as a global option. If the special name current is used, the root device is set to the device on which the root file system is currently mounted. If the root has been changed with -r , the respective device is used. If the variable `root' is omitted, the root device setting contained in the kernel image is used. (And that is set at compile time using the ROOT_DEV variable in the kernel Makefile, and can later be changed with the rdev(8) program.)

vga=<mode>
    This specifies the VGA text mode that should be selected when booting. It may be specified as a global option. The following values are recognized (case is ignored):

    normal: select normal 80x25 text mode.

    extended (or ext): select 80x50 text mode.

    ask: stop and ask for user input (at boot time).

    <number>: use the corresponding text mode. A list of available modes can be obtained by booting with vga=ask and pressing [Enter].

    If this variable is omitted, the VGA mode setting contained in the kernel image is used. (And that is set at compile time using the SVGA_MODE variable in the kernel Makefile, and can later be changed with the rdev(8) program.)

ALTERNATE SYSTEM (other=)

Used to load systems other than Linux. The `other = <device>' specifies the boot sector of an alternate system contained on a device or disk partition; e.g., DOS on, say, `/dev/hda2', or a floppy on `/dev/fd0'. In the case of booting another system there are these options:

loader=<chain-loader>
    This specifies the chain loader that should be used. It may also be specified as a global option. By default /boot/chain.b is used. This chain loader passes partition and drive information in the boot sector it loads only to DOS on FAT12 or FAT16, Windows on FAT16 or FAT32, or OS/2 on FAT16 or HPFS. The alternate chain loader, /boot/os2_d.b passes partition and drive information unconditionally, and uses a format suitalble for OS/2 and DOS (see table=<letter> below).

table=<device>
    This specifies the device that contains the partition table. The boot loader will pass default partition information to the booted operating system if this variable is omitted. (Some operating systems have other means to determine from which partition they have been booted. E.g., MS-DOS usually stores the geometry of the boot disk or partition in its boot sector.) Note that /sbin/lilo must be re-run if a partition table mapped referenced with `table' is modified.

table=<drive-letter>
    This is a special case for the os2_d.b chain loader. It specifies the DOS drive letter for the partition that will be booted. This is mandatory when booting OS/2 installed on an extended partition. The drive letter may be specified with or without a trailing colon.

change
    This keyword starts a section which describes how primary partition IDs are changed, and how primary partitions are activated and deactivated. If change is omitted, change rules are generated as though the automatic keyword were specified. The keyword change alone, without any rules following, will suppress automatic change-rules. For example,

       other=/dev/hda2
          label=dos
          table=/dev/hda
          change
            automatic
            partition=/dev/hda1
               set=DOS12_hidden
               deactivate
            partition=/dev/hda2
               set=DOS16_big_normal
               activate

    specifies that when primary partition /dev/hda2 is booted, automatic change-rules will be in effect; plus, partition 1, a DOS12 partition, will be set hidden, and deactivated. In addition, partition 2, will be set normal, and activated. Activation sets the boot-flag in the partition table. The automatic keyword may confict with default change rules, so the set= lines above may be redundant.

map-drive=<num>
    Maps BIOS calls for the specified drive to the device code specified on the next line as to=<num>. This mapping is useful for booting operating systems, such as DOS, from the second hard drive. The following, swaps the C: and D: drives,

       map-drive=0x80
          to=0x81
       map-drive=0x81
          to=0x80

unsafe
    Do not access the boot sector at map creation time. This disables some sanity checks, including a partition table check. If the boot sector is on a fixed-format floppy disk device, using UNSAFE avoids the need to put a readable disk into the drive when running the map installer. If the boot sector is on a hard drive, the BIOS device code of the drive will have to be specified explicitly with "disk=/dev/XXXX bios=0x8X inaccessible" in the configuration file. `unsafe' and `table' (explicit or implicit) are mutually incompatible.

COMMON OPTIONS (image= & other=)

In both the image= and other= cases, the following options apply.

label=<name>
    The boot loader uses the main file name (without its path) of each image specification to identify that image. A different name can be used by setting the variable `label'.

alias=<name>
    A second name for the same entry can be used by specifying an alias.

lock
    (See above.)

optional
    Omit the image if it is not available at map creation time. It may be specified as a global option. This is useful to specify test kernels that are not always present.

password=<password>
    Protect the `image=' or `other=' with a password (or passphrase). It may be specified as a global option. The interpretation of the `password=' setting is modified by the words `mandatory', `restricted', and `bypass' (see below).
    The password may be specified in the config-file (less secure) or entered at the time the boot loader is installed. To request interactive entry of the password, it should be specified: password="". Passwords entered interactively are not required to be entered again if the boot installer is re-run. They are cached, in hashed form, in a companion file to the config-file, default name: /etc/lilo.conf.crc. If the config-file is updated, a warning message will be issued telling you to re-run lilo -p to force re-creation of the password cache file.

mandatory
    A password is required to boot this image. This is the default. May be used on a single `image=' or `other=' to override a different global setting.

restricted
    A password is only required to boot the image if kernel parameters are specified on the command line (e.g. 'single'). May be used on a single `image=' or `other=' to override a different global setting.

bypass
    No password is required to boot this image. Used to indicate that the global password does not apply to this `image=' or `other='.

SEE ALSO
lilo(8), mkinitrd(8), mkrescue(8), rdev(8).

The lilo distribution comes with very extensive documentation of which the above is an extract. (lilo 22.3)