/usr/src/UPDATING より
[make sure you have good level 0 dumps]
[maybe fix /etc/fstab] [7]
make buildworld [9]
make buildkernel KERNCONF=YOUR_KERNEL_HERE [8]
cp sys/${MACHINE}/conf/GENERIC.hints /boot/device.hints [2]
make installkernel KERNCONF=YOUR_KERNEL_HERE
cd sys/boot ; make STRIP="" install [6]
[1]
[reboot in single user] [3]
/usr/src/etc/rc.d/preseedrandom [10]
mergemaster -p [5]
rm -rf /usr/include/g++
make installworld
mergemaster -i [4]
[reboot]
maybe fix /etc/fstab の注は、/dev/ad0a だったら /dev/ad0s1a に変更みたいな話だったが、
むしろ mfs による /tmp の行を消すのが重要。
/usr/src/etc/rc.d/preseedrandom は やらなくても大丈夫だった。
作業中は、PAM関係が一番はまる。
特に sudo の認証が PAM 経由なので、sudo による作業は事実上不可能。 sudo のアップグレードが完了するまでは su または直接 root ログインして作業した方がよい。 いずれにせよリモート作業は無理だな。
上記の手順の後に行った作業
# /usr/local/sbin/portinstall -fP security/sudo sudo /usr/local/sbin/portinstall -P misc/compat4x sudo /usr/local/sbin/portupgrade -arfPWw # ずばっと更新
…10時間ぐらいかかった。やはりアップグレードは割に合わんかも。 よほどの事情がない限りニューマシンで構築しなおすか 4.x でがんばる方がよさげ。
http://www.freebsd.org/releases/5.4R/migration-guide.html
5 Notes on Upgrading from FreeBSD 4.X
src/UPDATINGはこのあたりに書いてあることより省略気味なんですね。
やってないうちで fsck -p のとこがいちばんやばそう
うちは、4.6→5.4を無難にクリーンインストールする予定です。
UFS2 への移行もあるのでクリーンインストールが出来る場合は、それがベストだと思います。
ヘッダーや共有ライブラリの残骸があると configure が誤動作したり色々とトラブルの原因にもなりますし、どの道「片道切符」なので。