FreeBSDにて。
いつも使っていたUSBメモリがfsckで「partition 1 does not end on a track boundary.」(パーティション1がトラックの切れ目で終わってないよ!)のエラーが出てしまい、mountできなくなってしまった。
なんとかかんとかデータをデータのサルベージはできたので、その手順を記録。

### 手順
#### ①データ退避 ddコマンドで。 ```sh $ dd if=/dev/da0 of=usb.img bs=128M $ dd if=/dev/da0 of=usb.noerror.img conv=noerror,sync bs=128M ```
#### ②デバイスにファイルを割り当て mdconfig を使って、上記イメージファイルをデバイスにする ```sh $ mdconfig -a -t vnode -f usb.noerror.img md0 ```
確認 ```sh $ ls -l /dev/md0 ```
マウントしてみるテスト ```sh $ mount /dev/md0 /mnt mount: /dev/md0 R/W mount of /export denied. Filesystem is not clean - run fsck.: Operation not permitted ```失敗!
#### ③割り当てたデバイスをリカバリ fsckする ```sh $ fsck /dev/md0 fsck: Could not determine filesystem type ```ダメー!
fsck_ffsで再チャレンジ ```sh $ fsck_ffs /dev/md0 ** /dev/md0 ** Last Mounted on /export ** Phase 1 - Check Blocks and Sizes ** Phase 2 - Check Pathnames ** Phase 3 - Check Connectivity ** Phase 4 - Check Reference Counts ** Phase 5 - Check Cyl groups 12623 files, 895298 used, 1016773 free (1181 frags, 126949 blocks, 0.1% fragmentation) ***** FILE SYSTEM MARKED CLEAN ***** ```
もっかいマウント ```sh $ mount /dev/md0 /mnt $ ls /mnt .snap bin svn-repos usercmd ```
マウント成功!
とりあえず、これでデータをサルベージ。
#### ④後始末 いろいろアンマウント ```sh $ umount /mnt $ mdconfig -d -u /dev/md0 ```