UNIX - FreeBSD - Upgrade von 5.4 auf 7.2

FreeBSD Upgrade 5.4 auf 7.2 in 6 Stunden per SSH


Diese Seite beschreibt in kurzen Worten das Upgrade einer 3 Jahre alten Maschine mit FreeBSD 5.4 auf ein aktuelles FreeBSD 7.2

Jedoch kann es bei einem solchen Update ungeheuer knallen, von daher sollte man Sicherstellen das die Maschine zur Zeit nicht wirklich benutzt wird

Wichtige Vorraussetzungen


Alle Schritte sind via SSH durchgeführt worden. Es ist kein Zugriff auf die Hardware vor Ort nötig

Bevor man anfängt sollte man den Benutzer mit dem man online geht und den root Benutzer auf dessen Loginshell überprüfen und ggf. zurück setzen. Alles was unter /usr/local liegt könnte nach dem Upgrade erst einmal nicht mehr laufen. Das wäre dann schlecht für Benutzer die die bash z.b. verwenden. Man muss jedoch nur die Personen ändern die das Update machen

Aus der /etc/make.conf sollten alle Kernel Einstellungen und Compilersettings auskommentiert werden. Das kann und wird Probleme Verursachen. Die Optimierungen können später wenn das 7'er drauf ist noch nach gezogen werden

Upgrade des aktuellen Systems


Als erstes Updated man den Source Tree der aktiv laufenden Version. Das ist nötig damit man auf den letzten Stand der aktuellen Version ist

server# cd /usr/src
server# make update
server# make buildkernel
server# make installkernel
server# make buildworld
server# make installworld
server# mergemaster -p
server# mergemaster
server# sync
server# reboot

Upgrade auf 6.x-STABLE


Man editiert die Datei /usr/share/examples/cvsup/stable-supfile und trägt dort die 6 ein und holt sich das System ganz frisch ... bitte nicht updaten, das geht schief ... sondern frisch holen

server# cd /usr
server# rm -rf /usr/src /usr/obj
server# cvsup -h host /usr/share/examples/cvsup/stable-supfile


danach muss man zuerst das config Programm für den Kernel erneuern

server# cd /usr/src/usr.sbin/config
server# make clean
server# make
server# make install


danach macht man das Update wie oben und rebootet wieder ...

server# cd /usr/src
server# make buildkernel
server# make installkernel
server# make buildworld
server# mergemaster -p
server# make installworld
server# rm -rf /etc/rc.d /etc/defaults /etc/periodic
server# mergemaster -i
server# sync
server# reboot

Upgrade auf 7.2-STABLE


So nun haben wir das 6.x drauf ... das gleiche macht man nun mit der 7'er ...

Man editiert wieder die Datei /usr/share/examples/cvsup/stable-supfile und trägt dort die 7 ein und holt sich wieder ein frisches System

server# cd /usr
server# rm -rf /usr/src /usr/obj
server# cvsup -h host /usr/share/examples/cvsup/stable-supfile


Nun nur noch einmal alles durch den Kompiler jagen

server# cd /usr/src
server# mergemaster -p
server# make buildworld
server# make installworld
server# make buildkernel
server# make installkernel
server# rm -rf /etc/rc.d /etc/defaults /etc/periodic
server# mergemaster -i
server# sync
server# reboot

Ports nachziehen


Wenn nun das System wieder hochkommt muss man sich an die Ports machen. Um das ganze zu beschleunigen sollte man alle Ports runterwerfen die keine speziellen System Konfigurationen verwenden. Dazu zählen zum Beispiel bash, wget, screen, lynx, mc und so weiter. Die kann man wenn man will als Binary Package drauf ziehen um Zeit zu sparen.

Das Portupgraden ist auf jeden Fall sehr fummelig, da teilweise die Packete umbenannt worden sind, oder einfach nicht mehr existieren. Jedes einzelne Packet muss entsprechend einzelnd begutachtet werden.

Ein portupgrade -f hilft da nicht unbedingt ...

Als ersters holt man sich die neusten Ports und ersetzt portupgrade ganz brutal

server# cd /usr
server# rm -rf /usr/ports
server# cvsup -h host /usr/share/examples/cvsup/ports-supfile
server# pkg_delete -f portupgrade\*
server# cd /usr/ports/ports-mgmt/portupgrade
server# make install
server# pkgdb -F


Danach macht man mit den Paketen weiter

Berühmte Letzten Worte


Habe heute zwei Maschinen auf diese Weise geupdated ... eine steht in München die andere in Düsseldorf ... ich selbst sitze in Frankfurt ... und alles hat geklappt ...

Vorher :

server# uptime
1:53PM up 1214 days, 9:50, 1 user, load averages: 0.06, 0.42, 0.71
server# uname -a
FreeBSD XXX 5.4-STABLE FreeBSD 5.4-STABLE #1: Wed May 25 01:26:44 CEST 2005 root@XXX:/usr/obj/usr/src/sys/SMP i386


Zwischendurch :

server# uname -a
FreeBSD XXX 5.5-STABLE FreeBSD 5.5-STABLE #2: Tue Sep 8 13:03:39 CEST 2009 root@XXX:/usr/obj/usr/src/sys/SMP i386


server# uname -a
FreeBSD XXX 6.4-STABLE FreeBSD 6.4-STABLE #0: Tue Sep 8 14:51:44 CEST 2009 root@XXX:/usr/obj/usr/src/sys/GENERIC i386


Nachher :

server# uname -a
FreeBSD XXX 7.2-STABLE FreeBSD 7.2-STABLE #0: Tue Sep 8 20:06:07 CEST 2009 root@XXX:/usr/obj/usr/src/sys/GENERIC i386