freebsd-update process clarification

Polytropon freebsd at edvax.de
Thu Apr 9 03:34:08 UTC 2015


On Wed, 08 Apr 2015 19:51:45 -0700, Ross Penner wrote:
> I'm currently running 10.0 and I wanted to update to 10.1 using
> freebsd-update. I've been following the guide on
> http://www.freebsd.org/doc/en/books/handbook/updating-upgrading-freebsdupdate.html
> 
> I have a custom kernel and I don't seem to have anything at
> /boot/GENERIC
> # ls /boot/GENERIC
> ls: /boot/GENERIC: No such file or directory

This is to be expected: A custom kernel will be installed
as /boot/kernel/kernel by default.



>  so I followed the instructions when running 9.x and above and ran:
> # cd /usr/src
> # make kernel __MAKE_CONF=/dev/null SRCCONF=/dev/null
> 
> This seem to create and install the GENERIC kernel as advertised, but
> there still isn't anything in /boot/GENERIC
> # ls /boot/GENERIC
> ls: /boot/GENERIC: No such file or directory

Correct. The GENERIC kernel will also be installed as
/boot/kernel/kernel.



> I then ran:
> # freebsd-update -r 10.1-RELEASE upgrade
> # freebsd-update install
> # nextboot -k GENERIC
> Error: /boot/GENERIC doesn't exist. Use -f to override.
> 
> The handbook indicates that it's pretty important to have GENERIC there
> before I reboot and finish the update.
> 
> Is there something I missed? Can somebody help with this?

Allow me to quote from the handbook page you mentioned,
from 24.2.2.:

Only the GENERIC kernel can be automatically updated by
freebsd-update. If a custom kernel is installed, it will have to
be rebuilt and reinstalled after freebsd-update finishes
installing the updates. However, freebsd-update will detect and
update the GENERIC kernel if /boot/GENERIC exists, even if it is
not the current running kernel of the system.

Note: 

Always keep a copy of the GENERIC kernel in /boot/GENERIC. It
will be helpful in diagnosing a variety of problems and in
performing version upgrades. Refer to either Section 24.2.3.1,
"Custom Kernels with FreeBSD 9.X and Later" or Section 24.2.3.2,
"Custom Kernels with FreeBSD 8.X" for instructions on how to get
a copy of the GENERIC kernel.

* end quote *

So you have to copy /boot/kernel/kernel (the GENERIC kernel)
to /boot/GENERIC.

Also have a look at the options for _which_ kernel to boot,
to be set in /boot/loader.conf:

kernel="kernel"         # /boot sub-directory containing kernel and modules
bootfile="kernel"       # Kernel name (possibly absolute path)

This allows you to have more than one kernel installed on
your system (e. g., the stock GENERIC kernel, and your
own custom kernel) at the same time, and letting the boot
loader decide which one to boot.

As you have read from the handbook, freebsd-update will
not be able to update your custom kernel. So after the
freebsd-update run (which will give you the GENERIC
kernel or leave the old custom kernel in place), you
will have to run your kernel building and installation
process ("make kernel") manually, _then_ reboot.



-- 
Polytropon
Magdeburg, Germany
Happy FreeBSD user since 4.0
Andra moi ennepe, Mousa, ...


More information about the freebsd-questions mailing list