# Updating kernel manually from CD



## hmallett (Feb 20, 2014)

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 
	
	



```
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?


----------



## SirDice (Feb 20, 2014)

I'm guessing you have a custom kernel. freebsd-update(8) can only update GENERIC so you may need to rebuild your custom kernel.


----------



## hmallett (Feb 20, 2014)

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.


----------



## SirDice (Feb 20, 2014)

To get the kernel from the CD you only have to extract kernel.tbz; `tar -C / -zxvf ${mountpoint}/usr/freebsd-dist/kernel.tbz`


----------

