FreeBSD 6.0 to 6.1 binary upgrade
In my last post here I mentioned that I was writing a script to simplify and automated the FreeBSD binary upgrade instructions I have been providing. Consider it done, at least as far as the problem of FreeBSD 6.0 to 6.1 upgrades are concerned.Using this script, I just upgraded the FreeBSD Portsnap buildbox to FreeBSD 6.1. The following is a transcript of the upgrade process (generated using script(1)), with a few spaces added to help web browsers wrap the text:
Script started on Thu Jun 29 05:33:18 2006
[cperciva ~]$ sudo bash
[root ~]# cd /usr/
[root /usr]# fetch http://www.daemonology.net/freebsd-upgrade-6.0-to-6.1/upgrade-6.0-to-6.1.tgz
upgrade-6.0-to-6.1.tgz 100% of 4706 kB 453 kBps 00m00s
[root /usr]# sha256 upgrade-6.0-to-6.1.tgz
SHA256 (upgrade-6.0-to-6.1.tgz) = 29075fc5711e0b20d879c69d12bbe5414c1c56d597c8116da7acc0d291116d2f
[root /usr]# tar -xzf upgrade-6.0-to-6.1.tgz
[root /usr]# cd upgrade && ./upgrade.sh
Examining system... done.
The following components of FreeBSD seem to be installed:
kernel|generic world|base world|dict world|doc world|manpages
The following components of FreeBSD do not seem to be installed:
kernel|smp src|base src|bin src|contrib src|crypto src|etc src|games
src|gnu src|include src|krb5 src|libexec src|lib 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
Examining system (this will take a bit longer)... done.
The following files from FreeBSD 6.0 have been modified since they were
installed, but will be deleted or overwritten by new versions:
/usr/share/examples/etc/group /usr/share/man/whatis
The following files from FreeBSD 6.0 have been modified since they were
installed, and will not be touched:
/etc/crontab /etc/hosts /etc/mail/aliases /etc/manpath.config
/etc/master.passwd /etc/motd /etc/passwd /etc/pwd.db /etc/shells
/etc/spwd.db /var/db/locate.database /var/log/sendmail.st
The following files from FreeBSD 6.0 have been modified since they were
installed, and the changes in FreeBSD 6.1 will be merged into the
existing files:
/etc/group
Does this look reasonable (y/n)? y
Preparing to fetch files... done.
Fetching 1728 patches....10....20....30....40....50 ....60....70....80....90....100 ....110....120....130....140....150 ....160....170....180....190....200 ....210....220....230....240....250 ....260....270....280....290....300 ....310....320....330....340....350 ....360....370....380....390....400 ....410....420....430....440....450 ....460....470....480....490....500 ....510....520....530....540....550 ....560....570....580....590....600 ....610....620....630....640....650 ....660....670....680....690....700 ....710....720....730....740....750 ....760....770....780....790....800 ....810....820....830....840....850 ....860....870....880....890....900 ....910....920....930....940....950 ....960....970....980....990....1000 ....1010....1020....1030....1040....1050 ....1060....1070....1080....1090....1100 ....1110....1120....1130....1140....1150 ....1160....1170....1180....1190....1200 ....1210....1220....1230....1240....1250 ....1260....1270....1280....1290....1300 ....1310....1320....1330....1340....1350 ....1360....1370....1380....1390....1400 ....1410....1420....1430....1440....1450 ....1460....1470....1480....1490....1500 ....1510....1520....1530....1540....1550 ....1560....1570....1580....1590....1600 ....1610....1620....1630....1640....1650 ....1660....1670....1680....1690....1700 ....1710....1720.... done.
Applying patches... done.
Fetching 434 files....10....20....30....40....50 ....60....70....80....90....100 ....110....120....130....140....150 ....160....170....180....190....200 ....210....220....230....240....250 ....260....270....280....290....300 ....310....320....330....340....350 ....360....370....380....390....400 ....410....420....430.. done.
Decompressing and verifying... done.
Attempting to automatically merge configuration files... done.
The following changes, which occurred between FreeBSD 6.0 and FreeBSD
6.1, have been merged into /etc/group:
--- merge/old/etc/group Thu Jun 29 05:39:28 2006
+++ merge/new/etc/group Thu Jun 29 05:39:28 2006
@@ -28,5 +28,6 @@
nobody:*:65534:
<CENSORED>:*:1001:
<CENSORED>:*:1002:
_dhcp:*:65:
<CENSORED>:*:1003:
+audit:*:77:
Does this look reasonable (y/n)? y
Installing new kernel into /boot/GENERIC... done.
Moving /boot/kernel to /boot/kernel.old... done.
Moving /boot/GENERIC to /boot/kernel... done.
Removing schg flag from existing files... done.
Installing new non-kernel files... done.
Removing left-over files from FreeBSD 6.0... done.
To start running FreeBSD 6.1, reboot.
[root /usr/upgrade]# exit
exit
[cperciva ~]$ exit
exit
Script done on Thu Jun 29 05:41:24 2006
Not shown above is the shutdown -r now needed to reboot into the newly upgraded FreeBSD 6.1 system, of course. Including the reboot, this upgrade took under 11 minutes, and for most of that time it was running unattended while I read slashdot -- not bad for picking up 6 months worth of bug fixes and performance improvements.
RIP FreeBSD 4.10 (May 27, 2004 -- May 31, 2006)
As I wrote this morning in an email to the FreeBSD -Security and -Stable mailing lists, FreeBSD 4.10 has 'expired' and is no longer supported effective June 1, 2006. Other notable upcoming branch EoL dates are FreeBSD 5.3 and FreeBSD 5.4 at the end of October 2006, and FreeBSD 6.0 at the end of November 2006.This means that a lot of people should be upgrading to new releases soon. I've published some instructions in the past for performing such upgrades using the released ISO images, but even these simplified instructions aren't foolproof. As part of the work I'm doing right now on FreeBSD Update I expect to put together a much simpler release-to-release upgrade script.
Watch this space!