Updating kernel manually from CD

I have a machine which has been happily running 8.3 for some time, and is being updated (finally) to 8.4.

Using freebsd-update(8), the process seemed to go as normal, through the installation of the kernel, reboot, installation of the userland, reboot. At which point I noticed that while the userland appeared to be from 8.4 (ssh for example is 6.1p1), the kernel is still the 8.3 kernel. How do I know this? uname -a shows 8.3, and strings /boot/kernel/kernel shows 8.3 too.

freebsd-update -r 8.4-RELEASE upgrade doesn't work (it gives the error
Code:
cannot open files/.gz: No such file or directory
Then wants to delete lots of files), so I decided to try installing a new generic kernel from the installation CD.
Mounted the 8.4 disc 1 CD, and ran 8.4-RELEASE/kernel/install.sh generic. The file modification times in /boot/kernel changed to Jun 2 2013 (as expected).

Rebooted, and we still have 8.3! So I wondered if /boot/kernel/kernel is the kernel which is actually being loaded. sysctl kern.bootfile says it is.

Left the system overnight, and when I've looked at it again this morning, the file /boot/kernel/kernel is the 8.3 kernel again (I'm pretty sure it was the 8.4 kernel when I left it last night), while the kernel module files appear to be from 8.4 (by comparing the file size with another 8.4 system).

I feel like I am missing something fundamental here. What should I be doing to install an 8.4 kernel properly? I have considered building from source, but won't that prevent freebsd-update(8) from patching it again in the future?
 
Nope, it's a generic kernel. freebsd-update has been run on this system many times before, including upgrades, with no problem, which is why I'm unsure not only of how to fix this, but also the root cause.
 
To get the kernel from the CD you only have to extract kernel.tbz; tar -C / -zxvf ${mountpoint}/usr/freebsd-dist/kernel.tbz
 
Back
Top