人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

質問: FATが壊れているメモリカード内のファイル一覧を取得する方法


linuxで FATテーブルの壊れたメモリカードをマウントし、findコマンドでカー
ド内のファイル一覧を取得しようとすると以下のようなエラーをsyslogに吐き
続けてfind が終了しない状況が起きています。

> ...
> FAT: Filesystem panic (dev sdb1)
> fat_get_cluster: invalid cluster chain (i_pos 0)
> attempt to access beyond end of device
> sdb: rw=0, want=3926688, limit=3915072
> ...

/dev/sdb1はCentOS5.3で以下のように自動マウントされています。
/dev/sdb1 on /media/NO NAME type vfat (rw,noexec,nosuid,nodev,shortname=winnt,uid=500)


質問したいのは「FATが壊れているメモリカード内のファイル一覧を取得する
方法」についてです。FAT修復後の完全なリストは得られなくても構わないの
で、永遠に返ってこない状態が回避できれば良いと考えています。

自分で試した方法としては以下のようなものです。これ以外のアイディアを募
集します。 mountや findのオプションで何とか対処できるのが良いと考えて
います。

* FATテーブルを修復してから使う
* 一定時間経過後に強制中断する

●質問者: Nunocky
●カテゴリ:コンピュータ
✍キーワード:access Beyond CHAIN Cluster FAT
○ 状態 :終了
└ 回答数 : 3/3件

▽最新の回答へ

1 ● JULY
●27ポイント

原理的には

Manpage of DD

dd if=/dev/sdb1 of=~/fd.img

と dd を使ってイメージファイルを抜き出して、抜き出したイメージファイルをバイナリエディタで開いて、FAT の構造を考えながら見つけ出す。

FAT ファイル・システムの覚え書き

....とすれば可能だと思うのですが、さすがにイメージファイルをそのままバイナリエディタで、というのがあまりにも原始的なので、何か良いツールがあると良いのですが、今のところちょっと見つけられません。


2 ● RON
●27ポイント

linux上での修復に固執していては、なかなか直るものも直らないと思います。(たしかに頑丈に作られていて、少々ならばコケないんですが)

メッセージはファイルシステムとしてクラスターのチェーンが壊れているという内容ですから、通常のファイルリストを取るルーチンをもっているものはコケると思います。

Windowsはやはり、豊富にユーティリティがあり、CHKDSKというOSコマンドでクラスタ破壊を修復するものや、

SCANDISK(http://www.shareedge.com/modules/shareware/view.php?lid=20090327...)といったものを試用することで、なんとかなることもあります。

さらにMSサイトからダウンロードできる、DiskProbeを使えばFATを直接読むことで、ファイルリストだけを取ることも可能です。

http://itaya.corso-b.net/TIPS/DiskProbe/DiskProbe.html

Linuxでの修復はむつかしいか、と思います。こういうのは代替がないので、一回やりそこなうと永遠にデータが消えたりしますものね。


3 ● hijk05
●26ポイント

FATテーブルを修復してから使う

http://www.asahi-net.or.jp/~DI5T-MTD/down2.htm

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ