この記事の内容はFreeBSD 5.xでしか実現できません。
4.xの方は4.x用の記事を参照してください。
一昔前まで、FreeBSD関係の書籍に付いてきたCD-ROMからFreeBSDをインストールしようとすると、インストーラの説明やメッセージが日本語になっていることがありました。
さらにインストール後に/stand/sysinstallするとsysinstallメニューが日本語にできて(sysinstallがインストーラを兼ねているので当然なんですが)、日本語万歳な方は幸せになっていたかと思います。
これの出所はFreeBSD 多国語化インストールブートフロッピー で配布されていた日本語対応なインストーラだったのですが、4.6.2-RELEASEを最後に更新されていませんでした。
ところが最近有限会社小金丸コンピュータエンジニアリングサービスさんで日本語インストーラの公開が始まり、最新RELEASEが出るたびにリリースされています。
ここで配布されている日本語インストーラ(kern.flpとmfsroot.flp)を使ってインストールすれば日本語のインストーラ&/stand/sysinsallになるわけですが、既にあるFreeBSD環境に入れることはできません。
というわけで既にあるFreeBSD環境の/stand/sysinstallを日本語対応にしようと思います。
配布サイトでは作り方のドキュメントを含んだソースファイルも配布されていますが、手っ取り早くコンパイル済みのバイナリをインストールしようと思います。
コンパイル済みのバイナリは日本語対応のインストーラ(kern.flpとmfsroot.flp)のイメージファイルの中に入っています。
このイメージファイルをFDDに書き込んでブートさせれば日本語のsysinstallメニューが出てくるので、イメージファイル内のバイナリを抽出して既存のFreeBSD環境に入れてあげます。
インストーラのFDDイメージはkern.flp、mfsroot.flpがありますが、目的の/standディレクトリが入っているのはmfsroot.flpです。
というわけで、まずmfsroot.flpをDLしましょう。
例ではrootのホームディレクトリ(~root)で作業しています。
例えば5.2.1-RELEASEのmfsrootですと
# cd ~
# fetch http://home.jp.freebsd.org/~kogane/5.2.1-RELEASE/atflp/mfsroot.flp
となります。
さて、これからmfsrootの中身を抽出したいわけなんですが、mfsroot.flpはFDDのイメージファイルですのでこのままでは扱えません。
これをFreeBSDで扱うにはvnode疑似ディスクデバイス(仮想ディスク)を使ってマウントします。
vnodeディスクを構築するmdconfigコマンドを使って仮想ディスクを作成します。
なお、FreeBSD 4.xではvnconfigでしたが、5.xではmdconfigがその機能を持っています。
# mdconfig -a -t vnode -f ~root/mfsroot.flp -u 0
として仮想ディスクを定義します。
次にこれをマウントします。
この時、mdconfigを使って構築した仮想ディスクは読みとり専用で読み込みます。
# mount -o ro -t ufs /dev/md0 /mnt
として/mntにマウントします。
/mntの中を見るとmfsroot.gzというgzipで圧縮されたファイルがありますので、これを解凍します。
# cp /mnt/mfsroot.gz /var/tmp/
# cd /var/tmp
# gunzip mfsroot.gz
解凍するとmfsrootというファイルができます。
このファイルもイメージファイルですので、これもマウントしてやります。
その前に/mntとvnode疑似ディスクデバイスを解除してやります。
# umount /mnt
# mdconfig -d -u 0
これが出来たらmfsrootをマウントします。
# mdconfig -a -t vnode -f /var/tmp/mfsroot -u 0
# mount -t ufs -o ro /dev/md0 /mnt
/mntを見ると、今度は/binや/bootなどのファイルが見えていることが確認できると思います。
そうしたら/stand以下がsysinstallメニューを構成するファイル群ですので、/stand以下のファイルをHDDの方の/standに展開してコピーしてやれば良いわけです。
が、既存のファイルに上書きしてしまうと不具合が出る可能性がありますので、一旦HDDの/stand以下を消去します。
この時バックアップファイルを作成する事をお奨めします。
# cp -R /stand /stand.orig
# rm -rf /stand
# tar cf - -C /mnt stand | tar xvfp - -C /
これで日本語sysinstallメニューがインストールされました。
最後に/mntとvnode疑似ディスクデバイスを解除してやります。
# umount /mnt
# mdconfig -d -u 0
正常に日本語対応sysinstallメニューになっているかどうかを
# /stand/sysinstall
として、sysinstallメニューがちゃんと起動するか確かめてください。