MikeL's FreeBSD howto - Upgrading Versions

This is basically a checklist of how to upgrade an existing FreeBSD installation from one STABLE version to another. The intent is not to cover everything in detail, merely to point you to each of the tasks that must be performed.

Related manual pages: FreeBSD.org, Handbook Ch. 19.2, (Current Vs. Stable).

DISCLAIMER!
There are about a billion things that can go wrong in this process. I make no gaurantees that this process will work for you at all. Vintners.Net cannot be held responsible in any way if your system gets messed up by following procedures on this page.

This is merely a reminder page for me, made public in case it will help you. The only real reference is the FreeBSD handbook page in the link above. Best of luck!

----------------------
Notes from Dec-2008 -- upgrade from 5.5-STABLE to 7.0-STABLE.
You must do this in multiple steps, one for each major revision. When I tried cvsup to 7.0, I couldn't get even a start compiling. I changed the cvsup back to 6.0 and was able to build...

cvsup the world.
  default release=cvs tag RELENG_6_0
  src-all

Now do make buildworld.

My machine is acting (among other things) as a firewall, so I am forced to make a custom kernel. Unfortunately, I have been unable to get directly to a new custom kernel in the same pass as the make buildworld. What I ended up doing was to follow the normal directions (from make buildkernel without KERNCONF=file`) to build a default kernel. Now follow the remaining instructions (reboot, mergemaster, etc.) to get the system running in the new version (v6.0), then go back and make the custom kernel. You'll simply have a system that is not acting as a firewall during the time you rebuild the new custom kernel. This is highly lame if you're in a production environment, but that seems to be the way that it is...

FYI: When trying to go directly to custom kernel, there were two problems. (Note that the errors below were for the v6.0 to v7.0 transition -- the v5.5 to v6.0 was similar). First was that /usr/sbin/config would give an error:

ERROR: version of config(8) does not match kernel!
config version = 600003, version required = 600004
To get past this, I then explicitly called out the newly made /usr/obj/dskda1/src/tmp/legacy/usr/sbin/config, and was able to procede further.
config: Error: device "lnc" is unknown
config: 1 errors
WARNING: duplicate option `DEV_ISA' encountered.
WARNING: duplicate device `isa' encountered.
WARNING: duplicate option `DEV_NPX' encountered.
WARNING: duplicate device `npx' encountered.
WARNING: duplicate option `DEV_MEM' encountered.
WARNING: duplicate device `mem' encountered.
WARNING: duplicate option `DEV_IO' encountered.
WARNING: duplicate device `io' encountered.
*** Error code 1
The dups all appeared in the file DEFAULTS, so I simply commented them out of my config file. For the unknown, I have no lance chip based network cards, so I simply commented this out as well.

However, once I got rid of all the problems this way, make buildkernel KERNCONF=file would still blow chunks with a bunch of "malformed conditional" errors. It was not obvious to me how to get past this, so I gave up and went back to building an interim generic kernel.


Copyright © 1995-2017 Mike Lempriere