To expand upon WWWWolf's writeup:

GRUB gives your GNU/Linux (or GNU/HURD) box the kind of proper, intelligent boot loader that your colleagues running Unix on fancy workstations have long taken for granted. No, it doesn't contain a full FORTH implementation like Sun and Apple's Open Firmware ... but it does give you an interactive boot process from which you can select boot media, navigate your filesystems, and in general avoid the obscurity and evil of LILO.

By way of comparison: If you are using LILO, you must specify your system's bootable partitions and kernels precisely in lilo.conf, then run the lilo installer. This builds you a new master boot record, statically configured with the physical disk location of your kernel, as well as your other boot settings. If you reboot and your settings are inaccurate -- or if you replaced your kernel and forgot to re-run lilo -- your system will become unbootable. In contrast, if you have GRUB installed in your MBR, you can specify all your boot settings at boot time -- disk, partition, and the filename of your kernel. If you're not quite sure of your kernel's filename, you can still boot: the GRUB prompt supports tab completion, so you can bonk around your filesystem until you find something that resembles a kernel.

GRUB is quite useful if you are trying out Linux kernels of different versions, or compiled with different components. Rather than setting up an endless series of stanzas in a configuration file as you would under LILO, you can simply give the filename of your preferred kernel at boot time.

Oh, and by the way -- GRUB can also boot BSD kernels, as well as Linux kernels, HURDs, and chain-loaded proprietary systems such as Microsoft Windows.


It shouldn't come as any surprise that the author of this writeup has recently given up getting LILO to behave nicely on one of his Debian boxen, and has resorted (with great relief) to GRUB. It's good stuff, and it ain't hard to install if you know the difference between a filesystem and a hole in the ground. Try it out.