web-dev-qa-db-ja.com

パーティションテーブルが破損しています(USBフラッシュドライブ)

これは8 GBのPatriotサムドライブで、大量のデータを使用して幅広く使用しています。今日、それは検出されましたが、-すべてのデータが消えています:[〜#〜] edit [〜#〜]at少なくとも一部のデータは残っていますが、パーティションテーブルはなくなっています)


[〜#〜] edit [〜#〜]@Sathya(ありがとう)Sudo fdisk -lからの関連する出力は次のとおりです:

Disk /dev/sdc: 8019 MB, 8019509248 bytes
247 heads, 62 sectors/track, 1022 cylinders
Units = cylinders of 15314 * 512 = 7840768 bytes

Disk /dev/sdc doesn't contain a valid partition table

それは/ dev/sdcのようで、8 GBがあり、パーティションテーブルはありません。

/ dev/sdcをマウントしようとしました(そしてdmesg | tail):

/media> Sudo mount /dev/sdc mytmp
mount: wrong fs type, bad option, bad superblock on /dev/sdc,
       missing codepage or other error
       In some cases useful info is found in syslog - try
       dmesg | tail  or so

/media> dmesg | tail
[   24.300000]  sdc: unknown partition table
[   24.320000] sd 2:0:0:0: Attached scsi removable disk sdc
[   24.370000] usb-storage: device scan complete
[   26.870000] EXT2-fs error (device sdc): ext2_check_descriptors: Block bitmap for group 1 not in group (block 0)!
[   26.870000] EXT2-fs: group descriptors corrupted!
[   50.420000] unhashed dentry being revalidated: .DCOPserver_eeepc-brendanma__0
[   50.430000] unhashed dentry being revalidated: .DCOPserver_eeepc-brendanma__0
[   50.430000] unhashed dentry being revalidated: .DCOPserver_eeepc-brendanma__0
[ 5565.470000] EXT2-fs error (device sdc): ext2_check_descriptors: Block bitmap for group 1 not in group (block 0)!
[ 5565.470000] EXT2-fs: group descriptors corrupted!

[〜#〜] edit [〜#〜]@Col:testdiskの結果

Disk /dev/sdc - 8013 MB / 7642 MiB - CHS 1022 247 62
Current partition structure:
     Partition                  Start        End    Size in sectors

Partition sector doesn't have the endmark 0xAA55

[proceed]を押すと、次のように表示されます。

Structure: Ok.


Keys A: add partition, L: load backup, Enter: to continue

「構造:OK」 「A:パーティションの追加」で古いデータにアクセスできるようになりますか(まだそこにある場合)、または新しい新しいパーティションが作成されますか?

別のオプションは「[ MBR Code ] Write TestDisk MBR code to first sector」です-これを行う方が良いでしょうか?


[〜#〜] edit [〜#〜]以下を使用して、少なくとも一部のデータがまだフラッシュドライブ上にあることがわかりました。そして、より少ない英語のテキストを検索します( "the"など):

cat /dev/sde | tr -cd '\11\12\40\1540-\176' | less

(ドライブを「/ dev/sdb」から「/ dev/sde」に変更しました。今日、追加のドライブをいくつか接続したためです)。 「/ dev/sde1」が最初のパーティションになることを知りました。 「/ dev/sde」はドライブ全体です。 unixはこれらのデバイスをファイルと同じように扱うため、catのような通常のunix fileコマンドをすべて使用して、他のデータストリームと同じように処理できます。上記のtrは、印刷不可能な文字を削除します(「\ 40」はスペースであり、保持したかったのです)。以下では、Vimと同様に「/」を使用して検索できます。

どうすればデータを元に戻すことができますか(データがまだあると仮定した場合)?パーティションテーブルのみが破損している場合、標準の「パーティションリカバリツール」はありますか?すべてを削除せずに「再パーティション」する方法はありますか?

9
13ren

デバイス上でtestdiskを実行する価値があるかもしれません。パーティションテーブルがポップしたように思えます。 Testdiskはデータを回復できるはずです。

6
Col

心配しないでください、あなたのデータは消えていません---グラフィカルインターフェースが何を言っているかに関係なく、ディスクがマウントされていないことは正しいです。

次のように(rootとして)マウントすることができます:

mount /dev/sdb1 /media/Patriot\ Memory

ここで、私はthinksdb1はUSBスティックを指します-sdc1またはsdd1

1

パーティションテーブルを再構築することは可能ですが、デバイスのイメージを取得するために最初に実行する必要があります。これはdd if=/dev/sdb of=~/memstick.imgで実行できます-必要に応じてパスを変更します。

それが終わったら、 PhotoRec を実行します。これにより、そこにあるすべてのファイルを引き出すことができるはずです。必要なものがすべて揃っている場合は、スティックをフォーマットしてもう一度やり直してください。そうでない場合は、さらにデータを回復できます。

1
Dentrasi

ddrescueは、必要なツールです。 testdiskなどから投稿した出力に基づいて、パーティションテーブルをサルベージし、他の方法でデータにアクセスすることはできないと思います。

http://www.forensicswiki.org/wiki/Ddrescue

ddrescueはデータ回復ツールです。あるファイルまたはブロックデバイス(ハードディスク、cdromなど)から別のデバイスにデータをコピーし、読み取りエラーが発生した場合にデータをレスキューしようとします。

Ddrescueの基本操作は完全に自動です。つまり、エラーを待機したり、プログラムを停止したり、ログを読み取ったり、リバースモードで実行したりする必要はありません。

Ddrescueのログファイル機能を使用すると、データは非常に効率的に救出されます(必要なブロックのみが読み取られます)。また、いつでも救助を中断して、後で同じ時点で再開することができます。

Ddrescueは、入力で不良セクターを検出したときにゼロを出力に書き込まず、要求されない場合は出力ファイルを切り捨てません。したがって、同じ出力ファイルで実行するたびに、すでに救出されたデータを消去することなく、ギャップを埋めようとします。

ファイル、cdromなどの損傷したコピーが2つ以上あり、同じ出力ファイルを使用して、一度に1つずつddrescueを実行すると、完全でエラーのないファイルが得られます。これは、異なる入力ファイルの同じ場所に損傷領域がある可能性が非常に低いためです。ログファイルを使用して、必要なブロックのみが2番目以降のコピーから読み取られます。

1
Sam Dunlap