Upgrade FreeBSD 7.x to 7.2 Stable Release

by Vivek Gite on May 3, 2009 · 12 comments

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:

Share this with other sys admins!
Facebook it - Tweet it - Print it -

{ 12 comments… read them below or add one }

1 robert May 5, 2009

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?

Reply

2 Mike May 12, 2009

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

Reply

3 Aigars August 17, 2009

Just be aware – this is a loooong process ;)

Reply

4 SCSI August 18, 2009

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

Reply

5 Richard Bejtlich August 22, 2009

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?

Reply

6 Bakhtiyor September 28, 2009

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

Reply

7 khentiamentiu October 7, 2009

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?

Reply

8 adeknaga October 7, 2009

thank’s work for me

Reply

9 adeknaga October 7, 2009

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

Reply

10 jim October 7, 2009

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

Reply

11 jay November 8, 2009

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

Reply

12 Luke Hollins November 30, 2009

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

Reply

Leave a Comment

You can use these HTML tags and attributes for your code and commands: <strong> <em> <ol> <li> <u> <ul> <blockquote> <pre> <a href="" title="">




Previous post:

Next post: