← ブログに戻る

MFT を使って NTFS から削除済みファイルを復元する方法

· 読了 1 分

結論: NTFS 上で削除されたファイルは、通常、MFT レコード スロットが再利用され、データ クラスタが上書きされるまで復元可能です。小さなファイルなら、内容は MFT レコード自体 の中に格納されていることが多く、クラスタが消えても生き残ります。信頼できるワークフローは、ボリュームの使用を止め、イメージング し、その後フォレンジック パーサーで MFT をリプレイするか、ディスクから FILE シグネチャをカービングすることです。

削除が消去にならない理由

Windows が NTFS ボリュームからファイルを削除すると、3 つのことが起こり、1 つのことは起こりません。

  1. ファイルの MFT レコードの 使用中 フラグがクリアされる。
  2. ファイルのデータを保持していたクラスタが $Bitmap 内で空きとしてマークされる。
  3. 親ディレクトリのインデックス エントリが削除される。

起こら ない こと: 実際にレコードやクラスタを上書きするものは何もありません。次の割り当てに使えるとマークされるだけです。何か他のものがそれらを取るまで、ファイルは復元可能です。フィールド単位の詳細は NTFS でファイルを削除したときに何が残るか を参照してください。

ステップ 1: ボリュームへの書き込みを止める

ボリュームへの書き込みのたびに、削除レコードのスロットやデータ クラスタが再利用されるリスクがあります。ファイルが重要なら:

  • そのファイルに触れたアプリケーションを停止する。
  • ファイルがシステム ドライブにあり、システムがまだ動いている場合、OS 自体が絶えず書き込んでいます。電源を落とすか、外部メディアからブートしてください。
  • 外付けドライブなら、直ちにアンマウントしてください。

ステップ 2: ディスクをイメージング する

オリジナルではなく、必ずコピーで作業します。標準的な選択肢:

  • FTK Imager — 無償、GUI、.dd.E01 イメージを生成。読み出し時にソースをハッシュ化します。
  • dd(Linux/macOS)— ビット単位コピー。dd if=/dev/sdX of=disk.img bs=4M conv=noerror,sync status=progress
  • ddrescue — 遅いが、故障しかけのドライブの読み取りエラーに耐えます。

取得直後にイメージを SHA-256 でハッシュ化してください。以降のすべての手順はイメージに対して行います。

ステップ 3: 3 つのアプローチのいずれかで復元する

MFT リプレイ$MFT を解析し(イメージから抽出するか、その場で読む)、削除済みレコードを列挙するツールにかけます。削除ファイルの名前、タイムスタンプ、そして(小さなファイルでは)データがレコード自体から復元できます。

  • MFTECmd は削除レコードを列挙し、常駐データにタグを付けます。
  • 本サイトのブラウザ パーサー はワン クリックで削除エントリにフィルタし、そのメタデータを CSV にエクスポートできます。

ファイル システム認識型の復旧ツール — ライブ ファイル システム(またはイメージ)を読み、削除ファイルを選択的に復元します。

  • R-Studio — 商用、NTFS のアナリストご用達。複雑な損傷に対応します。
  • TestDisk + PhotoRec — 無償、成熟、パーティション損傷とシグネチャ カービングに強い。
  • Recuva — コンシューマ向けですが、単一ドライブ・単一ファイルの復元には十分。

シグネチャ カービング — MFT が失われた場合、scalpelforemost、PhotoRec が既知のファイル シグネチャ(JPEG FF D8 FF、PNG 89 50 4E 47、ZIP 50 4B 03 04 など)を生イメージから走査し、見つかったものを再構築します。カービングされたファイルはファイル名とタイムスタンプを失います — それらは MFT に入っていました — が、バイト自体は戻ってきます。

本当に復元不能なものは?

  • 上書きされたクラスタ。 現代の HDD では、一度上書きされたデータを現実的に復元する道はありません。古いフォレンジック文献の「残留磁化」復元の話は、今十年に製造されたドライブには当てはまりません。
  • TRIM で回収された SSD ブロック。 SSD コントローラが TRIM を完了すると、基盤の フラッシュ はガベージ コレクションの過程でゼロ化されます。データはすぐに失われます。
  • キーのない暗号化ボリューム。 BitLocker、VeraCrypt、または LUKS で暗号化された NTFS ボリュームは、復元キーなしでは復元不能です — 平文はそもそもディスクに触れていません。

MFT 復元しか手がない場合

ファイルが小さなテキスト ファイル、小さな JSON 設定、小さなスクリプトだったなら、データはおそらく 常駐 — 別のクラスタではなく MFT レコード内にインラインで格納されていました。$Bitmap が何十回も上書きされても、スロットが再利用されるまで常駐バイトはレコードに残っています。resident data を参照してください。

こうしたファイルでは、ブラウザ パーサー がしばしば最速の経路です。エクスポートした $MFT をドロップし、削除エントリにフィルタし、常駐 $DATA を持つレコードを探し、バイトをコピーして取り出します。

よくある質問

NTFS の削除ファイルはどのくらい復元可能ですか?

MFT スロットが再利用され、データ クラスタが上書きされるまでです。多忙なシステムでは数時間、待機状態のシステムでは数か月になることもあります。固定のタイマーはありません。

ごみ箱を空にすると復元は難しくなりますか?

いいえ。ごみ箱は各ボリュームの隠しディレクトリ($Recycle.Bin)に過ぎません。「空にする」は通常通りファイルを削除します — 同じ復元手法が適用されます。

del /F や Shift+Delete で削除したファイルは復元できますか?

はい — ごみ箱をスキップしますが、削除の仕組みは同じです。MFT レコードは再利用されるまでそこにあります。

フォーマットされた NTFS ドライブからファイルを復元できますか?

クイック フォーマットはブート セクタと新しい $MFT を書き直すだけです。古いデータ クラスタの大部分は無傷で、以前の MFT レコードの多くも残ります(NTFS は同じ開始オフセットを再利用します)。シグネチャ カービングで多くが復元できます。フル フォーマットはボリュームをゼロ化します — そのデータは失われます。

外部リソース