失われたパーティションのすべてのファイルを回復する

失われたパーティションのすべてのファイルを回復する

2つのパーティションを持つSDDがあります。 1つ目は32Gで、2つ目はドライブの残りのスペースを占めています。 1つ目はUbuntuがインストールされているルートパーティションです。二つ目は一般収納空間である。

誤って次のコマンドを使用して、このsddにddを指定しました。

dd if=/2g-ubuntu.iso of=/dev/sda

3G未満の連続データは物理ディスクの先頭に書き込まれるため、この上書きは2番目のパーティションには達しません。だからすぐにドライブをアンマウントし、読み取りモードでのみマウントしました。 2番目のパーティションのinodeと領域には何も書き込まれなかったため、そのファイルは影響を受けませんでした。

testdiskは、スーパーブロックが破損していることを伝えます。

すべてのバックアップスーパーブロックを読み取ろうとしましたが、そのスーパーブロックも破損しています。

したがって、ファイルを回復するには、inodeとその領域データの読み取りに依存する必要があるようです。

ディスクの適切な部分を指してすべてのファイルを収集できるプログラムはありますか? testdiskを見ましたが、ファイル形式のみを探しているようですが、判断せずにすべてのファイルを見つけるには必要です。

トラブルシューティング - ddを使用して失われたパーティションを見つける

from subprocess import Popen, PIPE

count = 0

skip32Gigs = 0

while 1:

    dd_args = ["dd", "if=/dev/sda", "bs=512", "skip=" + str(skip32Gigs+count), "count=4"]
    file_args = ['file', "-"]
    print 'dd_args', dd_args

    dd_process = Popen(dd_args, stdout=PIPE)
    file_process = Popen(file_args, stdin=dd_process.stdout, stdout=PIPE)
    dd_process.stdout.close()
    out, err = file_process.communicate()

    print out.split(), err

    if "Linux" in out.split():
        break

    count += 1

XXX

ベストアンサー1

おすすめ記事