As it turns out, upgrading FreeBSD is not as difficult as I thought it would be. The process is downright simple for the most part. The trickiest part is running mergemaster, and upgrading the contents of /etc. The risk is somewhat mitigated if you backup /etc before you run the mergemaster command.
Here is how I upgraded my system from FreeBSD 5.3.
The first thing to do is to create a file for updating the FreeBSD source tree. I called this file “standard-supfile”, and placed it in /etc. The file looks like this:
*default host=cvsup2.FreeBSD.org
*default base=/usr
*default prefix=/usr
*default release=cvs tag=RELENG_5_4
*default delete use-rel-suffix
*default compress
src-all
To update the source, run the following command:
onion# cvsup -g -L 2 /etc/standard-supfile
This takes a while, so get some coffee and get to work on that programming project you’ve been putting off… Once the source has been updated, it’s time to rebuild the system.
onion# cd /usr/src/sys/i386/conf
onion# cp -p GENERIC MYKERNAL
onion# config MYKERNAL; cd ../compile/MYKERNAL; make depend; make;
onion# make install;
onion# tar cf /tmp/etc.tar /etc
onion# mergemaster
I like to make a copy of the GENERIC file, because any changes I may make to it will get wiped out next time I update the source. By making a copy of the file and adding my changes to the copy, those changes are preserved.
After running mergemaster, reboot and /etc/motd should be updated to display the current version of the system.