LILO vs GRUB: why LILO still wins for servers
IBM Developerworks recently carried an article comparing the LILO and GRUB Linux bootloaders that wound up concluding there was nothing LILO did better than GRUB.
I beg to disagree, and strongly. LILO has two important features for server operation:
First, a one-shot mode, where LILO tries booting a particular kernel only once; after that, it goes back to its normal default. This is a reassuring way of trying new kernels that you are not entirely sure will work. If you set the kernel up to reboot on panics, you have a good chance that the system will automatically recover into your old and known to work kernel. (It's especially handy on servers without remotely accessible serial consoles, which would otherwise require an in-person visit to recover.)
(We are not rich enough to buy remotely controllable power switches and 'managed servers' that dump everything from the BIOS on up out the serial port. If you are, maybe you don't have to care about this.)
Second, it's easy to use both a serial line and the normal console. LILO can be set up to simultaneously use both the normal PClone video console and a serial line. Serial consoles are an important part of hands-off management of servers, but at the same time you do want to be able to do in-person hands-on visits.
GRUB has some support for serial consoles, but from the documentation it appears that GRUB wants to pick one 'console' and speak only to it. LILO will echo output on both, which is very helpful when examining or watching things. (I welcome corrections, and I consider this the less important difference for server usage.)
Plus, frankly, I do not want complicated near-graphical menus in a server environment. A simple command line is very appealing to me. (As far as I know, GRUB's command line is not useful for invoking menu entries by name, just for entering raw GRUB commands. And if you use menu entries, you have to get a menu of some sort.)
Sidebar: what about LILO's hardcoded block numbers?
One of the often-repeated downsides of LILO is that it doesn't read the
filesystem but instead records the block numbers of where your kernels
are on the disk, and therefor goes to pieces if they change (and you
Although it's not widely advertised, GRUB uses hardcoded block numbers too (read the documentation of the 'install' command carefully). It just uses them for less, so you get hit by it less often.
So with GRUB you get affected less, but with LILO everyone knows about the issue. (In my experience, the early-stage GRUB diagnostics are not as helpful as LILO's.)