If you have an ext3 filesystem then you may need to create a new
initrd.img with some additional drivers. You will then be able to mount
the root filesystem and proceed as usual.
I have these 3 lines in /etc/mkinitrd/modules
jbd
ext3
ext2
You should also have a line (amongst others) in
/etc/mkinitrd/mkinitrd.conf
# What modules to install.
MODULES=dep
This means that when you (this is the bit coming up...) try and make the
initrd.img it will try and work out what modules to install in the img
file. You can change this if needed, but it works for me. See
mkinitrd.conf's man page.
Now, to create a new initrd.img file you can do something like this:
mkinitrd -o /boot/initrd.img-2.4.20-586tsc-test
/lib/modules/2.4.20-586tsc/
You should now see perhaps a slightly larger file than before, because
of the new modules included in the image.
You should update your symlink /initrd.img to point to this file and not
the default. I also have a initrd.img.old for the backup kernel, in case
this one does not work.
If you want to see if that they are really there, then:
cramfsck -v -x /tmp/foo /boot/initrd.img-2.4.20-586tsc-test
will uncompress the img file to /tmp/foo.
You can now re-run lilo and give the new kernel a shot.