主文件表

[本文档仅适用于 NTFS 卷的版本 3。]

主文件表 (MFT) 存储从 NTFS 分区检索文件所需的信息。

文件可能有一个或多个 MFT 记录,可以包含一个或多个属性。 在 NTFS 中,文件引用是基本文件记录的 MFT 段引用。 有关详细信息,请参阅 MFT_SEGMENT_REFERENCE

MFT 包含文件记录段;其中前 16 个是为特殊文件保留的,例如:

  • 0:MFT ($Mft)
  • 5:根目录(\)
  • 6:卷群集分配文件($Bitmap)
  • 8:群集文件错误($BadClus)

每个文件记录段都以文件记录段标头开头。 有关详细信息,请参阅 FILE_RECORD_SEGMENT_HEADER。 每个文件记录段后跟一个或多个属性。 每个属性都以属性记录标头开头。 有关详细信息,请参阅 ATTRIBUTE_RECORD_HEADER。 属性记录包括属性类型(如$DATA或$BITMAP)、可选名称和属性值。 用户数据流是一个属性,与所有流一样。 属性列表以0xFFFFFFFF($END)终止。

下面是一些示例属性。

  • $Mft文件包含按顺序排列的 MFT 记录段序列的未命名$DATA属性。
  • $Mft文件包含一个未命名的$BITMAP属性,该属性指示正在使用哪些 MFT 记录。
  • $Bitmap文件包含一个未命名的$DATA属性,该属性指示正在使用哪些群集。
  • $BadClus文件包含一个名为$BAD的$DATA属性,该属性包含对应于每个错误的群集的条目。

在文件记录段中存储属性没有更多空间时,将分配其他文件记录段,并将其插入到名为属性列表的属性的第一个(或基)文件记录段中。 属性列表指示可以找到与文件关联的每个属性的位置。 这包括基本文件记录中的所有属性,属性列表本身除外。 有关详细信息,请参阅 ATTRIBUTE_LIST_ENTRY

与 MFT 相关的结构包括:

NTFS 技术参考