Server Fault is a question and answer site for system and network administrators. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

Since manually upgrading from source (cvsup) is deprecated and the recommendation is to use freebsd-update:

What's the best way to upgrade (e.g. 9.1 to 9.2) while keeping a non-generic (XENHVM) kernel?

I'm presently using a mix between freebsd-update and manually installing from .../9.2-RELEASE/src.txz but I would like to know if anyone else as a better/faster/cleaner/easier way of doing it.

share|improve this question
Upgrading from source is not deprecated, only the use of cvs is. Use svn (subversion) instead to synchronize your source tree and upgrade from source as usual. – Ouki Oct 24 '13 at 1:25
As a side-note for the future: it seems that starting from 10.0, the GENERIC kernel will contain XENHVM. – sstn Oct 25 '13 at 11:46
up vote 2 down vote accepted

Use freebsd-update to upgrade the rest of the system and rebuild the kernel from sources as before. If the kernel has changed, freebsd-update will update the sources so you can then build your custom kernel as before.

Bear in mind that some updates will not make any kernel changes and will not require a kernel rebuild.

share|improve this answer
Also be sure to specify the XENHVM kernel configuration file... cd /usr/src && make buildkernel KERNCONF=XENHVM && make installkernel KERNCONF=XENHVM as per directions in the Makefile Also consult UPDATING prior to doing any updates. – Lucas Holt Apr 30 '14 at 21:02

You could setup your own freebsd-update server which would allow you to use a custom kernel.

From the documentation:

If you build your own release using the native make release procedure, the freebsd-update-server code will work from your release. As an example, you may build a release without ports or documentation and add a custom kernel. After removing functionality pertaining to the documentation subroutine and altering the buildworld() subroutine in scripts/build.subr, the freebsd-update-code will successfully build update code on this release.

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.