リムーバブルディスクを使う

FD や CD など、昔からあるデバイス以外のリムーバブルメディア… たとえば ノートのカードスロットで読み書きするメモリカード、 USB ポートに直結するメモリキーやメモリカードのリーダライタ、 Zip / PD などのリムーバブルメディア、外付けのハードディスクなど、 ディスクとして認識して使用するデバイスは山ほどあるが、扱いは同じである。

  • どういうデバイスとして認識されているか(いないか)を確認する。
  • fdisk でパーティションの切られ方を観察する。
  • BSD パーティションであれば、disklabel で中身がどうなっているかを確認する。
  • 適切に読み書きする(mount するなり、dd でアクセスするなり)。

たいがいのディスク類は da (SCSI もしくは SCSI エミュレーション) として動作する。 camcontrol(8) を読んでおく。devlist 、rescan all、eject あたりをよく使う。

USB メモリキー

usbd が enable になっていれば、 あとはブツをポートに突っ込んでやってデバイス割り当てが行われることを確認すればよい。 何番目かの da として認識するはずだ。

ほとんどの USB メモリは VFAT なので mount_msdosfs を使用する。 いつからか調べていないが、msdosfs では各国語が簡単に使えるようになっている。 マウントする際のオプションで from to のコードを指定してあげればよい。

# /sbin/mount_msdosfs -l -L ja_JP.eucJP -D CP932 /dev/da0s1 /mnt

やや長いので、うまくいったら /etc/fstab に書いておくと便利である。 使っているシステムが対応していないようであれば、懐かしの ja-msdosfs を使えばいい。

# grep usbkey /etc/fstab
  /dev/da0s1 /usbkey msdosfs rw,noauto,-l,-L=ja_JP.eucJP,-D=CP932 0 0

ZIP

zip ドライブは scsi, atapi, parallel, usb などいろいろな種類があるが、 あいにく parallel の 100 と usb の 750 しか持っていないので、 これらについて記録しておく。

parallel 100の場合、カーネルを再構築して vpo を入れるか、 カーネルモジュール vpo を kldload で入れればよい。 usb 750 の場合、挿しただけで da として認識する。

通常の新品媒体は DOS 領域はなぜか4番目にあるので、そこを指定すれば mount できる。

# mount -t msdos /dev/da0s4 /mnt

また、zip100 も zip750 も、ufs でフォーマットして使うことができる。 どちらもやりかたは同じ。 da1 として見えていると仮定して、以下の通り。

(4.x の場合)
# dd if=/dev/zero of=/dev/rda1 count=2
# disklabel -Brw da1 auto
# newfs /dev/rda1c
# mount /dev/da1c /zip100

古い Macintosh の FD ドライブのように、ドライブがメディアを排出する能力を持っているので、コマンドでこれを行うことができる。 デバイスIDを camcontrol で調べて、そこに eject を送ればよい。

# camcontrol rescan all
# camcontrol devlist
# camcontrol eject 1:6:0

内蔵ディスクの NTFS パーティションの救済

外付けではあまりお目にかかれないが、内蔵ディスクでは NTFS パーティションから データのサルベージだけでも行いたい… という欲求があるケースもあるだろう。 このような場合のために mount_ntfs があるのだ。

# /sbin/mount_ntfs -u user -C eucjp /dev/ad0s1 /mnt

このようにすれば、日本語については euc っていうことで mount できる。 今のところ書き込みはできないけど、サルベージにはこれで充分だ。

[$Revision: 1.4 $ $Date: 2006.03.13 04:01:51 $]
[EOF]