Tuesday, February 13, 2007

Binary Upgrade of FreeBSD 6.1 to 6.2

Last year I described performing a binary upgrade of FreeBSD 6.0 to 6.1. Today I tried a similar process for FreeBSD 6.1 to 6.2, using Colin Percival's instructions for 6.1 to 6.2-RC1.

shuttle01# mkdir /usr/upgrade
shuttle01# cd /usr/upgrade
shuttle01# fetch http://www.daemonology.net/freebsd-update/upgrade-to-6.2.tgz
upgrade-to-6.2.tgz 100% of 18 kB 120 kBps
shuttle01# tar -xzf upgrade-to-6.2.tgz
shuttle01# cd upgrade-to-6.2
shuttle01# sh freebsd-update.sh -f freebsd-update.conf -d /usr/upgrade
-r 6.2-RELEASE upgrade
Looking up update.FreeBSD.org mirrors... 1 mirrors found.
Fetching public key from update1.FreeBSD.org... done.
Fetching metadata signature for 6.1-RELEASE from update1.FreeBSD.org... done.
Fetching metadata index... done.
Fetching 2 metadata files... done.
Inspecting system... done.

The following components of FreeBSD seem to be installed:
kernel/smp world/base world/dict world/doc world/manpages

The following components of FreeBSD do not seem to be installed:
kernel/generic src/base src/bin src/contrib src/crypto src/etc src/games
src/gnu src/include src/krb5 src/lib src/libexec src/release src/rescue
src/sbin src/secure src/share src/sys src/tools src/ubin src/usbin
world/catpages world/games world/info world/proflibs

Does this look reasonable (y/n)? y

Fetching metadata signature for 6.2-RELEASE from update1.FreeBSD.org... done.
Fetching metadata index... done.
Fetching 1 metadata patches. done.
Applying metadata patches... done.
Fetching 1 metadata files... done.
Inspecting system... done.
Preparing to download files... done.
Fetching 2703 patches.....10....20....30....40....50....60....70....80...
...edited...
Applying patches... done.
Fetching 5315 files... done.
The following files will be removed as part of updating to 6.2-RELEASE-p1:
...edited...
The following files will be added as part of updating to 6.2-RELEASE-p1:
...edited...
The following files will be updated as part of updating to 6.2-RELEASE-p1:
...edited...
shuttle01# sh freebsd-update.sh -f freebsd-update.conf
-d /usr/upgrade install
Installing updates...
Kernel updates have been installed. Please
reboot and run "freebsd-update.sh install" again to
finish installing updates.
...reboot...
shuttle01# cd /usr/upgrade/upgrade-to-6.2
shuttle01# sh freebsd-update.sh -f freebsd-update.conf -d /usr/upgrade install
Installing updates... done.
shuttle01# uname -a
FreeBSD shuttle01.taosecurity.com 6.2-RELEASE FreeBSD 6.2-RELEASE #0:
Fri Jan 12 11:05:30 UTC 2007
root@dessler.cse.buffalo.edu:/usr/obj/usr/src/sys/SMP i386

That's it -- very easy. I believe we'll see this integrated into 6-STABLE and then appear in 6.3 RELEASE. I love it.

8 comments:

z0mbix said...

Thanks Richard.

I've used freebsd-update to install binary patches, but didn't know I could upgrade the whole OS with it. I've just completed an almost identical upgrade on my server which worked very well indeed.

Cheers z0mbix

Joe said...

It *looks* like portupgrade in 6.2 is broken.

http://lists.freebsd.org/pipermail/freebsd-ports-bugs/2007-February/112206.html

Anonymous said...

Yeah, this stuff works great. freebsd-update is now bolted into freebsd, and binary updates are sanctioned. It is a very light wrapper that creates the ability to binarily upgrade from release to release, so we should be seeing more of this in the future

- Mick Russom

jawrat said...

Question...if one has a custom kernel, will this upgrade procedure work? i'm guessing no.

Richard Bejtlich said...

Your custom kernel will be replaced.

jawrat said...

So, I could simply rebuild the kernel then right? after getting the latest image src of course...

Does this update also update everything that's currently on the server as well, i.e. sshd, ntpd, etc?

Alvin said...

Should something be done with my installed ports after this binary upgrade?

buy wow gold said...
This comment has been removed by a blog administrator.