KURO-BOX/T4 玄箱/T4 を使ってみる

By 大山礼仁

1台壊しました

どうやって壊したかと言いますと、どうしても、USB boot または、 USB root がしたくて、
いろいろ試して見たのですが、結局、「USB をサポートしていない U-Boot が入っている」
から、だめだ!という結論に達し、禁断の U-Boot 書き換えを、行ったからです。
つまり、100%自己責任ということで、あきらめました。

思えば、初めにディスクのケーブルを繋げないで、「うごかねえ!」と、玄人志向に投稿したり、 ずいぶんなことをしてしまったものです。
そこで、お詫びとして、とことん ノーマルの状態で使いこなそうと、もう一台購入して、今度は、NFS Boot と NFS Root に挑んだのでした。
幸いなことに、NFS は、サポートしている様です。
注意:メモリーが少ないので、一時的にUSB メモリー1GB 以上が必要です。
消しても良いものを用意します。

まず、製品の添付のディスクに入っているものではなく、玄人志向から最新版のインストーラをダウンロードして、Lhaca などで解凍します。
その中にある、KURO-NAS-hddrootfs と、いうファイルをつかいます。
これは、root イメージを tar gz で圧縮したものです。
さて、おもむろに、他のマシンで、NFS サーバになるものを用意します。
UNIX 系ならば、Fedora でも SUSE でも Debian でも FreeBSD でも OpenBSD でも良いでしょう。
NFS サーバは、それぞれのOSのポリシーに従って作成してください。
とりあえず、私は、Fedora 8 でやりました。
mkdir -p /nfs/Kuro-T4
/etc/exports に、
/nfs/Kuro-T4 192.168.10.0/24(rw,no_root_squash,sync,no_subtree_check)
などと書いて、(IP とフォルダ名は、環境に合わせてください)
/etc/init.d/nfs start
/etc/init.d/nfslock start
chkconfig nfs on
chkconfig nfslock on
これで、使えます。
先ほどの KURO-NAS-hddrootfs を /tmp などに転送してから、解凍します。
cd /nfs/Kuro-T4
tar zxvf /tmp/KURO-NAS-hddrootfs
このままでは、NFS のルートにならないので、設定をいじります。
cd /nfs/Kuro-T4/etc
vi network/interfaces
ここで、
#auto eth0
#iface eth0 inet dhcp
この様にネットワークの設定が変更されないようにコメントアウトします。
NFS で、既に接続しているので、変更されると暴走してしまいます。
また、
vi fstab
で、内容を以下の3行にしておきます。
proc /proc proc defaults 0 0
192.168.10.9:/nfs/Kuro-T4 / nfs 0 0
/dev/scd0 /media/cdrom0 udf,iso9660 user,noauto 0 0
(IPアドレスとパスは、自分のNFS サーバのものにします)
さらに、このままだとデフォルトルータが設定されないので、
vi rc.local
最後の方に
route add default gw 192.168.10.9
などと、自分の環境のデフォルトルータを書いておきます。
DNS の設定もないので、
vi resolv.conf
search hasiru.net
nameserver 192.168.10.9
nameserver 192.168.10.10
などと、書きます。(ドメイン、アドレスは、ご自分の環境でお願いします)
これで、NFS サーバの用意が出来たので、KURO-BOX/T4 の方にかかります。

SATA のディスクを4台接続します。蓋を鍵で開けて、台座を引っ張り出してねじ止めしますが、
このとき、ケーブルは、自分で引っ張り出して刺さないといけないので注意。
ところで、中古のSATAディスクを使う場合、Windows XP で、わざわざパーティションを削除しておくと、かえって使えません。パーティションは、何でも良いので作っておいてください。
シリアルクロス(リバース)ケーブルを1本用意します。
それを、シリアルコネクタのあるパソコンに繋ぎます。
Linux で、cu で操作するのが、まじめな人ですが、私は、手抜きして Windows XP に Tera Term を入れて使いました。ちなみに、シリアルポートが無いパソコンでも、今は USB 変換アダプタがたくさん出回っているので、それを購入して繋げば使えます。
Tera Term を起動したら、シリアルを選択してポートを繋げたものに設定します。(普通 com1 ですが、変換アダプタを使用したときは、com4 になったりします)
そして、設定->シリアルポートで、ボーレートを、57600 にします。
後は、そのままで、OKです。(データ8bit パリティー none ストップ 1bit フロー制御 none)
ここで、KURO-BOX/T4 の電源を入れると、何やら TeraTerm に表示されるので、"s" ボタンを押して止めます。
BUFFALO>> プロンプトになることを確認します。

さて、ここで、NFS ブート用に環境変数を設定しましよう。
setenv bootcmd 'run nfsboot'
setenv nfsboot 'nfs ${ldaddr} 192.168.10.9:/nfs/Kuro-T4/boot/uImage.buffalo ;setenv bootargs ${console} ${bootargs_root} nfsroot=192.168.10.9:/nfs/Kuro-T4 ip=192.168.10.17; bootm ${ldaddr}#conf@2'
(一行で)
(サーバのアドレス:パス名と、クライアントのip は、ご自分の環境に合わせてください)
なぜか、nfs の部分は、環境変数を多用するとうまくいかないので、なるべく平文で書きます。
(きっとバグです)
これで、おもむろに、
saveenv
(少し怖い、うまく行かなかったら、setenv bootcmd 'run hdboot' で、saveenv して戻せます)
さあ、いよいよ
boot
これで、うまくいったら NFS から、NFS root で立ち上がります。

たちあがったら、root で、ログインします。
ここで、USB メモリーを付けて SWAP にします。(メモリーが足りないもので)
parted /dev/sde
(parted) p
で、存在するパーティションを消して(rm 1 など)
(parted) mkpart
Start ? 0kB
End ? 1GB
ぐらいで、作ります。(他の質問は p か、リターンでOK)
(parted) q
で、抜けて
mkswap /dev/sde1
swapon /dev/sde1
これで、とりあえず、swap が増えます。
初めのログイン後は、パスワード無しです。
パスワードを変えるコマンドも入っていないので、設定したい場合は
apt-get install passwd
でインストールします。
また、ftp ssh vsftpd なども、
apt-get install ftp openssh-client openssh-server vsftpd で入れておきましょう。
次に、raid5 を作ります。
mdadm というRAID 制御のコマンド群をインストールします。
apt-get install mdadm
そして、/dev/sda /dev/sdb /dev/sdc /dev/sdd にパーティションを RAID用に作成します。
parted /dev/sda
(parted) p
で、パーティションがある場合は、消します。(rm 1 など)
新しくパーティションを作成します。
(parted) mkpart
ここで、Partition Table: が、msdos の場合は、primary/extendedと聞かれますが、p リターンで大丈夫です。
Partition name File sytem type は、そのままリターンで良いです。
Start ?
には、何故か 0にすると、値が一定しないので、32.3kB と指定します。
End ?
には、ディスクの容量を入れます。(たとえば、500GB)
(parted) set 1 raid on
で、raid フラグを on にします。
(parted) select /dev/sdb
とすると、次のディスクに切り替わるので、同様にパーティションを作成します。
/dev/sdd まで、終わったら
(parted) q
で、抜けます。
さて、raid5 を作成しましょう。
mdadm -C /dev/md0 -l5 -n4 -f /dev/sd[abcd]1
で、完了です。
さて、これだけでは、次回の起動時に忘れられるので、/etc/mdadm/mdadm.conf を直します。
vi /etc/mdadm/mdadm.conf
DEVICE の行を、
DEVICE partitions
ARRAY の行を、
ARRAY /dev/md0 level=raid5 num-devices=4 UUID=52135047:f90a143a:80cf0a07:b18219cf
などにします。
UUID の値は、
mdadm -Ds
とやって、表示されたものにしてください。
次にファイルシステムを作ります。
mkfs -t ext4 /dev/md0
このままだと、fsck がかかって面倒なので、ext4 ですので、off にしておきます。
tune2fs -i 0 -c 0 /dev/md0
次にこれを、起動時にマウントする様にします。
vi /etc/fstab
で、開いて、最後の行あたりに
/dev/md0 /raid5 ext4 defaults 0 0
を追加しておきます。
mkdir /raid5
mount /raid5
これで、既に使用可能です。が、構築中なので半日ぐらい遅いです。
mdadm -D /dev/md0
で、何%終了したか見ることができます。

さあ、この状態では、swap 領域がUSB なので、少し勿体ないです。
今度は、raid5 上に作成します。(NFS上には、作れない)
dd if=/dev/zero of=/raid5/swap bs=1024 count=1048576
chmod 600 /raid5/swap
mkswap /raid5/swap 1048576
これで、swap ファイルができた。
これを、使うためには、/etc/fstab の最後の行に、
/raid5/swap none swap sw 0 0 と、追加します。
swapon -a
で、RAID 内の swap が、有効になります。
swapoff /dev/sde1
とやったら、USB メモリーは、もう不要です。
さあ、半日ほど待って、raid5 の構築が、終わったら再起動してみましょう。
うまくいったら、ちゃんと立ち上がります。

これだけでは、使えないので、samba で、共有しましょう。
vi /etc/samba/smb.conf
で開きます。
workgroup は、自分の環境に合わせてください。
私は、Windows の Shift_JIS でそのまま使いたいので、
display charset = CP932
unix charset = CP932
dos charset = CP932
を [global] に追加しました。
ちなみに、Debian で Shift_JIS を使いうのは、RedHat と同じで、
apt-get install locales
とやった後、
localedef -f SHIFT_JIS -i ja_JP ja_JP.SJIS
とやれば、多少文句が出るが使えます。
export LANG=ja_JP.SJIS
をやって、端末の文字コードも SJIS にする必要はありますが。
それから、RAID5 の共有設定も、/etc/samba/smb.conf に追加します。
[RAID5]
comment = RAID5
path = /raid5/data
browseable = yes
guest ok = no
read only = no
share modes = yes

これで、 /etc/init.d/samba restart
以上で、終わり。
おっと、samba 用ユーザー、パスワードを作らないと。
admin を追加するなら、
passwd admin
で、UNIX パスワードを設定した後、
smbpasswd -a admin
で、samba のパスワードを追加します。
あ、
mkdir /raid5/data
chmod 777 /raid5/data
を忘れていました。

後日、壊した方の KURO-BOX/T4 に対して、TeraStation TS-TGL のジャンク品を安くオークションで落札して、
基板だけ、交換した。(筐体は鍵を無くしてドリルでこじ開けてあったので捨てた)
そして、立ち上げると、見事に TeraStation になったのだった。
さらに、U-Boot を入れ替えると KURO-BOX/T4 になるという情報があったので、
だめもとで試すと、なんと、すんなり、KURO-BOX/T4 に戻ったのでした。
残った基板を見つめて、「これ、何かに使えないかな?」と考える今日この頃・・・・

トップへ戻る