satoshiabe.jp : Upgrading FreeBSD
HOME > DOCUMENTS > FreeBSD > Upgrading FreeBSD
Synopsis
FreeBSD の stable branch と同期するため、現行のシステムのソースファイルをアップグレードする方法を解説する。 アップグレードは危険を伴うため、フルバックアップしておくことが望まれる。 尚、この文書は、旧カーネルのバックアップについて言及していない。
Requirements
1. FeeBSD 6.x
2. Root access
3. Internet access
4. Console login
現在の状態を確認する
uname コマンドで確認する。 以下は、インストール直後に実行した例である。
% uname -a FreeBSD panther.example.com 6.1-RELEASE FreeBSD 6.1-RELEASE #0: Sun May 7 04:42:56 UTC 2006 root@opus.cse.buffalo.edu:/usr/obj/usr/src/sys/SMP i386 %
ソースファイルを取得する
まだ cvsup パッケージをインストールしていないなら、インストールしておく。
% su - # /usr/sbin/pkg_add -r cvsup
最新の stable なソースファイルをダウンロードするため、standard-subfile を編集し、cvsup コマンドを実行する。
ファイルをコピーする。
# cp /usr/share/examples/cvsup/standard-supfile /root/
ファイルを編集する。 最低限、以下の 2 行を編集することになる。
# vi /root/standard-supfile *default host=cvsup3.jp.FreeBSD.org *default release=cvs tag=RELENG_6_1 :w! :q
編集したファイルを引数にしていして cvsup コマンドを実行する。 完了するまで少し待つ。
# /usr/local/bin/cvsup -g -L 2 /root/standard-supfile
/usr/src/UPDATING を読んでおくこと。 このファイルには、正しくアップグレードするために必要な情報が記載されいてる場合がある。
システムバイナリのコンパイルとインストール
安全な、システムバイナリのコンパイルとインストールを実行する。 作業の途中でシングルユーザモードに変更する。 コンソールからログインしておくこと。
ディレクトリを移動し、以下のコマンドを実行する。
# cd /usr/src # make cleanworld
ダウンロードした新しいカーネルをコンパイルする。 時間を必要とする。
# make buildworld
カーネルを選択する
新しいカーネルをビルドする。 GENERIC カーネルをリビルドするなら、単純に make buildkernel を実行する。
# make buildkernel
カスタムカーネルのコンフィグファイルを使用して新しいカーネルをビルドするなら、MYKERNEL にカスタムカーネル名を指定して以下のように実行する。
# make buildkernel KERNCONF=MYKERNEL
私のマシン IBM ThinkPad T41 2373-9FJ では、デフォルトで SMP カーネルがインストールされていたので、以下のように実行した。
# make buildkernel KERNCONF=SMP
シングルユーザモード
シングルユーザモードに変更する。 リモートログインで作業を続けられなくなるので注意すること。
# shutdown now
使用する shell を質問される。 そのまま ENTER キーを押下する。
Enter full pathname of shell or RETURN for /bin/sh:
シングルユーザモードに変更したら、ファイルシステムとスワップにアクセスするために以下のコマンドを実行する。
# fsck -p # mount -u / # mount -a -t ufs # swapon -a
カーネルをインストールする
リビルドしたカーネルをインストールする。
# cd /usr/src # make installkernel
新しいビルド済みのカーネルをインストールするためには、以下のコマンドを実行する。
# make installkernel KERNCONF=MYKERNEL
ここでも実際には以下のように実行した。
# make installkernel KERNCONF=SMP
システムのリブートとシングルユーザモード
reboot コマンドを実行する。 次にマシンが起動してきたとき、4 (select option 4 to boot to single-user mode.) を選択してシングルユーザモードで起動させる。
# reboot
ファイルシステムとスワップにアクセスするために以下のコマンドを実行する。
# fsck -p # mount -u / # mount -a -t ufs # swapon -a
installworld の成功のために必要なファイルだけを比較するため mergemaster を -p をオプションで実行する。
# mergemaster -p
/var/tmp/temproot を削除するか、というメッセージが表示されたら no を選択し、以下のコマンドを実行する。
# cd /usr/src # make installworld
全てのコンフィグファイルを比較するために mergemaster コマンドを実行する。 変更していないファイルについて質問された場合、一般的に i (上書きインストール) を選択して問題ない。 例えば、/etc/motd ファイルなど。
# mergemaster
リブートする。
# /sbin/shutdown -r now
再び uname コマンドで確認する。
% uname -a FreeBSD panther.example.com 6.1-RELEASE-p2 FreeBSD 6.1-RELEASE-p2 #0: Sun Jul 2 18:29:01 JST 2006 root@panther.example.com:/usr/obj/usr/src/sys/SMP i386 %
リンク
Update FreeBSD (bsdguides.org)
Upgrading from 6.0 to 6.1 (colostate.edu)
tech/FreeBSD/SystemUpgrade - PukiWiki (keio.ac.jp)
Rebuilding world (freebsd.org)
CVSup でシステム更新 (kyushu-u.ac.jp)