Boot loader is the program that loads the operating systems when the computer is turned on. Typically, boot loaders give the ability to select from a list of operating systems to load during the startup of the computer. So, boot loader allows the coexistence of multiple operating systems on the same machine. LILO and GRUB are two of the popular boot loaders used today. LILO was used as the default boot loader in Linux for a very long time, but recently GRUB has taken its place.
What is LILO?
LILO (LInux LOader) is a boot loader used in Linux operating systems. LILO can boot (up to 16) operating systems from floppy disks, hard disks, etc. because it is not dependent on a specific file system. The user can place LILO in either the Master Boot Record (MBR) or the boot sector of a partition (and place something else in MBR to load LILO). LILO was used as the default boot loader in Linux till late 2001. It is now included in the list of depreciated packages (in Red Hat).
What is GRUB?
GRUB (GNU GRand Unified Bootloader) is a boot loader developed by GNU project. GRUB allows the user to select from a list of operating systems to load, making it possible to have multiple operating systems on the same machine. GRUB is the default boot loader used in most Linux distributions today. GRUB can be configured dynamically as it allows changes to the configuration at the time of booting. Users are provided with a simple command line interface to insert new boot configurations dynamically. GRUB has many user-friendly features like high portability, support for many executable formats, independence from geometry translation and support for all types of files systems such as most UNIX systems, VFAT, NTFS, and LBA (Logical Block Address) mode. Most Linux distributions which use GRUB, provide a customized boot menu using its support for many GUI (Graphical User Interfaces). GRUB2 is replacing GRUB at the moment and GRUB is been renamed as GRUB Legacy.
What is the difference between GRUB and LILO?
LILO used to be the default boot loader of Linux, while GRUB has taken LILO’s place in the last few years. GRUB has a better interactive command line interface compared to LILO’s, which only allows a single command with arguments. Because LILO stores location information of operating systems in MBR, every time a new operating system is added, the user should manually overwrite the configuration file, and this could very easily create a misconfigured configuration file. To correct a misconfigured configuration file in LILO, the users need to take an approach like booting from a live CD. However due to dynamically configurable nature, it is much easier to correct a misconfigured configuration file in GRUB. Compared to LILO, GRUB has very good technical support. LILO cannot boot from network, while GRUB certainly can. But on the other hand, since LILO was used, developed and tested for a very long time, most Linux administrators are well aware of configuring and handling problems with LILO even without any documentation.