web-dev-qa-db-ja.com

ext4ファイルシステムの残骸がtestdiskでサルベージ

要点:testdiskは、ファイルシステムと階層をナビゲートし(明らかに無傷であるかのように)、個別にファイルを回復することができます。それらすべてを自動的に実行させる方法はありますか?


物語:

2017年10月まで〜2016rPIで使用されていたフレーク状の外部USB3TBドライブの不変のgddrescueクローン(セクター間コピー)のddクローンから作業しています。6GBと〜3TB(?? )。 6GBが回収され、マウントされました。クローン作成では、ddrescueはドライブの25の領域で最大1MB(合計)をスクレイプできませんでした。

私の目標は、大規模なパーティションファイルの編成、ファイル、および変更時間をできるだけ多く回収することです。何よりも使用されていますが、組織を失います(ほとんどの価値)。

私は現在Ubuntu16.04.03LTSを使用していますが、不変のクローンパーティションテーブルの境界が間違っており、testdiskを使用してもっともらしいものをリカバリドライブに書き込み、最初の小さなパーティションのファイルシステムをリカバリしました。興味深いことに、fdiskはdrivelabel typeをDOSとして報告し、制限(2 ^ 32セクター?)について言及し、testdiskによって書き込まれた大きなパーティションは2TBとしてのみ表示されます。別れで、私はそれをGPTに変更し、今では完全な〜3TBを〜5.86Gsectorsとして変更しました。

2番目のパーティションファイルシステムはtestdeskでナビゲートでき、ファイルを個別に保存できます。しかし、100万を超える可能性があります。


質問:これは、ファイルシステムのsomeが存在し、部分的に無傷であることを示しています-しかし、testdiskを使用して自動的にファイル構造とファイルをキャプチャする方法がわかりません存在しています。

Testdiskはこれを行うことができますか?または、ファイルシステムの優れた点を利用できる別のツールはありますか?おそらく、これを自動的に実行するためにテストディスクにコードを追加することは合理的なアプローチですか?


別のアプローチ:testdiskを使用してパーティションテーブルを「修正」した後、パーティション2(〜3TB)のe2fsckは次のように報告します。

「(スーパーブロックによる)ファイルシステムのサイズは730993525ブロックです。デバイスの物理サイズは536870911ブロックです。スーパーブロックまたはパーティションテーブルのいずれかが破損している可能性があります!」

Mke2fs -Sの後にe2fsckを実行すると、どこでもエラーが発生し、何の価値もありません。

2017年10月に、mke2fs -Sが2番目のパーティションで実行された可能性がありますが、元の破損したパーティションテーブルを使用しています。


3番目のアプローチ:Testdiskは私にはかなり不透明なので、スーパーブロックを見つけるプログラムを作成し、最後のマウントポイントなどを検証しました。したがって、ドライブには大きなパーティションからの完全なスーパーブロックが含まれていると確信しています。これらのスーパーブロックの1つがある場合、e2fsckが残りを実行できるように、何らかの方法でそれを利用できますか?ただし、スーパーブロックには、パーティションの先頭を基準にしたブロックアドレスしかありません。スーパーブロックはいくつかの場所の1つにある必要がある(そして既知のスキップパターンがある)ので、おそらくその情報を使用してパーティションの場所の正しい開始を割り当てることができますか?

TIA!

2
pathfinder

あなたが探しています e2fsck testdiskで検出されたスーパーブロックを使用しますか?下 >[ Advanced ] Filesystem Utils>[Superblock]コマンドは"ext2/ext3/ext4バックアップスーパーブロックを検索"次のようになります。

TestDisk 7.0, Data Recovery Utility, April 2015
Christophe GRENIER <[email protected]>
http://www.cgsecurity.org

Disk 1 - 104 MB / 100 MiB - CHS 13 255 63

     Partition                  Start        End    Size in sectors

  ext2                     0   0  1    12 190 50     204800
superblock 0, blocksize=1024 []
superblock 8193, blocksize=1024 []
superblock 24577, blocksize=1024 []
superblock 40961, blocksize=1024 []
superblock 57345, blocksize=1024 []
superblock 73729, blocksize=1024 []

To repair the filesystem using alternate superblock, run
fsck.ext2 -p -b superblock -B blocksize device


>[  Quit  ]
                            Return to Advanced menu

次に、提案されたfsck.ext2/e2fsckコマンドを、「適切な」スーパーブロックが見つかるまで、さまざまなスーパーブロックで試してください。


また、Testdiskはフォルダー全体をコピーできるようです。そのため、ファイルシステムの多くがまだそこにある場合は、手動でコピーする必要があるのはルート内のフォルダーのみであり、それらのすべてのサブフォルダーとファイルもコピーされます。

うまくいけば、ルートには数百万ではなく、ほんの数個しかありませんが、:後でコピーするファイルを選択すると、次のファイルに移動し、aは(そのフォルダー内の)すべてのファイルを選択します

これは、ルートから「ダウンロード」フォルダをコピーした直後の「スクリーンショット」です(2つのファイルとCopy done! 2 ok, 0 failedメッセージは緑色です):

TestDisk 7.0, Data Recovery Utility, April 2015
Christophe GRENIER <[email protected]>
http://www.cgsecurity.org
   P ext2                     0   0  1    12 190 50     204800
Directory /
Copy done! 2 ok, 0 failed
 drwxr-xr-x     0     0      1024 17-Jan-2018 07:50 .
 drwxr-xr-x     0     0      1024 17-Jan-2018 07:50 ..
 drwx------     0     0     12288 17-Jan-2018 07:49 lost+found
 drwxr-xr-x     0     0      1024 17-Jan-2018 07:50 Documents
>drwxr-xr-x     0     0      1024 17-Jan-2018 07:50 Downloads



                                                   Next
Use Right to change directory, h to hide deleted files
    q to quit, : to select the current file, a to select all files
    C to copy the selected files, c to copy the current file
0
Xen2050