Floppy to the rescue

Wed, 2 Jun 2004

Today I took Delilah in to UW and upgraded lots of packages. One of those packages happened to be lilo, and part of the installation/configuration wanted to edit the configuration and run lilo. I said okay (figuring it shouldn't be a problem) and didn't worry about it.

This evening I unpacked Delilah and booted her up—except that she didn't boot. Argh. Lilo displayed just the LI in LILO, and Jeff said that you can tell what's wrong by how many letters display, but he couldn't remember what it meant. (Very helpful.)

So I booted from my Debian installation boot floppy (ye gods, I'm glad I created that one!) and tried to run lilo, but I got complained at because that kernel doesn't support ReiserFS, and my Mandrake root partition (which holds those kernel images) uses ReiserFS. Not too big a deal, since I could just have commented out the Mandrake images and then re-run lilo when I was using the newest Debian kernel, but I decided to use my Mandrake rescue floppy instead.

In Mandrake, I updated lilo.conf to use the newest kernels, ran lilo, and rebooted into Debian. Wonderful!—except that I had also updated pcmcia-cs today, and the config file got overwritten. One of the included ports has to be deleted or commented out, or else the system will hang on boot; I remembered this, but I commented out the wrong one. Oops! So it hung, and I had to power off, which is never fun.

I booted back into Mandrake and tried to edit /mnt/debian/etc/pcmcia/config.opts, but I got a new, empty file. Narf? It turned out that /mnt/debian (my Debian root partition) was unmounted, so I did mount /mnt/debian and got told that there was a bad superblock or other error. I fscked the drive, and then it mounted. Whew! Edit the pcmcia config, reboot.

This time, success! I logged in, edited /etc/lilo.conf (this time the Debian version), and ran lilo from there. It looked like it ran properly, but I wasn't sure until I rebooted and the lilo screen came up. Yay!

I was surprised that a simple set of package upgrades caused so much trouble. I was even more surprised at my sang froid, since I would have expected myself to be more nervous about a non-booting system. I think this means I'm not a newbie any more; I'm successfully running Debian and taking unexpected problems in stride.

Comments

Jeff says:

From the manpage for LILO:

The boot process takes place in two stages. The first stage loader is a single sector, and is loaded by the BIOS or by the loader in the MBR. It loads the multi-sector second stage loader, but is very space limited. When the first stage loader gets control, it types the letter "L"; when it is ready to transfer control to the second stage loader it types the letter "I". If any error occurs, like a disk read error, it will put out a hexadecimil error code, and then it will re-try the operation. ...snip stuff about error codes...When the second stage loader has received control from the first stage, it prints the letter "L", and when it has initialized itself, including verifying the "Descriptor Table" - the list of kernels/others to boot - it will print the letter "O", to form the full word "LILO", in uppercase.

See? It is very helpful.

Jeff

Laurabelle says:

It's only helpful if you know what it all means, and actually it wouldn't have affected my trouble-shooting process at all if I had known that description beforehand. Maybe it would have told me what had gone wrong, but it wouldn't have changed what I did.

So, knowing what you know now, what do you think went wrong?

Post a comment











XHTML: You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

OpenID: If you use OpenID, your comment will be approved automatically and will not be held for moderation.