The LInux LOader - LILO
LILO is a bootloader which was created for Linux. LILO was the default bootloader used for most desktop and server distributions for many years. It is still used on x86 embedded systems because it provides everything an embedded system needs to boot into embedded Linux.
When LILO is installed on a drive or partition, LILO will provide a menu at boot time. This menu typically shows a list of available operating system kernels and/or operating systems from which a user may select. On embedded systems, this menu is typically streamlined down to a very simple interface.
When LILO is configured with a timeout, as it usually is, a user may simply wait for the duration of the timeout for LILO to boot the operating system and kernel which have been configured as the default for the system. If the user doesn't wish for the default to boot, the user may press any key other than the
Enter key before the timeout duration has expired to access alternative options. If the user presses enter during the timeout delay, the timeout immediately expires and the boot process continues with the default configured OS and kernel. The default boot process starts as shown here:
LILO 22.8 boot: Loading emac-oe................................................ BIOS data check successful
Pressing the TAB key will show a list of available OS configurations to boot. Usually, there will only be one available.
LILO 22.8 boot: emac-oe boot:
Typing the name of the OS configuration (the OS + kernel) will boot the system with that configuration.
LILO 22.8 boot: emac-oe boot: emac-oe Loading emac-oe................................................ BIOS data check successful EMAC OpenEmbedded Linux 4.0 (stable-2009) Some code contained within Copyright 2008-2010 EMAC, Inc. emac 2009-stable vortex86 ttyS0 vortex86 login:
Once the system has booted to the login prompt, the user may log into the system as usual. On EMAC products, the default password for the root account is
emac_inc. Please see System Log In for more information regarding the login process.
Additional Abilities of LILO
In addition to the normal boot selection described above, LILO is also able to pass arguments to the Linux kernel for booting. These arguments can be useful for enabling output of boot messages, configuring a video driver, and configuring a number of other things which can accept kernel command line configuration options.
For example, the
console=ttyS0,115200 option can be passed to a kernel to enable boot message output to the serial console:
LILO 22.8 boot: emac-oe boot: emac-oe console=ttyS0,115200 Loading emac-oe................................................ BIOS data check successful Linux version 126.96.36.199 (mdean@engineering0) (gcc version 4.2.4) #1 PREEMPT Fri Feb 1 18:38:41 CST 2013 KERNEL supported cpus: Intel GenuineIntel AMD AuthenticAMD NSC Geode by NSC Cyrix CyrixInstead Centaur CentaurHauls Transmeta GenuineTMx86 Transmeta TransmetaCPU UMC UMC UMC UMC CPU: vendor_id 'Vortex86 SoC' unknown, using generic init. ... ... ... EMAC OpenEmbedded Linux 4.0 (stable-2009) Some code contained within Copyright 2008-2010 EMAC, Inc. emac 2009-stable vortex86 ttyS0 vortex86 login:
Other arguments to the kernel are passed in a similar manner. The available options to pass will depend on the specific configuration of the kernel which will be booted by LILO. A page which contains many more kernel arguments can be found here: https://www.kernel.org/doc/Documentation/kernel-parameters.txt
Follow these guides for more information: