LILO is an acronym for the LInux LOader and has been used to boot Linux on x86 systems for many years. Although GRUB is now the default boot loader, some users prefer to use LILO because it is more familiar to them and others use it out of necessity, since GRUB may have trouble booting some hardware.
This section discusses in detail the specific role LILO plays when booting an x86 system. For a detailed look at the overall boot process, refer to Section 1.2 A Detailed Look at the Boot Process.
LILO loads itself into memory almost identically to GRUB, with the exception that it is only a two stage loader.
The Stage 1 or primary boot loader is read into memory by the BIOS from the MBR. The primary boot loader exists on less than 512 bytes of disk space within the MBR. It only loads the Stage 2 boot loader and passes disk geometry information to it.
The Stage 2 or secondary boot loader is read into memory. The secondary boot loader displays the Red Hat Enterprise Linux initial screen. This screen allows you to select which operating system or Linux kernel to boot.
The Stage 2 boot loader reads the operating system or kernel and initrd into memory. Once LILO determines which operating system to start, it loads it into memory and transfers control of the machine to that operating system.
Once the Stage 2 boot loader is in memory, LILO displays the initial Red Hat Enterprise Linux screen with the different operating systems or kernels it has been configured to boot. By default, if Red Hat Enterprise Linux is the only operating system installed, linux is the only available option. If the system has multiple processors, a linux-up option appears for the single processor kernel and a linux option appears for the multiple processor (SMP) kernel. If LILO is configured to boot other operating systems, those boot entries also appear on this screen.
The arrow keys allow a user to highlight the desired operating system
To access a boot: prompt, press
In general, LILO works similarly to GRUB except for three major differences:
It has no interactive command interface.
It stores information about the location of the kernel or other operating system it is to load on the MBR.
It cannot read ext2 partitions.
The first point means the command prompt for LILO is not interactive and only allows one command with arguments.
The last two points mean that if LILO's configuration file is changed or if a new kernel in installed, LILO must be reinstalled on the MBR by using the following command:
/sbin/lilo -v -v
This method is more risky than the method used by GRUB because a misconfigured MBR leaves the system unbootable. With GRUB, if the configuration file is erroneously configured, it defaults to its command line interface where the user can boot the system manually. Refer to Section 2.5 GRUB Interfaces for more information about the GRUB command line interface.
If upgrading the kernel using the Red Hat Update Agent, the MBR is updated automatically. More information about RHN is available online at https://rhn.redhat.com/.
For more on the system BIOS and the MBR, refer to Section 1.2.1 The BIOS.