HDDのパーティションテーブルが消えてからのデータ復旧
先日デスクトップPCのデータ用HDDが吹っ飛びました。
原因は不明ですがデータは消えておらず、パーティションテーブルか完全に消えていました。
復旧に成功したのでその手順をメモっておきます。
問題推定
初めは何故データが消えたのかわからなかったため、その調査から始めました。
消えたのはデータ用HDDで、Windows本体は問題なく起動していたため、WindowsからHDDを見ると、
未フォーマット状態のディスクとして認識され、パーティションスタイルの選択から始まっていました。
HDDは数ヶ月前に新調したものであり、異音やエラーなどの問題も無かったため、物理的な可能性は薄いと考えました。
また、直前に大量にデータを書き込んでもいないため、データを削除した線も薄そうです。
さらに、一部のデータが読み込めなくなるのではなく、全データが一度に読み取り不能になったことから、
何らかの要因でパーティションが消えてデータが読み取り不能になり、
データ自体は残っているのではないかと考えました。
パーティションの確認
運良く手元にLinuxの起動ディスクがあったため、とりあえずパーティションがどうなっているかを確認しました。
手順としては以下のようになります。
なお、HDDがsdaにマウントされていると仮定します。
- ddコマンドでHDDの先頭をコピーする
ddコマンドはディスクからファイルやディスクにデータをコピーできるコマンドです。
sudo dd if=/dev/sda of=/tmp/hdd count=100
のようにすることで、sdaの先頭から100ブロック分を/tmp/hddファイルにコピーします。 - hexdumpコマンドで中身を見る
hexdumpコマンドはファイルの中身を16進数で出力します。
hexdump /tmp/hdd
私の場合、hexdumpの出力が先頭50MBぐらい全て0だらけだったので、
パーティションが全て0埋めされて消えていました。
そのため、次にパーティションの復活を試みます。
TestDiskでパーティション復活
壊れたディスクはPBRにしていたため、MBRと比べて大変になる場合が多いらしいですが、
TestDiskを使うと特に問題なく修復できました。
詳しい使い方はこちら。
【TestDisk】について
私の場合、これでNTFSのパーティションを修復できましたが、
何故か書き込んでいないはずのWindowsディスクが壊れてしまい、
データと引き替えにWindowsが消えてしまいました…
幸いWindowsディスクには特に重要なデータを入れていなかったのと、
Macからデータを読み出すことができたために難を逃れました。
念のため、Windowsディスクは外して作業をした方がよさそうです。