LinkStation(HD-HG250LAN)をRD-E301のデータ退避場所にする。

RD-E301のディスクがいっぱいになったのでPCにVirtualRDを使ってデータを退避させてみた。
しかし、40Gのファイルの転送に12時間かかった。いくらなんでも遅すぎ。
その間はRD-E301が使えないし、PCの方もリブートとか出来ないし。
そこでVirtualRD専用マシンを作ってみた。

■LinkStationの改造
ジャンク屋でLinkStaiton(HD-HGLAN)を買ってくる。これは旧型。すでに販売終了のもの。
このシリーズは数種類あるが、買うのはなるべくHD-HGxxxLANってものが良い。これがCPUとメモリが一番立派。
これは改造している人が多いので情報が入手しやすい。はず。


■システムのdebian化
まずは分解しないでアップデート。

□準備するもの
Windowsマシン
debian_2006_06_10_dist.tgz
Buffaloのファームウェアアップデータ

玄箱うぉううぉう♪から「debian_2006_06_10_dist.tgz」をいただいてくる。
debian_2006_06_10_dist.tgzをtmpimage.tgzにリネーム。
これをさらにZIP圧縮する。
ファイル名をimage.datに変更する。
image.datをbuffaloのファームウェアアップデータのフォルダの中のimage.datと入れ替える。
ファームウェアアップデータを強制的に動かすために、linkstation_version.txtの中の数字を適当に増やす。

これでファームをアップデートするとdebianに入れ替わる。
処理終了時に「アップデートが失敗しました」と出るのは仕様。
LinkStationの方は赤LEDが点滅したままだが、ディスクのフォーマットかなんかをしてるんだと思う。しばらく放っておく。

この段階で失敗した時は分解してHDDをフォーマットする。

デフォルトでは192.168.0.100でユーザがtmp-kun、パスワードも同じ。ホスト名はKURO-BOX。
これでtelnetログイン。
あとは好きなように編集してネットワーク関連を設定
/tmp/root/etc/network/interfaces
/tmp/root/etc/hosts
/tmp/root/etc/hosts.allow
/tmp/root/etc/hostname
/tmp/root/etc/resolv.conf

ユーザはadduserして追加してやる。tmp-kunはdeluserで削除。

.bashrcには以下だけ追加しておく
# commamnd aliases
alias ll='ls -l'
alias rm='rm -i'


□apt-get
/etc/apt/source.listの編集
情報がwoodyのもの。URLが古いので新しいものにする。
woody(3.0)やsarge(3.1)を使うならばarchive.debian.org。
-------- sarge用 --------
deb http://archive.debian.org/debian/ sarge main contrib
-------- とりあえずこの一行だけ書いてみた --------

その後etch(4.0)にしようということで以下に書き換え
-------- etch用 --------
deb http://ftp.jp.debian.org/debian/ etch main contrib non-free
-------- とりあえずこの一行だけ書いてみた --------

不安なので一度sargeにしてからetchにしてみた。

/etc/apt/apt.conf.d/99cachelimit
に「APT::Cache-Limit "100000000";」と一行書いたものを置いておく。
Dynamic MMap ran out of roomの予防。

大問題はパーティションの切り方がLinkStaionのままなのでアップデートやアプリの追加を始めると容量不足。
解決法は見つからず。

apt-get update
apt-get dist-upgrade
apt-get autoclean

最近はapt-getの代わりにaptitudeを使うらしい。

aptitude update
aptitude search hogehoge
でインストールのパッケージを探す。
aptitude install hogehoge
でインストール
aptitude remove hogehoge
で削除
aptitude clean
で多少空き領域が増えるかも。

□samba
sambaとswatを入れてみた。
192.168.0.100:901でswat設定画面。
これは普通にできた。

□webサーバ
thttpdというwebサーバも入れてみた。
Apache入れるほどでもないけどwebサーバくらい無いと寂しいから。
Webminも入れてみたけど使わなそうなので削除。

□proftpd
使おうと思って格闘したけど挫折。
普通にftpサーバとしては動くんだけどね。anonymousも問題なく。
vrd2.plとの連携で上手くいってない様子。

□一段落
これでLinkStationがWebサーバとFTPサーバとWindowsファイルサーバになった。
(通常のLinkStationと同じ機能です)

■VirtualRD
東芝のHDDレコーダの「ネットdeダビング」の機能をこれに追加します。

□proftpdの停止
試行錯誤でproftpdでの運用に挫折。proftpdを止める。
アンインストールした。

□vrd2.pl
ここの情報を元に書き足す。
「$response = $TransactionID.$Flag.$Question.$Answer.$Authority.$Additional.」の行(最後から10行目くらい)の上に以下の3行を追加。

# --------
my @bytes;
@bytes = unpack('B8 B8',$TransactionID);
$TransactionID = pack('B16','00000001'.$bytes[1]);
# --------

4行目と5行目の頭に「#」を入れるか削除する。これ、元のスクリプト書いた人がアップロードする時にコメントを間違って入れちゃったんだろう。もしかしたら「中を読まずに使うな」って警告かもしれない。
あとは適当に「$interface='eth0';」「$ftp_address = "192.168.1.152";」「$rd_address = "192.168.1.250";」を自分の環境に合わせて書き換える。

念のためにEUCに変換しておく。

Net-PcapUtils-0.01とNetPacket-0.04が必要になるので探してくる。
インストール。
ここらへんの情報を参照。入手先からインストールまで書いてある。

□vrdruby.rb
vrdRubyを入手。
これがproftpdの代わりに使うもの。
aptitude install ruby をしておく。どんどんディスクの空きが無くなっていく(泣)。
FileNameCode = "UTF-8"にしてみる。これでMacとWindowsで漢字のファイル名は表示できている。
他は適当に設定すればOK。

□起動
# vrdruby.rb >> log.txt &
# rd2.pl &
画面にはrd2のメッセージが数秒ごとに表示される。

□停止
# ps
でプロセスの番号を調べて
# kill 8001
# kill 8002
って感じで。rubyの方がたまに落ちてくれないのでその時は「kill -KILL 8001」をやってみる。


■分解
LinkStationの分解はそれほどめんどくさい方では無い。
ネジを8本はずすとバラバラになる。HDDを止めてるネジは2本だ。
LinkStationサーバ化(6) -バーテーション変更(道草日記)
苺たると -Strawberry tarte-
等を参考にパーティション分割をやってみるがどうも上手くいかない。telnetでログインできないと中が見れないのでアクセスできない時の状態がわからん。シリアルコンソールがあればいいのだけど。
一日格闘したけど挫折。
fstabが悪いのか、それともbootできていないのか。

HD-HGLANシリーズは筐体が「玄箱HG」と同じ。で、「玄箱」用の「KURO-SATA」というパーツが使える。
これはSATAのHDDをIDEのマザーボードの玄箱に内蔵させるパーツ。HD-HGLANでも使える。
今回は300GのSATAのディスクをつないでみた。
これを使えば1.5T(現在普通に買える最大サイズ。12000円。)だって大丈夫(だと思う)。
どんなにディスクを大きくしてもルートパーティションは380M程度。うーん。困った。

■とりあえず
目的のVirtualRDマシンが出来上がったので完了。
転送したファイルはGOM PlayerやVLCで再生してる。

2009/01/03