/dev/sdaを部分的に上書きすると、何でも復元できますか?

/dev/sdaを部分的に上書きすると、何でも復元できますか?

私はいくつかの個人ファイルのみを含む新しいハードドライブを使って遊んで書き込み速度を確認するために、次のように入力しました。sudo dd if=/dev/zero of=/dev/sdaこれは/dev/sda/私のRaspberry Piに接続された新しい2TBハードドライブです。

コマンドをキャンセルして11MBだけ使ったらよかったです。これでディスクの内容を表示できません。これで、partedパーティションツリーが次のように表示されます。

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

以前は次のようになりました。

|--- ext4 1.82 TB

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

これで、ハードドライブがXubuntu 14.04ノートブックに接続されました。/dev/sdbgparttestdisk

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

答え1

まず、パーティションテーブルをそのまま再作成する必要があります。これは影響しませんコンテンツどのパーティションでも、各パーティションが始まり終わる場所に関するシステムのアイデアにすぎません。あなたのようです。可能「不明な」パーティションがあるように見えるので、すでにこれを実行していますが、サイズは以前のパーティションとまったく同じです。

まだ実行していない場合は、元の作成時に使用したものと同じパーティションエディタ(たとえばfdisk)を使用して大規模なパーティションを作成し、デフォルトの提案バッチを受け入れることで、そのデフォルト値が次のようになります。以前の配置は同じです。繰り返しますが、どのパーティショニングソフトウェアを使用すべきかを知っているようです:parted。gdiskparted

その後必要なトリックは、fsckスーパーブロックをバックアップするファイルシステムを使用することです。ここでは、まずデフォルトオプションを使用してファイルシステムを作成する必要があります。それ以外の場合は、ファイルシステムの作成に使用されるデフォルトオプションではなくオプションを知っておく必要があります。 (ファイルシステムは一般的にデフォルトオプションとして生成されると言いたいです。)

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

復元したものは何でも混乱する可能性があり、手動で多くのクリーンアップが必要になる可能性があることを警告したいと思います。 lost+found.

関連情報