MFTが破損してしまうと、そのパーティションに対して正常なアクセスができなくなってしまいます。
そのうえうまく復旧できず、手に負えなくなってしまうことも多いです。
というのも、MFT破損の原因がハードディスクそのものにある、
つまり、ハードディスクが正常に読み書きできていない場合もあるからです。
いざ調べてみると、ハードディスクがエラー吐きまくりなんてことも珍しくありません。
しかし、ハードディスクは交換するとしても、中のデータは買うことができないので、
復旧方法を考えること自体は、決して無意味なことではありません。
そのためにはまず、MFTが何かということをおさえておく必要があります。
ほとんどの場合、MFTの修復とは、MFTを元の状態に戻すことではないからです。
「MFT」とは何か
「MFT」とは、「Master File Table」(マスターファイルテーブル)の略です。
NTFSの中核をなすデータ領域です。
MFTはNTFSパーティションごとに存在し、
パーティション内のどこにどんなファイルがあるかを記録した、住所録のようなものです。
つまり、MFTはNTFSというファイルシステムのインデックスです。
また、データサイズの小さいファイル(1KB未満)は、MFT自体に保存してしまうという特徴を持ちます。
だからMFTが破損してしまうと、パーティション内のファイルを見つけられなくなってしまいます。
ファイルによっては、MFTが壊れると同時にデータが失われます。
MFTの破損というのは、ファイルシステムの破損を意味します。
MFTはNTFSにとって非常に重要なものであり、そんなに壊れやすいものではありません。
それでもMFTが破損してしまうのは、ハードウェア側に原因があったりするからです。
※単に「故障しているから」というだけではなく。
このように万が一、MFTが破損してしまった時のために、
NTFSパーティションには、MFTのミラーが保存されています。
「MFTを修復する」ということの意味
MFTは、NTFSパーティションでファイル操作をするたびに書き換えられます。
つまり、パソコンを使っている限り、毎日、毎時、毎分でも変更されています。
だから、たとえMFTにバックアップがあったとしても、
それを破損したMFTと置き換えるというのは、あまり意味がないのです。
MFTをバックアップした時と、MFTが破損した時とでは、ハードディスク内のデータ構造が異なるからです。
一方、バックアップではなく、ミラーというものがあります。
ミラーとは、まったく同じものを、予備として別に保存しておくというものです。
前述のとおり、NTFSパーティション内には、MFTのミラーが保存されています。
「TestDisk」を使えば、現在のMFTがMFTミラーと異なる場合、
MFTミラーを用いてMFTを修復できる可能性があります。
ところが実際には、MFTとMFTミラーは一致していることが多いのです。※もっとも、ミラーとはそういうものですが。
つまり、MFTとMFTミラー双方が破損した状態で保存されているわけです。
こうなると、予備のデータを使ってどうこう、という話ではなくなってきます。
結局、ほとんどの場合で、破損した情報をもとにMFTを修正していく必要があるのです。
従って、MFTの修復には非常に大きなリスクを伴います。
MFTが破損した状態では、どれが必要なデータか不明確だからです。
ユーザーの希望通りにMFTの修復作業が完了することは、まずないでしょう。
さらに、MFTを修正するということは、MFTを上書きします。
MFTの修復は、不可逆な操作なのです。
結果うまくいかなかったとしても、元に戻すことはできません。
今までアクセスできていたファイルが、見つからなくなるかもしれません。
ファイルが存在するように見えても、データサイズは「0」になってしまうかもしれません。
いずれにせよ、やってみなければわかりませんが、
MFTの修復は、データを復元するわけではないので、危険性はかなり高いということを認識しておいてください。
必要なデータは、事前に必ずバックアップを取っておくべきです。
MFTを修復する - その[1]
MFTは、Windowsによって作成、管理されているものです。
MFTを用いるNTFS自体がMicrosoftの作ったものであり、NTFSの仕様の詳細は公開されていないため、
良くも悪くもMFTを正しく扱えるのはWindowsだけなんです。
従って、MFTを修復する機能もWindowsに用意されています。
「チェックディスク」というプログラムがそれです。
たとえWindowsが通常起動できなくても、チェックディスクを実行する方法はあります。
詳細は下記ページにて。
MFTを修復する - その[2]
これは、ちょっとイレギュラーな方法です。
ただし、MFTの修復はリスクが高いと書いてきましたが、こちらは完全に動作保証対象外です。
MFTはチェックディスクで修復するのが基本ですが、
チェックディスクは指定したパーティション全体が対象となるため、MFTに対して大掛かりな変更を加えることになります。
変更箇所が多ければ多いほど、リスクも高まります。
本来なら、加える変更は最小限にして復旧できたほうがいいです。
そこで、別のシステムを使ってMFTに問題があるパーティションを確認してみます。
たとえば、「KNOPPIX」を使って、MFTに問題があるパーティションを開いてみます。
すると、Windowsでは正常認識できないパーティションでも、KNOPPIXでは普通に認識できることがあります。
これは、WindowsとLinuxで、NTFSパーティションの解釈の仕方が違うからだと思います。
どちらかというとWindowsは厳密で、KNOPPIXはあいまいです。
ブートセクタやファイルシステムに多少問題があっても、
すんなり認識できてしまうこともあるのがKNOPPIXのいいところです。
もし、KNOPPIXを使って修復対象のパーティションにアクセスできた場合は、
修復対象の箇所にファイルを保存します。※もちろん、事前にバックアップは取っておいてください。
これは、ファイルを保存することが目的なので、ファイルは何でもいいです。
つまり、ファイルを保存することで、KNOPPIXによってMFTを書き換えてしまうのです。
無事、KNOPPIXでファイルを保存することができたら、再起動します。
うまくいけば、MFTが書き直されることで、Windowsからもファイルシステムを正常認識できるようになります。