Linux で Fat32 ファイルシステムを復元する方法

Linux で Fat32 ファイルシステムを復元する方法

何が起こったかは以下の通りです:

ラップトップを使用して、USB スティック上のデータにアクセスしました。その後、ラップトップを閉じてシステムをスリープ モードにしました。USB スティックはまだ差し込まれていました。ラップトップが完全にスリープ状態になった後、スティックを取り外しました (ライトが消えていたので、電源が入っていなかったに違いありません)。今日、USB スティックなしでラップトップを起動しました。今、再度差し込んでも、ファイル システムが自動的にマウントされません。

手動でマウントしてみました:

chi mnt # mount -t vfat /dev/disk/by-id/usb-JetFlash_Transcend_4GB_QTMFKJQQ-0\:0-part1 usb/
mount: wrong fs type, bad option, bad superblock on /dev/sdb1,
       missing codepage or helper program, or other error
       Manchmal liefert das Syslog wertvolle Informationen – versuchen
       Sie  dmesg | tail  oder so

やってみるとdmesg | tail次のことがわかりました:

FAT-fs (sdb1): bogus number of FAT structure
FAT-fs (sdb1): Can't find a valid FAT filesystem

fsck.vfatそこで、スティックのパーティションで次の操作を試して、どうにかして修正できるかどうかを確認しました。

chi mnt # fsck.vfat /dev/disk/by-id/usb-JetFlash_Transcend_4GB_QTMFKJQQ-0\:0-part1 
dosfsck 3.0.9, 31 Jan 2010, FAT32, LFN
Cluster size is zero.

Linux ツールを使用してスティック上のファイルシステムを修復する方法はありますか? 私は Gentoo を使用しています。

また、この動作はバグ、または少なくとも危険であると考えられるべきではないでしょうか? システムがスリープ モードのときにスティックを取り外すのは、私にとっては一般的な使用例のように思えます。また、取り外した場合、システムを再びオンにする前にスティックを戻すことを忘れることは非常に多く、これがファイルシステムをこのように破壊するべきではないと思います。このバグを報告したいのですが、どのメーリング リスト/バグ トラッカーが適切かわかりません。

編集:

ネットでいくつかの提案を見つけましたただし、これを使用して試してみると:

dd if=/dev/disk/by-id/usb-JetFlash_Transcend_4GB_QTMFKJQQ-0\:0-part1 of=sector6.bin bs=512 count=1 skip=6 conv=noerror,sync
dd if=sector6.bin of=/dev/disk/by-id/usb-JetFlash_Transcend_4GB_QTMFKJQQ-0\:0-part1 bs=512 count=1 conv=noerror,sync,notrunc

その後も同じエラーが発生します。CHKDSK F: \R \Tいくつかの投稿で提案されているように、Windows での使用も試みましたが、このツールはドライブを「RAWサポートされていない」と報告するだけです。

答え1

USB スティックに何かを行う前に、そのイメージを作成する必要があります。

dd bs=4k of=stick.img if=/dev/disk/by-id/usb-JetFlash_Transcend_4GB_QTMFKJQQ-0\:0

次に、スティックを安全な場所に保管し、さらにデータを破壊する代わりに stick.img ファイルを使用して操作を行います。

重要なファイルはありますか?チェックhttp://www.cgsecurity.org/wiki/PhotoRec復元ツール用。名前が示すように、写真以外のものも復元します。

データを回復したら、古いファイルシステムはもはやデータを保存できないため、USB スティックに新しいファイルシステムを作成します。(mkfs.vfat)

関連情報