LILO printing number nine (9) all over the screen

Q I'm sure you remember one of the usual bugs in the boot stage that fails to load the kernel, this happening usually when upgrading kernels but neglect to call Lilo. Grub is another story of course. Well, when the kernel is not found, we see 9s all over the screen. But why 9s? Why not 6s or some other number? Since the loader is pointing to the wrong sector shouldn't the screen present random data even as raw numeric values?

A The nines are not random: they are a Lilo error code. As Lilo loads itself it writes the word Lilo to the screen, one letter after the successful completion of each stage. If it fails at any of these stages, it outputs a two-digit hexadecimal code to indicate the error. Error code 99 means "invalid second stage index sector" in other words, it cannot find the location on your filesystem that contains the rest of the Lilo code. The error message is repeated, which is why your display fills with nines. Lilo does not use filesystem code to locate files; instead, the physical block address of the code it needs is written with the bootloader code. That's why you need to rerun Lilo after making any changes, be it editing the menu or installing a new kernel.

Otherwise, the bootloader looks for its code in the wrong place, sees that this is not the code it needs and outputs the error message of 99. The screen does not show random data because, while Lilo is simple, it is not stupid, and it realises that this is the wrong location. The options, as ever, are to rerun Lilo every time you upgrade your kernel, change the menu or switch to Grub, which, while it still has terse error codes, does at least make them a little more comprehensible.

Follow us on Identi.ca or Twitter

Username:   Password:
Create Account | About TuxRadar