NTFS文件系统是随着Windows NT操作系统诞生而产生的,其优点是安全性和稳定性都非常出色,不易产生文件碎片,且其B+树的文件管理策略相比FAT文件系统中的链表技术有更多优势。
NTFS文件系统与FAT文件系统一样,也是用簇为基本单位对磁盘空间和文件存储进行管理的,NTFS文件系统有逻辑簇号(Logical Cluster Number,LCN)和虚拟簇号(Virtual Cluster Number,VCN)两种方式对卷进行管理,其中逻辑簇号是对卷的第一个簇到最后一个簇进行编号,而虚拟簇号是将特定文件的簇从头到尾进行编号。NTFS文件系统的第一个扇区为引导扇区(DBR扇区),其中包含相应的引导程序和BPB参数,如下图所示为NTFS文件系统的大致结构。
DBR后面是15个扇区的NTLDR区域,这16个扇区构成了 $ BOOT文件,在NTLDR后面是主文件表(Master File Table,MFT)区域,主文件表由文件记录(File Record, FR)构成,每个文件记录占2个扇区,在FAT文件系统中是通过FAT表和文件目录项存储文件数据和记录文件的文件名、扩展名、创建时间、文件大小、占用簇等信息的,但NTFS文件系统把这些信息统称为属性,同时文件内容也是文件记录中的属性,这些属性都是由文件记录FR进行管理的,当一个属性太大,一个文件记录中存放不下时,就会将其分配到多个文件记录中进行存放,当一个属性太小,甚至文件内容也不多时,其可以存放在一个文件记录中。
NTFS文件系统中存放系统数据的是元数据(metadata)文件,即元文件,其文件名的第一个字符都是“ $ ”,包含了文件系统相关的数据结构、引导程序及整个卷的分配位图等,NTFS文件系统中包含16个元文件,具体如下图。
在NTFS文件系统中,所有数据都是以文件的形式出现的,每个文件都有一个文件记录,包括元文件本身,主文件表 $MFT就是专门用来存储文件记录的一个元文件,在 $MFT中前16个文件记录总是元文件的记录,系统通过 $MFT来确定文件的位置和属性。
每个文件记录在主文件表中占据两个扇区的空间,也就是1KB,如上NTFS文件系统的结构图只是示意图,不完全成比例,元文件在图中也只体现了一部分,且除了 $BOOT文件以外,其他元文件的位置不是固定的,对于数据恢复需要注意的一点DBR的备份在NTFS系统分区的最后一个扇区,但该扇区不属于NTFS系统。
用WinHex查看NTFS文件系统的DBR,如下图所示,其也由跳转指令、OEM代号、BPB参数、引导程序和结束标志几部分构成。
NTFS系统的BPB有很多部分与FAT系统相似比较重要的部分包括每扇区字节数、每簇扇区数、保留扇区数、隐藏扇区数、扇区总数、 $MFT的起始簇号、 $MFTMirr的起始簇号等。