システムファイルシステムはファイルシステムを記述しているファイル レコードであり、ファイルシステムを実装するために使われるものです。
それぞれのシステムファイルは、次のような役割を持っています。
ボリューム内の全てのファイルへのポインタを持っています。
マスタファイルテーブルがなんらかの障害でダメージを受けたときのための バックファイル用のファイルです。
次ページのリカバリのための情報を記録しておくファイルです。
ボリューム名、バージョン、その他のボリュームに関する情報をもった ファイルです。
アトリビュート名、番号、その他のアトリビュートの詳細を定義する ファイルです。
ルートディレクトリに相当するファイルです。
クラスタの空き状況、書き込み状況などを管理するためのビットマップを もったファイルです。
ボリュームのブートストラップが入ったファイルです。ブート可能な ボリュームにあります。
ボリューム内のエラーが発生したクラスタを記録しておくファイルです。
以上が、システムファイルとしてNTFSを管理するためのファイルです。 通常のファイルは、図で示したように、スモールファイル(ディレクトリ) とラージファイル(ディレクトリ)で構造が異なります。NTFSではファイル とディレクトリは同じ形式で扱われます。
スモールファイル(ディレクトリ)は一つのレコードで収まる形になって おり、以下に示す構造をしています。
NTFSファイルはマスタファイルテーブルにファイル管理用8つのファイル レコードを持ち、17番目以降のレコードはユーザファイル(ディレクトリ) に使用されます。このようにマスタファイルテーブルにはユーザファイル (ディレクトリ)のためのスペースがありますが、その配列はレコードを 業とし、属性を列とするリレーショナルデータベースの形式になっています。 このように、NTFSはファイルやディレクトリの属性の集合体として マスタファイルテーブル上で実現しています。
NTFSは以下に示すようにディレクトリやファイルをバイナリデータとして ではなく属性の集合体として扱います。NTFSは各属性をバイトのストリーム として格納しており、属性のストリームを参照します。 このマスタファイルデーぶるの一つのレコードに属性が完全に入りきらない ファイルやディレクトリをラージファイル、ラージディレクトリといい、 エクステント領域をもった形式をとります。
例えば、ファイルの属性の「データ」がマスタファイルテーブルに入らない 場合、以下に示すように、マスタファイルテーブルとは別のディスク スペースに2KBのエクステント領域を取ります。
その後さらに大きくなると別のエクステント領域を取ります。このエクステント はB+ツリー構造の形式で拡張していきます。
2つのデータエクステントのラージファイルのためのMFTファイルレコード
ラージディレクトリの属性のインデックスルートは多くのファイル インデックスを持つためのマスタファイルテーブルに1レコードで 納まりません。そこでインデックスバッファーと呼ばれるエクステント にインデックスルートの一部を格納します。
ラージファイルのMFTファイルレコード