Hi-MD で KNOPPIX はできるのか?

Hi-MD(MZ-NH3D) を購入した。アナログ録音機能無しの Network Hi-MD である。PC から USB経由で OpenMG データを読み書きしたり、USB Storage として利用したりできる奴。
Hi-MD を使えば 1GB の strage、通常の MD を Hi-MD フォーマットすると 260MB のデータをストアする事もできる。音楽データを入れたdiskでも空いているところにデータを置いておけるのは結構楽しい。
データストレージを手に入れたら KNOPPIX を入れるのがトレンド(いかにもな嘘)なので、Hi-MD でもチャレンジしてみようという次第。

結論から言うと駄目だったのだけれどもね。
駄目なら駄目なりに、どこらまでできるのかを試してみたのでそのリポート。

■ Hi-MD というストレージについて

割と素直な USB strage として認識される。Windows だけでなく Macintosh でも接続するだけで認識され、利用する事ができる。
もちろん Linux でも vfat filesystem で利用可能。
sector は 2048byte (割と重要)
HDD の様にパーティションの概念はない。パーティション管理sector と MBR がないのである。よって、マウントするデバイスは /dev/sd?1 ではなく /dev/sd? になる。
データ転送は遅い。書き込み速度は 2倍速CD 程度。読み込みはその倍くらい。
それくらい遅いメディアからの KNOPPIX 起動については推して知るべし。

■ Hi-MD からのブート。

Hi-MD からのブートは不可である。
まあ、当然と言うべき結果ではあるけれども。
ハードウェアがブート対応していなそうであるというのはともかくとしても、MBR が無いのでフォーマット的に起動させる術が無い。FDD 的に使うとしても sector が 2048byte なので syslinux ができない(syslinux は 512byte sector でないとインストールできない)。

ブート出来ないということで KNOPPIX 的には一気に旨味を失ってしまうわけだけれども、もうちょっと調べてみる事にしてみた。
Mi-MD からブート出来ないなら、他からブートして KNOPPIX の cloop ファイルを Hi-MD から読み込めれば良いのではないかと思うのだ。ブートシークェンスだけなら容量は必要でないので手は幾らでもありそうである。

■ どこからブートするのか

Hi-MD と共に持ち歩いて即座に使えるブートメディアとして最も理想的なのはやはり USBフラッシュメモリですな。しかし、USBメモリからのブートはある意味鬼門であり、成功例の方が少なかったりもする。メモリの方もPC(BIOS)の方もちゃんと対応してくれると良いのだけれども。
関連情報
http://databackup.hp.infoseek.co.jp/cgi-bin/wiki/wiki.cgi?USB%a5%e1%a5%e2%a5%ea%a1%bc
http://kserv.jec.ac.jp/news/release_2004-03-18.html
http://www.nakata-jp.org/computer/howto/usb-knoppix/

いくつか購入して試し、失敗したもの
・全然脈無し
I-ODATA EasyDisk mate
SONY PocketBit
・ひょっとして行けるのではと思わせながら出来ていないもの
各社 IntelligentStick

ふと Logitec のサイトを見たら「USBブート対応」を謳っている「Mobile USB MEMORY」なる商品を発見。USB-ZIP として認識されそこからブート可能だと言う。
http://www.logitec.co.jp/products/memory/lmcud2.html
実際、かなり安定したブートで、従来不可能とされていた AWARD BIOS でも問題無く起動することができる。
これは良いものなので、みんなもチェックだ。

だが、手元のノートパソコン(VAIO TR-1, HP TC1100)では USBメモリから起動するものはなかった。

この他にブートだけ CD から行なうという方法もあったりはするけれども本末転倒ではある。

■ USB メモリからのブート

Logitec の USB メモリからブートするには、syslinux と KNOPPIX のブートファイル一式を書き込む。
念のため USBメモリに MBR を書き込み、ついで syslinux をインストールしてブート可能にする。Device が /dev/sd? としたときの Linux 上でのコマンド
% install-mbr /dev/sd?
% syslinux /dev/sd?

KNOPPIX3.4 CD の /boot/isolinux/* を USBメモリのルートにコピー。
KNOPPIX3.4 では syslinux ではなく isolinux を使っているけれども、コンフィギュレーションファイルは同じフォーマットなので isolinux.cfg を syslinux.cfg にコピーすれば終了。

■ Hi-MD からの cloop 読み込み

KNOPPIX CD の中を覗くと KNOPPIX という名前の数百MB のファイルがある。これが cloop 形式の KNOPPIX システムで、ブートシークェンスはこのファイルを探し、見つけたらそれをマウントして KNPPIX システムの起動を始める。
この KNOPPIX ファイルを Hi-MD の /KNOPPIX/KNOPPIX に置いておき、USBメモリからブートした後、Hi-MD の KNOPPIX をマウントさせようというのが今回の作戦となる。

KNOPPIX3.4 では USB 接続の CD ドライブにも対応したため、普通に USBメモリと Hi-MDを USB端子に接続して起動すれば終了だと思っていた。
が、そう簡単にはうまく行かなかったあたり。

boot ファイル群の中に minirt2?.gz というファイルがある。これがブートシークェンス時に使用されるシステムで ext2 ファイルシステムイメージになっているため、解凍後 loopback マウントすると中を編集する事ができる。
そこにある /linuxrc が起動時 KNOPPIX cloop ファイルを見つけるために必要なドライバをロードし、各ドライブからファイルを探すスクリプトである。
この中を見ると案の定 /dev/sd?[0-9] /dev/sd?[1-9][0-9] は探索するが /dev/sd? は調べていなかった。これでは Hi-MD はひっかからないわけである。てなわけで、そこも調べるように修正。

だが、まだうまくいかない。

実は USB デバイスはドライバモジュールをロードしてから、実際に使用できるようになるまでかなりの時間がかかる。そのため linuxrc の中では USB が安定するまでウェイトを入れて待つ事になるのである。
KNOPPIX3.4 の起動シークェンスでは 6sec の sleep を入れて、その時間としている。それが全然足りないらしい。
これを 15sec と余裕満点にすると、無事認識されるようになった。ちなみに 10sec では足りない。

そんなこんなで、USBメモリからブートして、Hi-MD内の KNOPPIX をマウントして起動する事が出来た。ここまでさらりと書いているが、実は物凄い試行錯誤の結果であることは言うまでもあるまい。
言うまでもない事だが Hi-MD 上の KNOPPIX は遅過ぎて仕方がない。

■ 応用

Linux でマウントできる外部ストレージだったら大体同じことができるであろう。
MuVo2 の様な HDD プレイヤーとかなら速度的にも問題ないのではないだろうか。

■ 結論

そうまでして、Hi-MD から起動するよりも USB接続の 2.5HDD を使った方が良いだろう。USB-HDD からブートできる機種であれば、それ単体で済むだろうしそんなに大きくもない。
しかし、メディアがそこそこ安くてリムーバブルな Hi-MD も悪くはないと思う。KNOPPIX には向かないけれども。




You can follow any responses to this entry through the RSS 2.0 feed. You can skip to the end and leave a response. Pinging is currently not allowed.

Leave a Reply