recovering from a dodgy upgrade
Had a bit of a hair-raiser today. I ran an apt-get update; apt-get upgrade
today on my two main home machines (both run Fedora), and got a bit of a thrill when the big one, Monolith, which my GF fiancee uses (may her pointy boots stay far from my shins), refused to boot!
The main difference between before and after the upgrade seems to have been a udev
package, which replaces the old dev
.
The problem manifested itself by the machine running through the Grub boot, then apparently freezing after a line that read:
Red Hat nash version 3.5.22 starting
After a bit of googling, I found that more information can be gotten by removing the “quiet” and “rhgb” (or something) options from the kernel init string in the Grub startup.
Anyway – to cut a long story short, here’s what was happening:
Between Fedora Core 2 and Fedora Core 3, the system was changed to use a udev
instead of dev
system to access hardware. Something about new dynamic loading or something. Nope, I don’t know either…
However, the dependencies for the new udev
RPM do not mention that you also need to upgrade your kernel at the same time to use the new system (the Fedora Core 2 kernel does not load up the udev
module, I guess), and that failing to do so will break your system.
Solution:
- Boot from your Fedora boot disc.
- Load up the rescue image (type
linux rescue
and hit enter) when you are asked which image to use. - Type
chroot /mnt/sysimage
when booted, to boot into your system. - Now, type
apt-get install kernel
. A list of options will be presented. Choose the one which fits your system best and has the highest version number. I chose kernel-2.6.9-1.681_FC3. - Install the new kernel. In my case it was
apt-get install kernel#2.6.9-1.681_FC3
. - Also in my case, the install fsked up, in that it did not create an entry in
/boot/grub/grub.conf
for the new kernel. So, edit it, and add a new entry. In my case, I added these to the end of the file:title Fedora Core 3 (2.6.9-1.681_FC3) root (hd0,0) kernel /boot/vmlinuz-2.6.9-1.681_FC3 ro root=LABEL=/1 rhgb quiet initrd /boot/initrd-2.6.9-1.681_FC3.img
- Reboot, making sure to remove the boot CD. When the Grub screen comes up, choose the new kernel.
- That should work fine. If all is well, then edit
/boot/grub/grub.conf
again, and change the default to the new setup.