web-dev-qa-db-ja.com

誤ってフォーマットされたext4パーティション

Gpartedを使用してext4パーティションをfat32にフォーマットしました。

回復しようとして、どの方向に踏み込むべきですか?

4
Shane

パーティションを誤ってフォーマットするというばかげた間違いを犯しました。私はネットブックにcrunchbangというLinuxディストリビューションをインストールしていたので、毎週ラップトップをクラスに持ち込む必要はありません。残念ながら、500GB以上のデータを含むext4パーティションをfat32にフォーマットしたときに、この目的でUSBフラッシュドライブをフォーマットするつもりでした。これは私が学んだことの要約です:

ファイルシステムが破損している場合は、そのファイルシステム自体または個々のファイルの回復を試みることができます。ファイルシステムの状態に関係なく、個々のファイルを復元することは可能ですが、大量のデータを扱う場合にはほとんど完全に役に立たないという欠点があります。個々のファイルをリカバリすると、データのディレクトリ構造全体が失われます(つまり、組織とファイル名)。私の場合、これらすべての音楽ファイルやその他のジャンクをふるいにかけて名前を変更するのに何年もかかるため、これはまったく役に立ちませんでした。また、多くの場合、プログラムはファイルの特定の開始ブロックと終了ブロックを見つけられず(これはほとんどの場合プレーンテキストファイルに当てはまります)、各mp3ファイルを100に分割して(私のように) 5秒のピース。

何かを試みる前にこれを最後まで読んでください...(ディスクのイメージを作成するための指示は下部にありますが、最初に行う必要があります)

別の状況(非常に少量のデータの回復や特定の検索可能なデータの検索など)にある場合は、個々のファイルの回復が選択肢となります。このために見つけた無料のユーティリティは次のとおりです。

PhotoRec

そして

ForeMost

(両方ともあなたの便宜のためにubuntuリポジトリにあります)


パーティション全体を復元することが目的の場合は、TestDiskと呼ばれるソフトウェアを探す必要があります。これはubuntuリポジトリにもあり、物事を簡単にするためのNice curses GUIがあります。

TestDiskは、ext2/3/4、ntfs、fatなどを含むすべての種類のファイルシステムと互換性があります。(そして、バイナリはWindowsおよびUNIX互換バージョンでリリースされます)残念ながら、このユーティリティで数時間後にTestDiskは見つかりました古いパーティションですが、ルートiノードが破壊されたため、TestDiskの使用をあきらめ、extバックアップスーパーブロックを手動で回復することにしました。


懸念がLinux ext2/3/4パーティションである場合、これらはユーティリティに役立つことがわかります(ほとんどの場合、すでにLinuxマシン上にあります)

これは、問題のパーティションにextファイルシステムを作成する場合に、バックアップスーパーブロックがどこに配置されるかを計算するために使用されます。ext2/ 3/4のmke2fs(make extended 2 file-system)

これは、ext2/3/4のバックアップスーパーブロックe2fsck(拡張2ファイルシステムチェック)の1つを使用して、ファイルシステムの復元を試みるために使用されます。

これらのユーティリティを使用してextスーパーブロックを手動で回復する方法についての説明は、ここにあります: http://ing-tani.blogspot.com/2013/01/repair-broken-ext4-superblock-in-ubuntu。 html

サイドノート:パーティションテーブルが無傷の場合(私には当てはまらない)、おそらくdumpe2fsを次のように使用できます: http://www.cyberciti.biz/faq/linux-find-alternative-スーパーブロック/

これらのユーティリティを使用してバックアップスーパーブロックを見つけることができない場合(おそらく、複数のパーティションを台無しにしたため、それらがどこで開始/終了するかわからない)、gpartと呼ばれるプログラムの使用を見つけることができます( gpartedまたはpartedと混同しています...まったく異なります)ext2よりも新しいlinuxファイルシステムをサポートしているかどうかはわかりませんが、この時点で心配することになるかもしれません。


この最後のアプローチを使用して、パーティション全体を正常に回復し、トップレベルのディレクトリ名を保存することができました(したがって、約6つのトップレベルフォルダの名前を変更する必要がありましたが、それらの下のすべてが保持されました)成功!

私にとって非常に重要になったもう1つのことは、めちゃくちゃになったディスクのバックアップイメージを作成することでした(回復しようとして、このイメージを少なくとも2回復元することになりました)。マシンまたは外部ドライブのスペース。

ごちゃごちゃになったドライブがsdaであり、たとえばyournameのホームディレクトリにイメージを保存する場合:dd if =/dev/sda of =/home/yourname/sda.img.bak bs = 512

リカバリ試行の失敗後にイメージを復元するには:dd if =/home/yourname/sda.img.bak of =/dev/sda bs = 512

もちろん、最初のパーティションにのみ関心がある場合は/ dev/sda1を使用できますが、これらのユーティリティの一部はパーティションテーブルを変更するため、おそらくディスク全体をイメージ化することをお勧めします。

また、大規模な操作にddを使用している場合、進行状況バーを表示すると非常に役立ちます。このバーには、パイプラインを介してデータの進行状況を報告するpvというユーティリティを使用できます。

例えば:pv -tpreb /​​ dev/sda | dd of =/home/yourname/sda.img.bak bs = 512

ところで、バックアップイメージを作成して直接作業することを提案した人もいましたが、必要に応じてディスク自体で作業しやすく(マウントしやすい)、イメージをディスクに復元する方が簡単であることがわかりました

6
Shane

ここで先ほどの関連質問へのリンク: Ntfsパーティションから非常に重要な失われたデータを回復する

データが本当に重要な場合。今すぐディスク/パーティションの使用を停止してください。アンマウントしてください!そして、ディスクの読み取り専用コピーを実行します。元のディスク上の何かを回復しようとするたびに、より多くのデータが失われる危険があります。次に、コピーしたディスクイメージで回復ツールを試してください。 dd if = your_partition of = your_disk_image_file bs = 512でイメージを作成できます(構文が正しいことを願っています)こちらもご覧ください https://help.ubuntu.com/community/ DataRecovery およびここ https://forensicswiki.org/wiki/Tools:Data_Recovery

データが失われないようにするには、作成したディスクイメージでのみ作業してください!!!!

パーティションを回復できない場合でも、データの(一部)を回復するために、何よりもまず、カービングツールを使用してみてください。このツールはディスクの内容を分析し、よく知られている形式のファイルを探します。使い方の簡単な例についてはこちらをご覧ください http://www.rissmann.ch/2014/08/09/how-to-recover-lost-files/

1
Ruediger