LILO vs GRUB: why LILO still wins for servers

August 31, 2005

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 don't rerun lilo).

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.)

Written on 31 August 2005.
« The Version Control System dependency problem
On blocking access from large IP ranges »

Page tools: View Source, Add Comment.
Login: Password:
Atom Syndication: Recent Comments.

Last modified: Wed Aug 31 04:18:26 2005
This dinky wiki is brought to you by the Insane Hackers Guild, Python sub-branch.