web-dev-qa-db-ja.com

/ dev / sdaを部分的に上書きしましたが、何かを回復できますか?

一部の個人ファイルのみが含まれている新しいハードドライブをいじっていたので、書き込み速度を確認するために、次のように入力しました。Sudo dd if=/dev/zero of=/dev/sda/dev/sda/は新しい2TB接続されています私のラズベリーパイに。

うまくいけば、私はコマンドをキャンセルし、11MBしか書き込まれていません。これでディスクコンテンツが表示されなくなり、partedはパーティションツリーが次のようになっていることを教えてくれます。

|--- unallocated 8.00 MB
|--- unknown 1.82 TB
|--- unallocated 9.08 MB

以前は、次のようでした。

|--- ext4 1.82 TB

ddがディスクの最初の11MBを上書きしたかどうかはわかりません。つまり、パーティションテーブルが完全に上書きされたのか、ハードドライブのランダムなビットが上書きされたのかはわかりません。

これで、ハードドライブが/dev/sdbとしてXubuntu14.04ラップトップに接続されました。まだ実行中のgpartを試しましたが、testdiskも成功しませんでした。

ディスク全体がext4であり、セクターサイズが4096であることを知っているので、再フォーマットせずにパーティションテーブルを回復し、ファイルに再度アクセスできるようにすることは可能ですか(一部が破損/削除されている場合でも)?または私が持っている唯一の解決策は、このドライブに保存されているコピーするデータの量のために面倒なファイル回復ツールを使用することですか?

5
GeoffreyFrogeye

まず、パーティションテーブルを以前の状態に再構築する必要があります。これは、パーティションのcontentsには影響せず、各パーティションの開始位置と終了位置に関するシステムの考え方にのみ影響します。 「不明」であるが、パーティションとまったく同じサイズのパーティションが存在するように見えるため、mightはすでにこれを実行しているようです。以前でした。

まだ行っていない場合は、最初に作成したのと同じパーティション編集プログラムを使用して、1つの大きなパーティションを作成してみてください(例:fdiskgdiskparted)そして、デフォルトの提案された配置を受け入れ、それらのデフォルトが以前と同じ配置になることを期待します。繰り返しになりますが、ここでは、使用されたパーティションソフトウェアがわかっているようです。

その後、必要なトリックは、バックアップスーパーブロックを使用してファイルシステムをfsckすることです。ここでも、ファイルシステムが最初にデフォルトのオプションで作成されたことを期待する必要があります。そうでない場合は、ファイルシステムの作成に使用されたデフォルト以外のオプションを知る必要があります。 (ファイルシステムは通常、デフォルトのオプションで作成されます。)

  1. 最初にファイルシステムを作成するために使用されたのと同じオプションでmkfsを実行します(つまり、おそらくオプションなし、デフォルトを意味します)、add -nを除く、つまりドン実際のファイルシステムを作成しないでください。
  2. mkfs出力は、代替スーパーブロックのリストを出力します。ファイルシステムのメインスーパーブロックが上書きされているため、これらのいずれかを使用する必要があります。上書きされたブロックデバイスの部分が大きいほど、リストの代替スーパーブロックが破損します。
  3. -bオプションを指定してfsckを実行し、代替スーパーブロックを指定します。

私はあなたが回復するものは何でも大きな混乱になる可能性があり、多くの手動のクリーンアップが必要になることを警告しなければなりません。 lost+foundで再添付されたかなりの損失と失われたファイルが予想されます。

7
Celada