ALIXでwebサーバーができればいいなぁという願望のもと、やってみたのですが…
ハードウェア | 略称 | 説明 |
---|---|---|
ALIX.2C0 | ALIX | FreeBSD7.0をインストールする組み込み型ボート。 |
FreeBSD7.0で動いているPC | FreeBSDマシーン | tftpd、dhcpd、nfsdを動かします。 また各種アプリケーションはports経由でインストールできるようにしておきます。 portsの位置はとする。 |
Windowsで動いているPC | Windowマシーン | ALIXとシリアルケーブルで接続してハイパーターミナルで操作する。 |
CompactFlash | CF | ALIXの記憶媒体です。ALIXに挿しておきます。今回は4GBのものを使用する。 |
シリアルケーブル(クロス) | シリアルケーブル | ALIXとWindowsマシーンとを接続します。本体同士を接続するためクロスケーブルを使用する。 |
ALIXとFreeBSDマシーンはLANに接続します。
コマンド | 説明 | 別環境用 |
---|---|---|
mkdir /tftpboot | 後にbootフォルダを置くフォルダ。tftpdで/tftpbootを指定することになる。 | |
mkdir /freebsd | 後にFreeBSDのイメージをマウントさせるために使用する一時的なフォルダ。 |
/etc/inetd.confを編集します。
デフォルトのinetd.confで次の#を削除し、設定が有効になるようにして保存します。
before | after |
---|---|
#tftp dgram udp wait root /usr/libexec/tftpd tftpd -l -s /tftpboot | tftp dgram udp wait root /usr/libexec/tftpd tftpd -l -s /tftpboot |
isc-dhcp3-serverをインストールします。
設定ファイルdhcpd.confを編集します。
次の設定を書き込んで保存します。
設定 | 設定項目 | 別環境用 | 説明 |
---|---|---|---|
option routers 192.168.0.1; option subnet-mask 255.255.255.0; option broadcast-address 192.168.0.255; option domain-name-servers 192.168.0.2; server-identifier 192.168.0.2; ddns-update-style none; default-lease-time 120; max-lease-time 120; subnet 192.168.0.0 netmask 255.255.255.0 { filename "boot/pxeboot"; option root-path "192.168.0.2:/tftpboot"; range 192.168.0.100 192.168.0.199; } |
option routers | ルーターのIPアドレス | |
option subnet-mask | サブネットマスク | ||
option broadcast-address | ブロードキャストアドレス | ||
option domain-name-servers | DNSサーバーのIPアドレス。 FreeBSDマシーンで動かすのでFreeBSDマシーンのIPアドレス。 |
||
server-identifier | server-identifier。マシーン個体を認識させるさせればいいようで、これもFreeBSDマシーンのIPアドレス。 |
||
subnet | ネットワークアドレス | ||
netmask | サブネットマスク。通常はsubnet-maskと同じ値。 | ||
root-path | boot/pxebootのルートパスの設定。FreeBSDマシーンのIPアドレスを指定。 | ||
range | ~ | DHCPで取得できるIPアドレスの範囲を指定する。 |
nfsで読ませるフォルダを指定するため、/etc/exportsを編集します。
次の内容を追加して保存します。
FreeBSDマシーンを起動させたとき、各種サービスが自動的に立ち上がるようにします。
次の設定をrc.confに追加して保存します。
各種サービスを有効にするために再起動します。
にイメージファイルを置きます。
wgetによってイメージファイルを取得します。
コマンド | 説明 |
---|---|
wget -P /usr/src [7.0-RELEASE-i386-bootonly.isoのURL] | i386のイメージファイルを使用する。 例:wget -P /usr/src ftp://ftp.freebsd.org/pub/FreeBSD/releases/i386/ISO-IMAGES/7.0/7.0-RELEASE-i386-bootonly.iso イメージファイルは7.0-RELEASE-i386-disc1.isoでも可。 |
PXEブートをするにはFreeBSDのイメージファイルに含まれるbootフォルダが必要です。
マウントしてコピーします。
コマンド | 説明 |
---|---|
mdconfig -af /usr/src/7.0-RELEASE-i386-bootonly.iso | コマンドmdconfigで確定したデバイス名をとする。 |
mount -r -t cd9660 /dev/md0 /freebsd | |
cp -r /freebsd/boot /tftpboot/ | |
cd /tftpboot/boot | |
gzip -d mfsroot.gz |
次の内容にして保存します。
before | after | 説明 |
---|---|---|
mfsroot_load="YES" mfsroot_type="mfs_root" mfsroot_name="/boot/mfsroot" |
mfsroot_load="YES" mfsroot_type="mfs_root" mfsroot_name="/boot/mfsroot" vfs.root.mountfrom="ufs:/dev/md0" console="comconsole" comconsole_speed="115200" |
comconsole_speedは他の速度でもよいが、速いほうがコンソールの表示がスムーズになる。ここではとする。 初めて接続するときはデフォルトの速度を調べてから接続する。 |
ビット/秒 | 115200 |
エミュレーション | VT100 |
*1 今回はbootだけを扱ってきたので、ネットワーク経由のインストールが便利です。
*2 この設定をするのは、FreeBSD7.0のインストールが終わった後でALIXのみでFreeBSDを起動させるとハイパーターミナルでは表示されなくなり、のちのコントロールに困るからです。ALIXを起動させたときにFreeBSDの通信速度に関する設定をあらかじめできればいいだけと思いますが、私がその方法を知らないだけです。
*3 ALIXを再起動するなど初回の起動でない場合は6.の操作後に途中でフリーズすることがあります。原因はわかりませんが、LANと電源すべてのケーブルをALIXからはずすことにより解消するようです。
ALIXにFreeBSD7.0のインストールすることは問題なくできた。その後ソースツリーを取得するためにコマンドcvsupを実行するも、すべて取得するのにほぼ1日かかり、perlのインストール中に暴走する。そのためApacheのインストールもperlが必要であるためにできず、ALIXをApacheを使ったwebサーバーとして使用することを断念した。CPU使用率には問題なかったため、CFの転送速度が原因である可能性が残る。またほかの種類のALIX(メモリが256MBのモデル)で試せば違う結果になっていたかも…
やはりマシーンスペックに合わせて軽いOSとwebサーバーを選ぶべきです。
やったこと | 結果 | 備考 |
---|---|---|
FreeBSD7.0のインストール | 成功 | |
ソースツリーを取得 (コマンドcvsupの実行) |
成功 | 1日かかる |
ports経由でperl5.8のインストール | 失敗 | 途中で暴走 |
ports経由でApacheのインストール | 失敗 | perl5.8がインストールできないため |
ソースからApacheをインストール | 成功 | でもレスポンスが悪い… |
以下のサイトを参考にしてFreeBSD7.0のインストールができました。
1.は成功例だったので、あきらめずにできました。