FreeBSD On ThinkPad X60

Make World

CVSup により最新版に更新したソースを使用して、 6-STABLE の動作環境を構築する。

Backup

重要なファイルのバックアップを行う
基本的には /etc を全てバックアップすれば問題ない。 tar コマンドでアーカイブしても良いが、 いざと言うときにすぐ使えるように任意のディレクトリにそのままコピーする。
# mkdir -p /usr/local/backup
# cp -rp /etc /usr/local/backup

Prepare

まずは情報の収集。
/usr/src/UPDATING は重要な情報が書かれているので熟読する。 勿論英語で書かれているが、それほど難しくない英語なので何とか読む。
他には FreeBSD ハンドブックも貴重な情報源となる。 インストールするディストリビューションにもよるが、 /usr/share/doc/ja/books/handbook/index.html に FreeBSD ハンドブックがあるのでこれも熟読する。

次は /etc/make.conf の編集。
通常は以下の設定だけで十分だが、 /usr/src/UPDATING に特記されている事があれば勿論追加する。
CFLAGS=-O -pipe      # コンパイル時に最適化を行い pipe を使用する事で高速化する
NOPROFILE=true       # gprof(1) によるプロファイリング取得を行わない
NO_INET6=true        # IPv6 を使用しない

Buildworld

ベースシステムを構築する。
カーネルの構築する時に必要な /usr/sbin/config コマンドをはじめ、 FreeBSD で使用されるほぼ全てのコマンドが /usr/obj 以下のディレクトリに 再構築される。
存在するならば /usr/obj ディレクトリ以下を全て削除し、 make buildworld を実行する。 環境に依存するが大体2〜3時間で make buildworld は終了する。
# cd /usr/obj
# chflags -R noschg *
# rm -rf *
# cd /usr/src
# make -j 6 buildworld

Kernel

新しいカーネルを構築する
カーネルの構築は基本的に通常の方法と同様。 コンフィグレーションファイルは通常通り GENERIC を元に編集すれば良い。
ただし、make コマンドは /usr/src で実行することにより、 Buildworld で作成した config コマンドを使用する必要がある。
カーネルが構築できたら同様にインストールを行う。 この時も make コマンドは /usr/src で実行する必要がある。

# cd /usr/src
# make buildkernel KERNCONF=コンフィグレーションファイル
# make installkernel KERNCONF=コンフィグレーションファイル

Install

ベースシステムをインストールする。
ベースシステムをインストールする前にリブートし、新しいカーネルで起動する。
この時に、シングルユーザモードで起動し、以下の作業は安全のため全て ングルユーザモードで実行する。 ベースシステムのインストールは make installworld コマンドで完了
# cd /usr/src
# make installworld

mergemaster

ベースシステムのインストール後は環境の構築。
この手順が一番注意を要する。 mergemaster (8) というコマンドが提供されており、 多少は簡単に環境を移行できるが、それでも気を使う作業には変りない。
mergemaster は既存の設定ファイルと新規の設定ファイルを比較して 差分を表示し、設定ファイルの移行の補助をしてくれる。
mergemaster は2段階で実行すると楽で便利である。
# mergemaster -svia
# mergemaster -svir

最初の実行では既存ファイルが無い場合に自動で新規ファイルをインストールし、 次の実行で、実際に既存の設定ファイルと新規の設定ファイルの比較を行う。 mergemastercvs (1) のバージョン情報がある場合はそれを比較し、 バージョンが等しければ既存の設定ファイルを使用する。 バージョンがない場合やバージョンが違う場合は、設定ファイルそのものを比較し、 内容に差がある場合はプロンプトを表示する。
このプロンプトに対してlを入力すると既存のファイルを使用し、 r を入力すると新規ファイルを使用する。 m を入力すると行単位で自分でマージができる。
/etc 以下のファイルに対して行った修正は確実にメモする等、 後で自分が判る様にするのが大切である。
最後に再起動したら 6-STABLE の世界。

Last Update: 4 Feb. 2010