ファイルを復元できる理由とは

「一度消えてしまったファイルは戻らない」。この言葉は基本的に間違いではない。だが、ファイルシステムの構造を知れば、一度消えてしまったファイルもタイミングとソフトウェアの能力によって先の言葉を覆すことができるのをご存じだろうか。そこで少々長くなってしまうが、Windowsで使われるファイルシステムについて解説してみたい。

そもそもファイルシステムとは、OS(オペレーティングシステム)がコンピューター上のファイルを管理するために備える機能の一つである。任意の保存領域を分割し、そこにユーザーが作成したファイルの保存や参照といった機能を提供する、原始的ながらも現在のコンピューターに欠かせない機能の一つだ。ファイルを管理する手法からデータベースシステムに似通った能力を持つが、あくまでも構造的なものであり、役割という観点からは似て非なるものだ。

さまざまな概念や思想の上に成り立つファイルシステムは、数多くの種類が存在し、何気なく使っているCD-ROMやDVD-ROMは「ISO 9660:1988」というファイルシステムを使用しているが、Windows 8の主たるファイルシステムはNTFS(NT File System)なのだ。この他にもFAT(16/32)やexFATといったファイルシステムをサポート。まずは概要について解説しよう。

NTFSは正式名が表すように、Microsoft製ビジネス向けOSとして1993年7月にリリースしたWindows NT 3.1が搭載したファイルシステムである。それまで同社はDISK-BASIC用ファイルシステムとして開発したFAT(File Allocation Table)12を拡張し、ビット数を表す数値を付けたFAT16、FAT32を実装してきた。しかしファイルサイズの肥大化やセキュリティ強化を求めた結果、機能拡張ではなく新たなファイルシステムとしてNTFSを開発。OSと共にバージョンアップを繰り返し、Windows XP以降はNTFSバージョン3.1を使用している(図01)。

図01 Windows 8で使用されているNTFSのバージョンは「fsutil」コマンドで確認可能。Windows XP以降使用されているバージョン3.1のままだ

NTFSの独自機能に言及すると冗長になるので省略するが、下位互換性を考慮せずに開発したNTFSは、パフォーマンスに優れたファイルシステムだ。もちろん欠点がない訳ではなく、そのためMicrosoftはWinFS(Windows File System)の開発に取り組んだが計画は頓挫。サーバーOSとしてリリース中のWindows Server 2012にはReFS(Resilient File System)というNTFSの後継ファイルシステムを搭載しているが、同社もホストドライブへの適用は推奨していないように、まだ開発レベルを抜け出した段階とも言えるだろう。

次はNTFSの構造について解説しよう。図02はNTFSのボリュームを簡略化したイラストだが、大まかな構造はFATと大差ない。特徴的なのはMFT(Master File Table)の存在だ。FATと同じく、ファイル情報と実際のデータ領域を管理するMFTを備え、ファイルやフォルダーごとに一つ(もしくは複数)が対応する固定サイズのレコードから成り立ち、ファイル名やタイムスタンプなど属性情報が格納される。だが、レコードに収まる小さなファイルは、そのままレコード内に格納され、収まらないファイルはデータ保存領域に格納。レコード内にはデータへのインデックス情報のみ残す仕組みだ(図02)。

図02 NTFSボリュームのレイアウト

データ保存領域はクラスターという単位でデータを格納しているが、一般的なファイル削除は前述したMFTのレコードに削除を意味するビットを立て、"削除扱い"となる。そのため、ファイルの内容であるデータはこの時点でクラスター上に残されているのだ。つまり、多くのファイル復元ツールはこの"削除扱い"となったレコード情報を調べ、連動するデータを探し当てることでファイルを復元しているのである。

ただし、新たにファイルを作成(他のレコードが作成)されると、クラスターは空き領域として認識されるため、クラスターが上書きされてしまう可能性が増える。ちなみにNTFSでは、ボリュームサイズによってクラスターサイズは異なり、512メガバイト以下のクラスターサイズは512バイト。2ギガバイト以上のクラスターサイズは4,096バイト。連続アクセス可能な8個のセクターに対応する。一般的なファイル復元ツールの"セクタースキャン"は、このセクター単位で実行されているのだ(図03)。

図03 同じく「fsutil」コマンドでセクターやクラスターあたりのバイト数を確認できる

「HD革命/FileRecovery Windows8対応」では、MFT情報を元にファイルを復元する「通常スキャン」と、クラスター単位でボリューム全体やドライブ全体をスキャンする「詳細スキャン」を備え、誤って失ったファイルを復元することが可能だ。今回新たにWindows 8へ対応した「HD革命/FileRecovery Windows8対応」では、パーティションをまるごと復活させるパーティション修復ツールや、起動しなくなったパソコンからデータを救出するファイルコピーツールなどを備える「同Professional版」と「同Standard版」の2種類を用意。今回は同Professional版によるファイル復元のロジックを紹介する(図04~05)。

図04 「HD革命/FileRecovery Professional版 Windows8対応」。標準価格は税込み7,980円(ダウンロード版は6,380円)

図05 「HD革命/FileRecovery Standard版 Windows8対応」。標準価格は税込み4,980円(ダウンロード版は3,980円)