I just finished upgrading the kernel on my machine to 2.2.9.  The gory
details are below, but here's the executive summary: (1) make _sure_ you
have a _working_ bootdisk for your system (# mkbootdisk <version>), (2)
make sure you update /etc/lilo.conf to boot your new kernel, (3) make
sure you run /sbin/lilo once you've done (2), and (4) pay attention to
any warning messages you may get from lilo.  I build the new kernel at
about 0110 this morning, and didn't get to bed (with it working) until
about 0430.

        I decided to upgrade the kernel for a few reasons; primary among them
were (1) hey, it's new, and (2) VMware was complaining about the cd-rom
drivers in my previous (mandrake default) 2.0.36 kernel.  Because I'm a
bit of a geek (or maybe just because I'm nuts), I decided to download
the source tarball and install it from there.  So, off I went to
http://www.linuxhq.org to check out Jon Niehof's excellent "Moving to
kernel 2.2" document.

        After reading that document and checking the versions installed on my
system, it turned out that I needed to upgrade modutils and a couple of
other packages.  I also needed to install bzip2, since I'd downloaded
the .bz2 kernel.  With that done, I cd'd to /usr/src and untarred the
kernel source archive.  Oops--thanks to the symlink, all the source went
into the 2.0.36 directory.  Remove the linux symlink, untar again,
rename the linux directory to linux-2.2.9, and re-make the symlink.  To
restore the 2.0.36 directory to its former condition, would I just
delete it and reinstall the kernel-source package?

        Once everything was unpacked, I ran make xconfig and stepped through
the configuration process.  Following that, make dep, make clean, make
bzImage (I didn't use modules for most things), make modules, make
modules_install all completed (apparently) properly.

        Went to /lib/modules, and made sure preferred was linked to 2.2.9. 
Copied bzImage to /boot/vmlinuz-2.2.9, then linked that to vmlinuz. 
Then edited lilo.conf appropriately, with entries for the old and new
kernels.  When I ran lilo after that, I got a warning message that
"/dev/sda3 is not the first disk", but I ignored it--after all, my
system had been starting from /dev/sda3 all along without any problems.

        Then I rebooted, and that's where the problems started.  I got to "LI",
and then everything stopped, except that my printer was trying to feed
paper and print something.  And, not heeding the lessons from my brief
time in the Boy Scouts, I was not prepared.  I didn't have a boot disk;
I didn't even have my Mandrake CD (I had loaned it to a friend).  I did
have a RedHat 5.2 disc, though, so I tried making boot and rescue disks
from that--didn't work, as you can guess (that's what the part about
"this can't be used as a rescue disk" means).

        I'm not quite panicking yet, but I'm getting pretty worried--I don't
have a way to boot my (Linux) system!  Finally, I hit on this idea:
clear off some space on a spare hard drive, install a minimal
configuration of RedHat 5.2 on that, and answer Yes when it asks to make
a boot disk.  Then, I can use that boot disk to either (1) boot linux
root=/dev/sda3 (preferred, obviously), or (2) boot the rescue disk. 
Quite thankful for Partition Magic 4 (which can resize e2fs partitions),
I tried this.  The installation went fine, it made the boot disk, and
then said it was finished.

        OK, I'm going to boot the new installation first, just to make sure
it'll work at all.  It worked fine, saw my SCSI adapter, and was able to
mount those drives.  Cool.  So I reboot again from the boot disk, and
tell it to use /dev/sda3 as my root device.  What?  Error 0x10? D@#%.  I
try it a few more times, with the same result.  Apparently the disk that
I used for the boot disk is flaky, and doesn't want to boot.

        Out comes the RedHat 5.2 installation disk again, as I tell it to
"upgrade" the existing installation.  Of course, no packages need to be
upgraded, but it offers to make another boot disk (which is what I was
hoping for).

        Now I boot off the (new) boot disk, it works fine (no error 0x10 this
time), but it doesn't detect my SCSI host.  It can still see the spare
drive where I installed RedHat (which is an IDE drive), and after
booting, I can insmod ncr538xx (or whatever that one is), and it will
detect the host and devices.  Since I'm booted into that system, I try
running mkbootdisk, and it builds a boot disk, but I get warnings from
mkinitrd, and that boot disk doesn't see the SCSI host either.  I'm
guessing that the reason for this is that the (RedHat) modules directory
is named 2.0.36-0.7, so that is the argument I need to give to
mkbootdisk, but that's confusing mkinitrd.

        After a bit more hairpulling, I try booting again from the first
(flaky) boot disk (again setting root to /dev/sda3), and after a couple
of tries, it works!  I immediately put in a freshly-formatted floppy and
ran mkbootdisk 2.2.9.  Then went to /etc, checked out lilo.conf, and ran
/sbin/lilo again.  It (again) gave me the warning about /dev/sda3 not
being the first disk.  Now paying closer attention to such things, I
shut down, unplugged the IDE drive, restarted (from the new boot
floppy), and ran lilo again.  Success!

        At this point, I figure I'm on the home stretch.  I reboot again, from
my hard drive, and it boots.  I get a couple of error messages, though,
like "modprobe: can't load module net-pf-4".  Hmmm--did I forget to
upgrade net-tools?  I didn't think so, but for good measure, I went
online to one of the linux-mandrake mirrors and downloaded
net-tools-150,  along with their other recommended packages (including
initscripts, which I had forgotten all about).  I installed these
packages and (crossing my fingers) rebooted.  Success!

        After I'd done all that, I still needed to reinstall vmware to get the
system to find the vmmon module.

--
Dan Brown, KE6MKS, [EMAIL PROTECTED]
Meddle not in the affairs of dragons, for you are crunchy and taste good
with ketchup.

Reply via email to