15/09/2009

Yay! Kernel panic!

It's really no reason to rejoice.
On Archimedes (a meticulously preserved SuSE 10.3) the Virtual Box update seemed to have trouble with the fact that there were apparently three kernel versions installed (no idea how they got there), so I decided to get rid of two of them with YaST. And so the catastrophe began…
I think my initial mistake was not to reinstall the active kernel - on the other hand, daWuzzzz also just got a non-bootable system after a normal update. Anyway, my boot folder ended up with a kernel but missing the initial ram disk (found that out by booting a live linux) and I sat there staring at the grub console. Pointing grub to the new kernel by hand or by editing the menu.lst file from the live linux did not work, naturally (thus the aforementioned kernel panic).
First option: the System Repair mode from the installer DVD, which usually works great with missing kernels etc., but just crashed this time.
Next try: the rescue console (login: root, no password). I got the next steps from all over the net, but forgot the individual sources.
I created a mount point and mounted my root partition:
mkdir disk
mount /dev/sda1 disk
The next step is to chroot into your installed system as nicely explained here, and write a new initrd.
mount -o bind /disk/dev /dev (I did this analogously for all the root tree)
chroot disk
mkinitrd -k /boot/vmlinuz-<version> -i /boot/initrd-<version> (with the kernel present in the boot folder for the -k option).
Sadly, mkinitrd aborted with some "missing node" message. At that point I decided to give up and just get SuSE 11.1. I was in luck: with python-matplotlib 0.99 out, the Python/C stuff I work installed on the new system with minor alterations; I had everything up and running in a matter of hours.
Morale: after a kernel update, check the contents of your boot folder.

No comments: