rmt その後

FreeBSD の struct mtget は 76bytes あるが、rmt が 24bytes で切ってしまう。
xfsdump の BUFMAGIC が 64 に設定されており、76bytes 返されたら死ぬ。
というわけで、これはそれぞれあっという間に修正できるわけだが。
mt_gstat = 0 だと、drive not ready ということになってしまうらしい (笑)。そこで、猛烈に乱暴なやりかただが、rmtioctl.c で、
dstp->mt_gstat = 0;
dstp->mt_gstat |= GMT_ONLINE(0xffffffff);
と書いてみた。しかし、これではテープの終わりが正しく検出できなかったようで、
xfsdump: NOTE: dump interrupted: 18019 seconds elapsed: may resume later using -R option
xfsdump: Dump Status: INTERRUPT
ということで終わってしまった。つまり、正しく次のテープを要求させるには何らかの仕掛けが必要なのだが、これは FreeBSD 側の rmt の改造も含めて、けっこうがんばらないといけないのではないだろうか。うーん。EOT が正しく検出できればいいのかなあ。

コメントを残す