2003-08-20:OpenBlockS 266 セットアップ

ぷらっとホームが販売している PowerPC の載ったマイクロサーバ、OpenBlockS の設定についてのメモ書き。
家で corega の無線LANなADSLルータ + PC(debian) という環境から、OpenBlockS にADSLルータと PC で行っていたサービスをまかせ、PC を一台空けようという計画。

OpenBlockS に HDD を載せ、PPC 版の Vine をインストールする、という話題です。
ごたくはいーからさっさとインストールメモを見せろ、という方はお先にこちらをどうぞ。

お役立ちリンク

おうちの環境

ADSL1.5M の線に固定IPをひとつでのサーバ運用。
外向きに開けているポートは 21(ftp),22(ssh),25(SMTP),53(DNS),80(http),443(https)。
ADSL 線との接続は corega のルータが行い、外向きに開けているポートは debian woody な PC(PenIII 1GHz, Mem 1GByte) にフォワードしている。
ネットワークの内側には debian マシン以外にクライアントマシン(WinXP, Win2000)など。
debian マシンは内側向けサービスとして、内ネットDNS・samba によるファイルサーバ・SMTPサーバを行っている。

これらのサービスのうち、ftp,SMTP,http は別のマシンにサービスを移し、OpenBlockS では ssh,DNS,ファイルサーバ をやらせる。

ちなみに購入した OpenBlockS のスペックは以下の様。
くわしくはぷらっとホームのサイトを参照のこと。HDD は Hitachi の流体軸受な 40G を用意した。

CPU IBM PowerPC 405GPr 266MHz
MEMORY 64MB SDRAM
FLASH ROM 8MB
LAN 10/100Base-TX x2
電源 5V 3.0A
サイズ 114.5mm(D) x 81mm(W) x 38mm(H)

分解と組み立て

とりあえず箱を開けてみよう。

右の写真、真ん中の白いのがフタ。左側が本体。
見えている白いスロットのある緑色のボードが拡張CFカード用のボードで、こいつをはずして HDD を載せる。
右上にあるのが買ってきた HDD で、右下は HDD を載せる際に HDD の下に入れる絶縁シート。


CFカード用のボードをはずす。

本体左右側面のプレートがそのままヒートシンクになっている。
運用中は50度くらいまであがるらしい。ケースに穴を開けて、ファンを取りつけている人もいるみたい。
常時稼働させたいし、HDD的に熱は心配のタネではある。
右上にイーサの口2つとシリアルポートが見える。
ボードは非常にコンパクトにまとまっている感じだ。


HDD をマウント。
ぎっちり詰まっている、という感じが出てきた。
本体サイズを 2.5inch HDD のサイズをもとに設計してるんだろうかしら。HDD のネジ止め穴の位置にあわせて、側面のプレートにネジ穴が開いている。

フタを締めて組み立ては完了。

起動・HDD にイメージを展開

作業母艦マシンとハブ、ネットワークケーブルなどを用意。
とりあえずは付属マニュアル通り(プラスアルファ)な作業をしてみる。

OpenBlockS(以下、適宜OBSと略す)の Ether1 にケーブルを差し、母艦と同じネットワークにして電源を入れる(電源ケーブルを接続する)。
Ether1 は工場出荷時で 192.168.253.254 がついている。

[母艦] sudo ifconfig eth0 192.168.253.10 netmask 255.255.255.0
[母艦] telnet 192.168.253.254 (user1 でログイン)
[OBS] su -
[OBS] fdisk /dev/hda
[OBS] mke2fs /dev/hda1
[OBS] mkswap /dev/hda2
[OBS] swapon -a
[OBS] mount /dev/hda1 /mnt

HDD のパーティションを切り、ファイルシステムを作ってマウントしている。

[OBS] vi /etc/ftpusers (root での ftp ログインを許可する)
[母艦] lftp -u root 192.168.253.254 (ハードディスクイメージを put)
[OBS] cd /mnt
[OBS] tar xzf base.tgz
[OBS] tar xzf etc.tgz
[OBS] tar xzf contrib.tgz
[OBS] cd /mnt/dev/
[OBS] ./MAKEDEV generic
[OBS] vi /mnt/etc/fstab
[OBS] vi /mnt/etc/ifconfig.eth0
[OBS] vi /mnt/etc/inetd.conf (telnetd, ftpd を通す)
[OBS] vi /mnt/etc/hosts.allow (telnetd, ftpd を通す)
[OBS] vi /mnt/etc/passwd (アカウントを作っておく)
[OBS] vi /mnt/etc/shadow (アカウントを作っておく)
[OBS] flashcfg -c harddisk

/etc/ftpusers をいじることにあんまり意味はないんだけど、なんとなく root で入りたい気分だったので。(^^;

ディスクイメージの展開のあとの /etc/fstab の編集までは付属マニュアルに書かれているが、以降のファイル編集は書かれていない作業。
/etc/ifconfig.eth0 はもともと存在しないので新規作成。
実はこのファイルがないと起動時に Ether1 ポートが機能しない。おいおい。。。
中身は

inet 192.168.253.354
netmask 255.255.255.0
broadcast 192.168.253.255

と、ifconfig に渡すパラメータを書いておけばよい。
また telnet がデフォルトで無効になっているので、使えるようにしておく。
あとアカウントも作っておかないとね。

最後に HDD から起動するように設定して、reboot。

# ハードディスクで起動してから OBS に入る手段を確保するための
# 設定を書いてないなんて、どういう了見なんだろう。。。< 付属マニュアル ちなみに本体裏面の INIT ボタンを押しながら電源を入れると工場出荷時な設定で起動するので、設定作業にミスった場合は適宜これをやって、HDD を /mnt にマウントして vi のやりなおしをする。

Vine 2.6r1 (PPC) のインストール

試行錯誤の末(実は上の作業に3時間くらいかかった)、なんとか HDD から起動して、外からもいじれるようになった。
が、必要なものをそれぞれ手で make しないといけないのはメンテが面倒だなぁ、やっぱり apt-get 使いたいよね、ということで、HDD をばっさり消して Vine をインストールすることにする。

とりあえずなにはなくともこちらのページを参照しよう。

行った作業はほとんどここのページの説明通り。
ppc-ramdiskimage-patch26r1.txt と chroot の2つのファイルをここから感謝しつつ取得。
Vine の iso イメージは [vinelinux.org]からてきとーなミラーを選んでゲット。

[母艦] sudo ifconfig eth0 192.168.253.18 netmask 255.255.255.0
[母艦] xhost 192.168.253.254

上記のパッチでは母艦が 192.168.253.18 であることを仮定している。
以下しばらくは参照ページの通り。

[母艦] mkdir ppc
[母艦] mount -t iso9660 Vine26r1-ppc.iso ppc -o loop
[母艦] cp ppc/ramdisk.image.gz ./
[母艦] umount ppc
[母艦] gzip -d ramdisk.image.gz
[母艦] mkdir rd
[母艦] mount -t ext2 ramdisk.image rd -o loop
[母艦] tar cf rd.tar rd
[母艦] umount rd
[母艦] rm -f ramdisk.image
[母艦] tar xf rd.tar
[母艦] cd rd
[母艦] patch -p1 <../ppc-ramdiskimage-patch26r1.txt

rd ディレクトリの下の root/bin/boot_live.pl の43行目と47行目の system 文の "2>/dev/\$ENV{'OBSTTY'}" を削除する。
わたしが作業した時はインストーラーがここで止まっていたので。

-        system( "ln -s /live/sbin/* . 2>/dev/\$ENV{'OBSTTY'}" );
+        system( "ln -s /live/sbin/* ." );

-        system( "ln -s /live/sbin/* . 2>/dev/\$ENV{'OBSTTY'}" );
+        system( "ln -s /live/sbin/* ." );

てきとーに書くとこんな感じの修正。
ふたたび作業を続けて、

[母艦] cd ..
[母艦] rm -f rd.tar
[母艦] rmdir ppc
[母艦] tar czvf rdimg.tgz rd
[母艦] lftp -u root 192.168.253.254 (rdimg.tgz, chroot, Vineのisoイメージを put)

ファイルの準備ができたので、いよいよインストール作業。

[母艦] telnet 192.168.253.254 (user1 でログイン)
[OBS] su -
[OBS] cd /mnt
[OBS] tar xzvf rdimg.tgz
[OBS] mknod /dev/loop0 b 7 0
[OBS] mount -t iso9660 Vine26r1-ppc.iso rd/mnt/cdrom -o loop
[OBS] chmod +x chroot
[OBS] ./chroot rd /etc/rc.sysinit

Vine のインストーラーが立ち上がり、母艦の X 上にインストーラーのウィンドウが現れる。
てきとーに手順を進めてインストールする。
パッケージ選択で X まわりもインストールしておくこと。
インストール後の設定動作で、インストーラーが GTK を要求するのだ (--;

インストーラーが終了したら後処理。
Vine をインストールしたのは /mnt/rd/ に chroot した中での /mnt/install/ 以下なので、こいつを HDD のルートにもってくる。
また必要なものを適宜コピー。
ネットワークの設定やアカウントを作っておくことも忘れずに。

[OBS] mv rd/mnt/install/* ./
[OBS] cp -pr /lib/modules/* ./lib/modules
[OBS] cp -p /etc/modules.conf ./etc
[OBS] cp -p /usr/sbin/pshd ./usr/sbin
[OBS] cp -p /usr/sbin/runled ./usr/sbin
[OBS] cp -p /usr/sbin/flashcfg ./usr/sbin
[OBS] vi /mnt/etc/sysconfig/network
[OBS] vi /mnt/etc/sysconfig/network-scripts/ifcfg-eth0
[OBS] vi /mnt/etc/passwd (アカウントを作っておく)
[OBS] vi /mnt/etc/shadow (アカウントを作っておく)
[OBS] flashcfg -c harddisk

再起動すると、HDD の Vine が立ち上がる。すばらしい!