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 のバックアップをとらなかった。