マスター ファイル テーブル
[このドキュメントは、NTFS ボリュームのバージョン 3 にのみ適用されます。]
マスター ファイル テーブル (MFT) には、NTFS パーティションからファイルを取得するために必要な情報が保存されます。
ファイルには 1 つ以上の MFT レコードがあり、1 つ以上の属性を含めることができます。 NTFS では、ファイル参照はベース ファイル レコードの MFT セグメント参照です。 詳しくは、MFT_SEGMENT_REFERENCE をご覧ください。
MFT には、ファイル レコード セグメントが含まれています。最初の 16 個は、次のような特殊なファイル用に予約されています。
- 0: MFT ($Mft)
- 5: ルート ディレクトリ (\)
- 6: ボリューム クラスターの割り当てファイル ($Bitmap)
- 8: bad-cluster ファイル ($BadClus)
各ファイル レコード セグメントは、ファイル レコード セグメント ヘッダーで始まります。 詳しくは、「FILE_RECORD_SEGMENT_HEADER」をご覧ください。 各ファイル レコード セグメントの後に 1 つ以上の属性が続きます。 各属性は、属性レコード ヘッダーで始まります。 詳しくは、「ATTRIBUTE_RECORD_HEADER」をご覧ください。 属性レコードには、属性の種類 ($DATA や $BITMAP など)、省略可能な名前、および属性値が含まれます。 すべてのストリームと同様、ユーザー データ ストリームは属性です。 属性リストは、0xFFFFFFFF ($END) で終了します。
次に属性の例をいくつか示します。
- $Mft ファイルには、MFT レコード セグメントのシーケンスである、名前のない $DATA 属性が順序に含まれています。
- $Mft ファイルには、使用されている MFT レコードを示す、名前のない $BITMAP 属性が含まれています。
- $Bitmap ファイルには、使用されているクラスターを示す名前のない $DATA 属性が含まれています。
- $BadClus ファイルには、無効な各クラスターに対応するエントリを含む $BAD という名前の $DATA 属性が含まれています。
ファイル レコード セグメントに属性を保存するための領域がなくなると、追加のファイル レコード セグメントが割り当てられ、属性リストと呼ばれる属性の最初の (または基本) ファイル レコード セグメントに挿入されます。 属性リストは、ファイルに関連付けられている各属性が見つかる場所を示しています。 これには、属性リスト自体を除く、基本ファイル レコード内のすべての属性が含まれています。 詳しくは、「ATTRIBUTE_LIST_ENTRY」をご覧ください。
MFT に関連する構造は、次のとおりです。
- ATTRIBUTE_LIST_ENTRY
- ATTRIBUTE_RECORD_HEADER
- FILE_NAME
- FILE_RECORD_SEGMENT_HEADER
- MFT_SEGMENT_REFERENCE
- MULTI_SECTOR_HEADER
- STANDARD_INFORMATION
関連トピック