I’ve installed openSUSE 11 and it decided for whatever reason to use the -debug kernel instead of the -default, and unfortunately my VIA c3 processor doesn’t support PAE, so it crashes when trying to boot.
I’ve grabbed the kernel-default-188.8.131.52-1.1.i586.rpm to install in place but I can not for the life of me get it to run.
I tried booting with a Ubuntu live CD and running
rpm -Uvh --root /mnt/sda4 kernel-default-184.108.40.206-1.1.nosrc.rpm
but it throws a “segmentation fault” error while checking dependencies.
I’ve also tried the original installer CD but save for running the whole install again (not want) I can’t just get a terminal up to run rpm!
rpm -Uvh --root /mnt/sda4 kernel-default-220.127.116.11-1.1.i586.rpm *
Use the rescue system from the OpenSUSE install DVD rather than Ubuntu because Ubuntu may have different libraries or something else that would interfere with rpm --root.
Mount the root filesystem as you did with Ubuntu and run rpm --root … as before.
Loaded up rescue system and ran the rpm installer with success, but it now fails to boot with a string of
“/lib/modules/25…1-default/xxxx does not exist”
/lib/modules/25…1-debug exists, but the -default kernel package has either skipped the modules or doesn’t include them. I tried renaming the -debug folder to default but that was a stab in the dark at possible success and, well, let’s just say fail.
Hmm, the kernel-default package does include the modules directory, not sure why they were not extracted. Maybe the first time you did this it recorded it as being installed and now it’s not really installing anything. Maybe give it another try, adding --force. You can also view the /lib/modules directory under where you mounted it to see if the modules directory was extracted.
I figured out the problem. mkinitrd was failing on some perl errors so it was not creating the new initrd image. The old image had everything in /modules/x…-debug hence the failure.
After running in to some dependency issues (grr) I managed to install perl 5.10 packages and get mkinitrd to run.
oh, and kernel rpm needs to be run from a chroot-ed mount it turns out.