≡ Menu

Upgrade FreeBSD 7.x to 7.2 Stable Release

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

Share this tutorial on:

Your support makes a big difference:
I have a small favor to ask. More people are reading the nixCraft. Many of you block advertising which is your right, and advertising revenues are not sufficient to cover my operating costs. So you can see why I need to ask for your help. The nixCraft, takes a lot of my time and hard work to produce. If you use nixCraft, who likes it, helps me with donations:
Become a Supporter →    Make a contribution via Paypal/Bitcoin →   

Don't Miss Any Linux and Unix Tips

Get nixCraft in your inbox. It's free:



{ 12 comments… add one }
  • robert May 5, 2009, 7:43 am

    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?

  • Mike May 12, 2009, 10:10 am

    You can jump from 3.x to 7.2 -> Read /usr/src/UPDATING

  • Aigars August 17, 2009, 10:15 pm

    Just be aware – this is a loooong process ;)

  • SCSI August 18, 2009, 12:54 am

    Vary USEFULL !!! There are thousands of do this do that…this simple works…THANKS man.

  • Richard Bejtlich August 22, 2009, 8:02 pm

    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?

  • Bakhtiyor September 28, 2009, 5:02 am

    Hello everybody!
    This guide help me to restore my FreeBSD machine. Many Thanks!

  • khentiamentiu October 7, 2009, 1:54 am

    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?

  • adeknaga October 7, 2009, 5:59 pm

    thank’s work for me

  • adeknaga October 7, 2009, 6:00 pm

    how to update from 6.4 stable to 7.2 pls give me clue

  • jim October 7, 2009, 7:25 pm

    Of course the “single user mode” kills this for remote machines. Possibly useful link –
    http://people.freebsd.org/~rse/upgrade/

  • jay November 8, 2009, 9:20 pm

    i never reboot into single user mode when updating across minor versions. never lost a colo’d box either.

  • Luke Hollins November 30, 2009, 2:55 pm

    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

Leave a Comment

You can use these HTML tags and attributes: <strong> <em> <pre> <code> <a href="" title="">


   Tagged with: , , , , , , , , , , , , , , ,