MFTの修復

不可逆な操作

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が通常起動できなくても、チェックディスクを実行する方法はあります。
詳細は下記ページにて。

NTFSの修復

MFTを修復する - その[2]

これは、ちょっとイレギュラーな方法です。
ただし、MFTの修復はリスクが高いと書いてきましたが、こちらは完全に動作保証対象外です。

MFTはチェックディスクで修復するのが基本ですが、
チェックディスクは指定したパーティション全体が対象となるため、MFTに対して大掛かりな変更を加えることになります。
変更箇所が多ければ多いほど、リスクも高まります。
本来なら、加える変更は最小限にして復旧できたほうがいいです。

そこで、別のシステムを使ってMFTに問題があるパーティションを確認してみます。
たとえば、KNOPPIX」を使って、MFTに問題があるパーティションを開いてみます
すると、Windowsでは正常認識できないパーティションでも、KNOPPIXでは普通に認識できることがあります

これは、WindowsとLinuxで、NTFSパーティションの解釈の仕方が違うからだと思います。
どちらかというとWindowsは厳密で、KNOPPIXはあいまいです。
ブートセクタやファイルシステムに多少問題があっても、
すんなり認識できてしまうこともあるのがKNOPPIXのいいところです。

もし、KNOPPIXを使って修復対象のパーティションにアクセスできた場合は、
修復対象の箇所にファイルを保存します。※もちろん、事前にバックアップは取っておいてください。
これは、ファイルを保存することが目的なので、ファイルは何でもいいです。
つまり、ファイルを保存することで、KNOPPIXによってMFTを書き換えてしまうのです。

無事、KNOPPIXでファイルを保存することができたら、再起動します。
うまくいけば、MFTが書き直されることで、Windowsからもファイルシステムを正常認識できるようになります。