Previous Entry Share Next Entry
A recent kernel upgrade on my desktop caused it to stop booting. Kernel package 2.6.10-5-686-smp worked, but 2.6.12-6-686-smp didn't. Right after I chose the kernel with GRUB I'd get:
Unable to find volume group "hda2"
ALERT! /dev/hda2 does not exist

And then I'd be dropped to a Busybox shell.

Lots of looking around on Google produced nothing. Some people had similar problems but they all came back to lilo, and I wasn't using lilo. I finally subscribed to the ubuntu-users mailing list and sent out my info, and this morning I was given the pointer that lead to fixing it.

Unfortunately I'm not quite sure exactly what fixed it, but I think I have enough that anyone else who encounters this will be able to retrace my steps.

It appears that the problem was the newer kernel's initrd was missing some crucial module. /etc/mkinitrd/mkinitrd.conf says MODULES=most but I'm not sure where that list is defined, but if you run mkinitrd with the -k it leaves its temporary files around you can see the modules.most file it left behind.

The two changes I made were:
  1. Adding reiserfs to /etc/mkinitrd/modules
  2. Copying reiserfs.ko and atiixp.ko (gimme a break, I was just guessing) to /lib/modules/2.6.12-9-686-smp/initrd
In retrospect I think it was the first step that did it, but it didn't work when I first tried it. I think I wasn't properly updating my initrd properly -- the problem was that you have to use an absolute path for the output file when you run mkinitrd, like this: mkinitrd -o /boot/initrd.img-2.6.12-9-686-smp 2.6.12-9-686-smp .

It's been so long since I messed with any of this stuff that I'm hazy on how it works. This makes me sorta happy, really -- I ought not to need to know. Though it makes me even happier that I still have the opportunity to be able to fix it.