NTFS文件统MFT元文件
2021-07-01
426
0
磁盘分区在格式化成NTFS文件系统后,就为其创建了一个主的文件表MFT。当然格式化后,由于整个磁盘是空的,没有存储任何文件数据,所以在MFT中只存储了16个文件系统预置的元文件记录。这16个元文件记录存储在MFT的前16项。这16个文件如下:
NTFS文件系统MFT每项大小为1024个字节即2个扇区,分为固定大小的MFT头和属性列表。
NTFS是以文件为单位进行管理的,故MFT分区也有一个文件名为”$MFT”,故其文件可按需要进行增加或缩小。MFT分区存储的是MFT项,也即$MFT文件中存储的是MFT项。为了提高磁盘的使用效率,MFT区一般会在文件系统格式化时会预分为整个文件系统的12.5%,且位于整个文件系统的中间靠前区域。
MFT项
MFT项的编号由0开始,并存储在MFT项的头部。
字节偏移 | 字数数 | 含 义 |
---|---|---|
00~03 | 4 | 签名值,固定为”FILE”字符串的值”46494c45”。如果操作系统的磁盘检测程序发现此项存在错误,会将“FILE”改写为”BAAD” |
04~05 | 2 | 更新序列号的偏移.WindowsXP及以后OS值为0x30 |
06~07 | 2 | 更新充列号的数组个数(每个数组占2个字节)。一般为0x03 |
08~0f | 8 | 日志序列号(LSN) |
10~11 | 2 | 序列号.当MFT项被增加或删除时,值加1 |
12~13 | 2 | 硬链接数,指有多少个文件名指向该MFT项 |
14~15 | 2 | 第一个属性的偏移地址 。第一个属性起始于这个偏移字节值,其它属性跟在第一个属性后面。当到最后一个属性结束时,写入0FFFFFFFF,表示后面不再有属性值。 |
16~17 | 2 | 标志 00-已删除伯文件01-文件02-已删除目录03-目录 |
18~1B | 4 | MFT项逻辑长度,即MFT项的内容实际长度 |
1C~1F | 4 | MFT项物理长度,即每个MFT项分配的长度,一般为1024字节即2扇区。 |
20~27 | 8 | 基本文件记录号索引,如果该MFT项为文件记录,则0,若不为文件记录,值为它的基本文件记录中偏移0X2C~0X2F处的文件记录号 |
28~29 | 2 | 下一属性ID。如要为文件增加属性值时,使用这个ID号。 |
2A~2B | 2 | 边界,一般为00 |
2C~2F | 4 | MFT记录编号(从0开始),WindowsXP及以后OS使用 |
30~37 | 8 | 更新序列号数组即修正值数组 |
38~3FF | 968 | 属性及修正值 |
下一MFT项的内容:
在NFTF引导扇区中0x30~0x37处的值为87296簇号
即512 x 8 x 87296 = 357564416 即 0x15500000