satoshiabe.jp : Upgrading FreeBSD

HOME > DOCUMENTS > FreeBSD > Upgrading FreeBSD

Upgrading FreeBSD

Updated : 2006/07/02
Created : 2006/07/01

Synopsis

Requirements

現在の状態を確認する

ソースファイルを取得する

システムバイナリのコンパイルとインストール

システムのリブートとシングルユーザモード

リンク

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)

Email to Satoshi ABE