I tried a binary upgrade method, but it failed due to custom kernel installed on my FreeBSD 7.1_p5 64 bit AMD systems. How do I upgrade my FreeBSD server using source code method?
The procedure for doing a source code based update is described below:
Step # 1: Get updated source code
WARNING! These examples may crash your computer if not executed properly. Make a backup of your system, Sql and configuration before you do this. You need to use cvsup command to get latest source code.
# cp /usr/share/examples/cvsup/standard-supfile /root/supfile
# vi /root/supfile
Set host as follows:
host=cvsup1.us.FreeBSD.org
CVSup servers for FreeBSD are running at the various sites around the world. Finally, update cvs tag to 7.2:
release=cvs tag=RELENG_7_2
Save and close the file. Get updated source tree, enter:
# cd /usr/src
# csup /root/supfile
Open /usr/src/UPDATING and read important information regarding upgrade procedure including known issues, bugs and workaround.
# vi /usr/src/UPDATING
Step # 2: Build new compiler and related tools
First compiles the new compiler and a few related tools, then uses the new compiler to compile the rest of the system.
# cd /usr/src/
# make buildworld
Step # 3: Build and install new kernel
Now, you have latest compiler and other tools, just build kernel:
# make buildkernel
# make installkernel
You can also specify kernel custom name using KERNCONF. If your kernel config file name is onetouch, enter:
# make buildkernel KERNCONF=onetouch
# make installkernel KERNCONF=onetouch
Finally, you need to reboot system and boot into a single user mode using boot -s from the loader prompt:
# shutdown -r now
Step # 4: Install the base system 7.2
First, mount the system:
# mount -a -t ufs
To install some system configuration files that are required by the new base system, enter :
# mergemaster -p
Accept the changes as promoted as per your configuration. Finally, install the base system:
# cd /usr/src
# make installworld
Finally, merge your 7.2 configuration files, enter:
# mergemaster -i
Now, you have FreeBSD 7.2 new kernel and base system installed. Just reboot the server:
# shutdown -r now
Make sure everything is working:
# sockstat -6
# sockstat -4
# tail -f /var/log/messages
# more /var/run/dmesg.boot
# tail -f /path/to/app/log/file
Update FreeBSD Applications
Now you are running new FreeBSD 7.2 stable environment. All you have to do is upgrade installed ports tree using portsnap, enter:
# portsnap fetch update
List outdated applications, enter:
# pkg_version -vl '<'
Finally, check all ports, update as necessary (portmaster is not part of base system, you need to grab it from /usr/ports/ports-mgmt/portmaster) :
# portmaster -a
Featured Articles:
- 20 Linux System Monitoring Tools Every SysAdmin Should Know
- My 10 UNIX Command Line Mistakes
- 10 Greatest Open Source Software Of 2009
- Top 5 Email Client For Linux, Mac OS X, and Windows Users
- Top 20 OpenSSH Server Best Security Practices
- Top 10 Open Source Web-Based Project Management Software
- Top 5 Linux Video Editor Software
- Email FAQ to a friend
- Download PDF version
- Printable version
- Comment RSS feed
- Last Updated: 05/3/09



{ 12 comments… read them below or add one }
Hi, thanks for this guide.
Are you sure that you can upgrade from 7.0 to 7.2, like this? So, you can jump minor versions.
Or should I first go from 7.0 to 7.1 and after that from 7.1 to 7.2?
You can jump from 3.x to 7.2 -> Read /usr/src/UPDATING
Just be aware – this is a loooong process ;)
Vary USEFULL !!! There are thousands of do this do that…this simple works…THANKS man.
If you use tag=RELENG_7_2 you’re not running STABLE. You’re running the “release” or security branch for 7.2.
http://www.freebsd.org/doc/en/books/handbook/cvs-tags.html
If you want to run STABLE you should set tag=RELENG_7 . Is that what you wanted instead?
Hello everybody!
This guide help me to restore my FreeBSD machine. Many Thanks!
I am trying to upgrade from 6.3 to 7.2. Is this too much of a jump to use a procedure like the above?
thank’s work for me
how to update from 6.4 stable to 7.2 pls give me clue
Of course the “single user mode” kills this for remote machines. Possibly useful link –
http://people.freebsd.org/~rse/upgrade/
i never reboot into single user mode when updating across minor versions. never lost a colo’d box either.
That upgrade method worked great, one thing that caught me after rebooting: something changed with alias IPs on similar networks – in 7.2 any alias IPs on an existing network need to have the netmask changed to 0xffffffff