Thursday, 8 July 2010

発掘作業の続き

Twitter には書いてましたが。

総情センタから、HPのDAT72 (USB interface)を借りれるそうなので、センタで、まず作業。

OS X に繋げてもうんともすんとも。ドライバもなし。HPだものなぁ。動かない根拠はないんですけどね。

Windows XP なら、ドライバはあるので、VMware Fusion 上のXPで動かしてみる。特に問題なく認識するんですが...

Windows ってのは、とにかく何かソフトがないとダメ。tar かなぁ。tar32.ddl とか? でも、テープドライブの指定の仕方がわからない。つうか、ないみたいなんですが。ハードウェアは認識しているのに。いろいろググっているうちに「Windows から Unix で書いたものを読む方法はないのかも」と思い始めました。

そう言えば、OPENSTEPから書いたんだから、OPENSTEPだろ? でも認識しない。そう言われてみると...

 10年前って、USBってあったか?

いや、ぎりぎり、ありましたけどね。G4 Cube/iBook には付いていた。でも「10年前に買い替えた300MHz Pen IIな機械」にはSCSIはありこそすれ、USBはありません。OPENSTEPのUSB driverという面白いものを書こうとした人達はいるらしいが現存しないらしい。

で、行詰まったんですが、そうそう Linux と言う手がある。テープとかはUSBでも動くはず。だって、USBは、SCSIに見えるはずなんだから。センタの無線LANが使えないので、はまったんですが、センタの人が KNOPPIX 6.2を持っている。偉い! でも時間切れ。ここで部屋に戻る。

そして、また、VMware Fusion 上で、Linux 。| が打てない。昔は boot option だったんだが... 今は、setxkbmap -layout us とかやるらしいです。

テープドライブは一発で認識。さすが。でも、

 tar: /dev/st0: read 不能: メモリを確保できません

とかおっしゃる。これは「block size が合ってません」と言うエラーメッセージらしいです。なんと、mt にsetblkオプションが。でも、どうも block size が合っていれば問題ないらしい。

block size は129024と言う謎の値。126bだそうです。そう言えば、そういう値を愛用していました。これで、Libretto のデータは読めました。めでたい。

なんだが、本命は、OPENSTEP側なんですけど。こっちは、なんと、直接 tar czf で書き込んでしまったっぽい。block sizeが、1024, 4096... block size が合わないと、ddが死ぬ。大きめに読むとゴミを付加する。うーん、dd しておくべきだったよ。mt setblk 0 で、/dev/nst0 側は読んでくれるんですが、dd が対応してないっぽい。tar は対応しているみたいんだが、z option がダメっぽい。

tar のvariable block length option なんて聞いたことないし。

scsitape ってコマンドがあるらしく、それは variable length 対応とか書いてある。scscitape -f /dev/nst0 read 0 とかやるんだが、途中で死にます。default が小さすぎるっぽい。

ここら辺で諦めて、しばらくお休みしたんですが、それで思い付いたのが...

 block size は dmesg に表示される (read では返しようがない)
 mt で 1 record 戻って、表示されたものを dd で 1 record 読み出す

もちろん、これを Perl で書く。もう、どうでも良いscriptですが、これで行けるようです。遅いけど。2時間400MBぐらい。でも、もしかすると、そんなにないのかも。

でも、ざっと見る限り、探している写真はないっぽい。結局、無駄なのか?!

No comments: