FreeBSD アップグレード
FreeBSD を 5.3 から 5.5-STABLE にアップグレードしたので、そのときの手順のメモ。
現在 http://www.freebsd.org/doc/ja_JP.eucJP/books/handbook/index.html にあるハンドブックは 5.5R, 6.2R が対象だそうなので、5.3R が対象である http://docs.freebsd.org/doc/5.3-RELEASE/usr/share/doc/ja_JP.eucJP/books/handbook/makeworld.html を参照することにした。
1. CVSup でソース取得
cd /usr/src cp /usr/share/examples/cvsup/stable-supfile . vi stable-supfile *default release=cvs tag=RELENG_5 となっていることを確認。これが 5 系列の STABLE。 *default host=cvsup.jp.FreeBSD.org に変更。 cvsup -g -L2 stable-supfile
2. /usr/src/UPDATING を読む。
特にすべきことはなさそうだった。
3. シングルユーザモードにする
shutdown now
スクリーンセーバーを切っておく。kldstat で確認して、
kldunload daemon-saver
4. make buildworld
/usr/obj の空きディスク容量を確認して、
cd /usr/src make buildworld
終了まで約100分。
5. make buildkernel, installkernel
cd /usr/src make buildkernel make installkernel
終了まで約30分。
6. シングルユーザモードで再起動
シングルユーザモードで再起動。そして
fsck -p mount -u / mount -a -t ufs swapon -a adjkerntz -i
adjkerntz をしないと date の出力が実際より +0900 されていた。
7. make installworld
cd /usr/src make installworld
8. mergemaster で /etc を更新。
mergemaster
/etc/inetd.conf など自分で編集した覚えのあるもの以外は大抵「i」でよかった。
9. 再起動
ハンドブックの通り fastboot を実行したら、「Rebooting...」のところで停止したままになってしまったので、電源ボタンで切ってしまった。しかし無事起動できた。
uname -a で確認。
以上。
反省点
- やっぱり script でログを取っておくべき。
- /usr/obj は削除しておいた方がよい。
- buildworld の前に mergemaster -p で /etc の確認をしなかった。
- mergemaster の前に /etc のバックアップをとらなかった。