LILO


Resources

LILO (LInux LOader) is a simple boot loader to load Linux and other operating systems.

Installation[edit | edit source]

LILO's installation is two-fold. One is the installation of the software itself on the system (but does not activate LILO), the second one is the installation (activation) of the LILO bootloader on the disk's MBR.

USE flags[edit | edit source]

USE flags for sys-boot/lilo Standard Linux boot loader

device-mapper Enable support for device-mapper from sys-fs/lvm2
minimal Do not install the dolilo helper script
pxeserial Avoid character echo on PXE serial console
static !!do not set this during bootstrap!! Causes binaries to be statically linked instead of dynamically

Emerge[edit | edit source]

The software installation will only deploy the software on the file system, but will not install LILO in the MBR.

root #emerge --ask sys-boot/lilo

Installing LILO on the MBR[edit | edit source]

In order to install LILO on the MBR or update LILO, invoke lilo. However, before doing that, the /etc/lilo.conf file must be set up, which is covered in the Configuration section below.

root #lilo

Configuration[edit | edit source]

An example lilo.conf file is provided at /etc/lilo.conf.example. To start configuring LILO, copy over the example file.

root #cp /etc/lilo.conf.example /etc/lilo.conf

Update the /etc/lilo.conf file accordingly.

General configuration[edit | edit source]

First configure LILO to be deployed on the system. The boot parameter tells LILO where to install the LILO bootloader in. Usually, this is the block device that represents the first disk (the disk that the system will boot), such as /dev/sda. Be aware that the lilo.conf.example file still uses /dev/hda so make sure that references to /dev/hda are changed to /dev/sda.

FILE /etc/lilo.confDefining where to install LILO in
boot=/dev/sda
map=/boot/.map

Next, tell LILO what to boot as default (if the user does not select any other option at the boot menu). The name used here is the label value of the operating system blocks defined later in the file.

FILE /etc/lilo.confBooting the block labeled as Gentoo by default
default=Gentoo

LILO will show the available options for a short while before continuing to boot the default selected operating system. How long it waits is defined by the timeout parameter and is measured in tenths of a second (so the value 10 is one second):

FILE /etc/lilo.confSetting a 5 second timeout before continuing to boot the default OS
timeout=50

Configuring the Gentoo OS block[edit | edit source]

An example configuration block for Gentoo is shown below. It is given the "Gentoo" label to match the default parameter declared earlier.

FILE /etc/lilo.confExample Gentoo Linux configuration in lilo.conf
image=/boot/kernel-3.11.2-gentoo
	label=Gentoo
	read-only
	root=/dev/sda4

This will boot the Linux kernel /boot/kernel-3.11.2-gentoo with root file system /dev/sda4.

Adding kernel parameters[edit | edit source]

To add additional kernel parameters to the OS block, use the append parameter. For instance, to boot the Linux kernel silently (so it does not show any kernel messages unless critical):

FILE /etc/lilo.confShowing the use of the append parameter with the quiet option
image=/boot/kernel-3.11.2-gentoo
	label=Gentoo
	read-only
	root=/dev/sda4
	append="quiet"

systemd users for instance would want to set init=/usr/lib/systemd/systemd so that the systemd init is used:

FILE /etc/lilo.confUsing systemd with LILO
	append="quiet init=/usr/lib/systemd/systemd"

As can be seen, additional kernel parameters are just appended to the same append parameter.

Multiple block definitions[edit | edit source]

It is a good idea to keep old definitions available in case the new kernel doesn't boot successfully. This is accomplished by creating another block:

FILE /etc/lilo.confDefining a second OS block
image=/boot/kernel-3.9.2-gentoo
        root=/dev/sda4
        label=OldGentoo
        read-only

Usage[edit | edit source]

Updating LILO in the MBR[edit | edit source]

As mentioned earlier, lilo has to be executed in order to install LILO in the MBR. This step has to be repeated every time /etc/lilo.conf is modified or when the Linux kernel(s) that the /etc/lilo.conf file points to are updated!

root #lilo

Running lilo too much doesn't hurt.

Dual boot Gentoo and FreeBSD[edit | edit source]

To dual boot Gentoo and FreeBSD, edit /etc/lilo.conf as follows:

FILE /etc/lilo.confDual boot: Gentoo and FreeBSD
large-memory
lba32
boot=/dev/sda
install=menu
map=/boot/map
prompt
default=Gentoo
 
image=/boot/vmlinuz-2.6.26
	label="Gentoo"
	root=/dev/sda1
	append=""
	read-only
	optional
 
other=/dev/sda3
	label="FreeBSD"

Make sure to adapt the example configuration file to match the setup used.

Removal[edit | edit source]

Unmerge[edit | edit source]

Warning
Be sure there's another bootloader installed and properly configured before uninstalling lilo! Failing to do so will most likely result in the system failing to bootstrap.

Uninstall lilo, simply:

root #emerge --ask --depclean --verbose sys-boot/lilo

See also[edit | edit source]

  • GRUB2 — is a multiboot secondary bootloader capable of loading kernels from a variety of filesystems on most system architectures.
This article is issued from Gentoo. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.