Kernel Upgrade Wipeout

Having run Debian and Ubuntu w/Gnome for a while, I thought it would be good to try Opensuse with KDE. So I deleted the Ubuntu partition on one desktop (the one where my wife usually does her Windows) and installed KDE 4 w/Opnesuse 11.3 to dual boot. The install went OK. But…

The first update included a kernel upgrade from 22-17.01-default to 22.18.02-default (if I remember correctly). On reboot, I got to the Grub splash screen and saw only MS Windows available. No Linux at all!

So I booted from a live CD and looked at /boot/grub/menu.lst – short and sweet – Windows only. Also, there was no initrd for the kernel in /boot. Good grief.

During setup, I noticed that the installer put the root directory on an extended partition. Don’t know why, because there was only one primary partition – for NTFS – on that drive. This was hdb, and the NTFS was for storage. But apparently when /boot is in an extended partition it won’t create an initrd. I figured out that you need to do that yourself. Kind of awkward, and I wonder why it needs to be that way.

In any event, after the kernel upgrade, but before the first re-boot, I created (as root) an initrd while in /boot like this:

mkinitrd -s 1024x768

Then I needed to manually edit /boot/grub/menu.lst to change the kernel number for each reference. I first wrote down the new kernel number. Then I edited the file as root.

The new /boot/menu.lst had no Linux entries, only Windows. But the old menu.lst had been saved, and I did a copy | paste to get the old Linux entries into the new menu.lst file. Then I edited the new menu.lst to update the copied entries.

There were two entries needing editing from the old to the new kernel, and two changes required for each entry. One entry was for the kernel itself, and the other for the initrd entry.

So now it works.

Next time I’ll edit the partition table during the install to get / on a primary partition. Maybe that will help.

Ooops… That was 10.3, not 11.3.

That particular problem reared it’s ugly head a few times during kernel upgrades on 10.3. I hope we don’t see a repeat of it in 11.0. The best policy though is to make a back-up of /boot/grub/menu.lst before any kernel upgrade.

I was planning to dual boot and slowly transition from 10.3 to 11.0

Eradicated the old kernel by reformatting the boot partition! Oops.

Edited the new menu.lst, booted into a 10.3 console, but nothing else would work. Realized the old system had been compiled under GCC 4.2 and the new kernel under GCC 4.3

Lesson learned, back up your entire boot partition if you intend to upgrade!