FreeBSDを最新リリースへアップグレードしてみたのでその記録を残しておく。
私の場合FreeBSD6.0 -p7から久々のアップグレードである。まずは参考になりそうな情報を検索してみることに・・・ さて、アップグレードなので以下のサイトを参考にした。
- FreeBSD Notes - FreeBSD 6.2-RELEASEにアップグレード
- make world の利用 FreeBSD ハンドブック
- make world FreeBSD の部屋
一連の作業に入る前に・・・
- この作業では必ず装置の再起動が発生する
各種サーバを立てて公開している環境では運用の停止を考慮しなければならない - システムが動作および起動しなくなるおそれがある
バックアップは必須。またどの段階でトラブルが発生したにしても、その復旧の手順をあらかじめ知っておく事が重要である(たとえばカーネルをもとに戻すなど)
|
アップグレードの流れ(make worldの利用)
ハンドブックの流れをもとにしているが、自己判断で飛ばした項と利用環境により追加した項がある。
- cvsupによるソースの同期(従来から使用しているのでcvsupを利用)
- /usr/src/UPDATING を読む
- /etc/make.conf の確認
- /etc/group の更新
- シングルユーザモードへの移行
- 稼動中のシステムに他のユーザログインし変更を加えることが無い環境では、マルチユーザモードでシステムを再構築してシングルユーザモードに移行してからそれをインストールする方法がある.
- /usr/obj の削除
- ソースの再構築
- 出力メッセージの保存
- ベースシステムの構築とインストール
- 新しいカーネルの構築とインストール
- シングルユーザモードで再起動する(これ以降完了まで既存サービスは停止状態である)
- 新しいシステムバイナリのインストール
- make world で更新されないファイルの更新
- jail環境等の更新
- 既存の /etc をバックアップする
- mergemaster(8)を使った/etcの内容の更新
- /dev の更新
- /stand の更新
- 再起動
cvsupによるソースの同期
従来から導入しているcvsupのportsを使ってソースを同期することにする。
cvsupの設定
/usr/share/examples/cvsup/standard-supfile ファイルを使用する事としその一部内容を書き換える。
*default host=CHANGE_THIS.FreeBSD.org
*default release=cvs tag=RELENG_6_2CHANGE_THIS.FreeBSD.orgの行をに下記のいずれかに書き換える。RELENG_6_2と今回アップグレードするRELENG_6_2へ書き換える。
- cvsup.jp.freebsd.org [SAKURA Internet]
- cvsup2.jp.freebsd.org [YAHOO]
- cvsup3.jp.freebsd.org [SAKURA Internet]
- cvsup4.jp.freebsd.org [大阪大学]
- cvsup5.jp.freebsd.org [imasy]
- cvsup6.jp.freebsd.org [大阪大学]
ソースの同期
# cvsup -g -L 2 /usr/share/examples/cvsup/standard-supfile
/etc/make.conf の確認
独自に追加を行っているものがある場合、見直した方が良いかも知れない。(コメントアウトする)
# added by use.perl 2006-04-25 00:17:01
PERL_VER=5.8.8
PERL_VERSION=5.8.8
WITH_APACHE2= YES
#CFLAGS= -O -pipe
#NOPROFILE= true
など
シングルユーザモードへの移行
/etc/group の更新
/etc/groupにR6.1から追加されている以下のグループをひとつ追加。(/usr/src/UPDATINGに記載あり)
audit:*:77:
これを忘れるとmake installworldにて下記エラーとなる
# make installworld ERROR: Required audit group is missing, see /usr/src/UPDATING.
*** Error code 1
シングルユーザモードへの移行
マルチユーザモードでシステムを再構築してシングルユーザモードに移行してから、それをインストールする方法をとるため省略.
/usr/obj の削除
変更不可フラグの解除をおこなう。# cd /usr/obj
# chflags -R noschg *
# rm -rf *
参考:
- FreeBSD Notes - FreeBSD 6.2-RELEASEにアップグレード
- make world の利用 FreeBSD ハンドブック
- make world FreeBSD の部屋
これ以降は FreeBSD 6.2-RELEASEへのアップグレード手順(その2) で説明する。





