FreeBSDルータをつかっているんだけど、少しくたびれてきているのとサーバ達の中で一番うるさいマシンになってしまったので、リプレイスしようと画策している。今の所それほど緊急性が無いのもあって、進み具合はかなりゆるゆる。
そんな中、出会ったのがpfSense。ちょうど昨年開発者による本も出たのでAmazonで予約して購入。なにぶん英語の本なので未だに全部読んでなかったりする(爆)
pfSense-1.2.3-release-nanobsdバージョンも出たので手順通りにCFを作った。
といってもpfSenseのサイトからpfSense-1.2.3-RELEASE-4g.nanobsd.img.gzをダウンロードしてきて、
# gzcat pfSense-1.2.3-nanobsd.img.gz | dd of=/dev/disk1 bs=16k
でおしまい。
これをCF -> Serial ATAアダプタを介してCPUに接続し、あとは起動し、Webでアクセスすると…
起動しないんだな。これが。4Gのイメージで失敗。2Gにしても失敗。古いバージョンのpfSense-1.2.1-Embedded.img.gzを128MBのCFに書いてやっと起動した。
ここで、ふと思った。今時のUSBメモリはソケットから5mmしか飛び出ないのもあるので、実は行けるんじゃないか?と。
さっそくBaffaloの2GのUSBメモリを買ってきて試してみたら、ばっちり起動する。Webブラウザでアクセスし、必要項目をセットすると取りあえずは使えるようになった。
pfSense 1.2.3はnanoBSDをベースとしている。pfSense-1.2.3がなぜCFで起動しないのか気になりだした。気になりだすともうダメなので今度は、nanoBSDのイメージを作ってみた。作るのはnanoBSDのHowtoのままやってみた。
# /usr/src/tools/tools/nanobsd
# sh nanobsd.sh
# cd /usr/obj/nanobsd.full
# dd if=_.disk.full of=/dev/da0 bs=64k
母艦は、release-8.0
/dev/da0はpfSenseで使ったUSBメモリ。ところが起動はするが、/をマウントするところで止まってしまう。そう、母艦でddでライトするときは、/dev/da0なんだけど、fstabはad0になっているんだな。
nanobsd.shで指定されているディスクがad0となっているのでコンフィグファイルで、NANO_DRIVE=da0を指定する。これで再度スクリプトを走らせてUSBメモリに書き込むがやはりマウントポイントの所で、止まってしまう。一応手入力でufs:/dev/da0s1aを入力すると起動する。でもこれぢゃ今ひとつ。試しにCFに書いてみると今後はgeometoryが違うとおこられるので、diskifo -v /dev/da0でgeometoryを調べてまたまたスクリプトを走らせてみると今度はすんなり起動する。なんだかなー。
気を取り直してnanoBSDを調べていくとportsやらpackageがそのまま使えるらしい。というか中身はFreeBSDなので。がしかし、CFは書き込み回数に制限があるので、/etcや/varはmdを使ったいわゆるRAMディスクなので一癖あるらしい。うーむ、どうやってやるんだ? <- いまここ。
