FAT 和 NTFS 文件系统比较说明

FAT and NTFS file systems comparison clarifications

我开始研究文件系统,尤其是 FAT* 和 NTFS。

在 FAT 文件系统中,簇可以是数据簇或目录簇,并且根目录的起始簇号始终是已知的,因为在 FAT32 之前它在格式化时是固定的,而对于 FAT32 则在扩展中找到引导扇区中的 BIOS 块。

另一方面,NTFS 将所有内容组织在主文件 Table 下,系统中的每个文件和目录都有一个 MFT 记录。 主文件 Table 的前 27 个位置标记为保留,第一个索引由 $MFT 记录组成,它描述了 MFT 本身。

我了解 NTFS 如何通过驻留/非驻留数据属性跟踪数据,而 FAT 使用目录条目查找集群链的第一个集群并参考文件分配 Table 进一步了解处理中。

现在我觉得很难"processing"这些东西。

我在哪里可以找到 NTFS 中的根目录?

目录在 MFT 记录中是如何表示的?驻留和非驻留两种方式,如何通过当前的MFT记录找到子目录的MFT记录?

如果在 MFT 记录的后半部分中指定的集群运行超出 1024 字节的限制怎么办? (我知道这意味着文件碎片严重)

我必须自己回答,因为它可能对其他人有用。

NTFS 中的根目录位于 MFT 保留记录的索引 5 处。

NTFS 中的目录 MTF 记录几乎表示为文件 MTF 记录,但存储的不是数据属性部分,而是索引根和索引分配属性。 Index Root 包含 MFT 中的 MFT 记录的索引,代表存储在实际目录中的文件和目录。

在数据运行大于 1024 字节限制的情况下使用索引分配,以取消对另一个 MFT 记录的数据延续的引用。