FreeSBIE を FreeBSD 9.0 で動かす。

FreeSBIE とは FreeBSD のライブ環境を CD-R もしくは DVD-R に焼くためのプログラム、またはそのライブCD-R のことなのですが、これがあるとHDDにインストールしないでも手慣れたFreeBSD環境を使うことができます。また、弊社では、dist cc が動く環境のCD-Rを用意しておいて、一時的に分散コンパイルをかけるようなときに、事務用のPCでも動かして分散するということを以前はやっていました。

最近、FreeBSD 9.0 の環境で動かす必要があったのですが、ports から入れたままではうまく動きませんでしたので、その対策についてちょっと記録しておきます。

ports の sysutil/freesbie から make install でインストール自体は一発で入るのですが、実際にはいくつか問題があってうまく動きません。

1. 問題点としてはカーネルの config が古くて 9.0 に対応していない。
2. OSの環境に影響されるため、 FreeSBIE 上で必要な ports も親環境でインストールされていなければならない。
3. 古いマシンで動かそうとおもったら i386 環境でないと、ブートしない。

2. 3. に関しては、wine の ports 作成などを参考に、chroot 環境で、i386な環境を作って、その中で作業すれば問題ありません。

1. に関しては、freesbie/config/i386 以下にあるconfig ファイルを書き換えます。
まず、今あるやつをざっくりと消去。そして、/usr/src/sys/i386/conf から GENERIC をコピーしてきます。
次に、 FREESBIE という名前で下記の5行のファイルを作ります。

include GENERIC
ident FREESBIE
options GEOM_UZIP # Read-only compressed disks
options GEOM_LABEL # Providers labelization.
options UNIONFS # Union filesystem

ひとまずこのオプションがあれば FreeSBIE は動くようです。親環境がバージョンアップしたら GENERIC のコンフィグファイルだけコピーしてくれば大丈夫です。

あとは make pkgselect して、make iso すれば完成です。でも、だいたい一回で完成ってわけにもいきません。freebsd-fs 以下のファイルを修正したり ports を
追加したりしながら、何度か make して、納得のいくライブ環境を作り上げてください。
できたiso ファイルは Virtualbox あたりで確認すると、無駄に CD-R のごみを出さずに済みます。が、最終的には実機で確認しないいけません。上記3. の問題は
CD-R に焼いて、実機でテストしたさいに初めて判明した問題でした。