NTFS文件系统规范(一)

 NTFS文件系统规范 

MFT文件记录
文件记录是$MFT文件的基本组成部分,卷中的所有文件都由至少一个文件记录来描述,对于使用多个文件记录的文件,其第一个文件记录叫基本文件记录,其余的叫做扩展文件记录。
文件记录由记录头,数个文件属性和结束标志(0xFFFFFFFF)组成。
 
文件记录头格式: 

名字
偏移
尺寸
描述
FR_Sign
0
4
记录签名:值为:‘ELIF’
FR_USOff
4
2
更新序列号的偏移(M) (相对文件记录头)
FR_USNSz
6
2
更新序列号个数+1(N)
FR_LSN
8
8
日志文件序列号,该值在记录每次被修改时都会被改动
FR_SN
0x10
2
重复使用 更新序列号(删除一次加1)
FR_LnkCnt
0x12
2
目录中记录本文件的引用计数,该值只用于基本文件记录
FR_USAOff
0x14
2
第一个属性数据的偏移
FR_Flags
0x16
2
标志,该成员可以是以下各值中之一
0x0001    记录被使用
0x0002    目录文件
FR_Size
0x18
4
当前记录的尺寸
FR_AllocSz
0x1c
4
当前记录分配的空间的尺寸
FR_BaseFR
0x20
8
当前文件记录的基本文件记录的索引,
如果当前文件记录是基本文件记录则该值为0,否则指向基本文件记录的记录索引。
注意:该值的低6字节是MFT记录号,高2字节是该MFT记录的序列号
FR_NxtAttrId
0x28
2
下一个属性的ID。
下一次将会被添加到文件记录的属性的ID,每次往文件记录中添加属性时该值都会增加,每次文件记录被重新使用时该值都会被清零,第一个值肯定是0
FR_Resvd
0x2a
2
保留(XP新增,3.1+)
FR_NumOfFR
0x2c
4
该MFT 记录号 (XP新增,3.1+)
FR_USN
M
2
序列号。
该值记录文件记录被修改的次数,每次修改时该值+1,(包括文件被删除操作)该值不能为0
FR_USA
M+2
(N-1)*2
序列值占用的空间的原值

更新序列号是Microsoft公司为了确保记录数据的可靠性而在NTFS卷中提出的一项技术,在NTFS卷中,所有的记录类型数据(FR、IR)占用的空间都是按扇区尺寸(512字节)对齐。保护记录数据时,在每512字节的最末2个字节都会写入一个校验值以确保记录中的所有数据都被正确的写入磁盘中,而校验值所在位置的数据被拷贝到记录头之后被称作USA(Update Sequence Array)的数据块中,系统将记录数据从磁盘读入内存时将检查每个校验值是否与记录头的中序列号是否相同,如果相同则用USA中相应位置的数据恢复校验值位置的数据,反之则表明该记录被没有正确地修改。
在每次写记录数据时序列号都会加1,当序列号为0时则再加1。 

 
 
 
 
 
校验码
第1个512字节扇区末原值
第2个512字节扇区末原值
。。。。
最后一个512字节扇区末原值
 
本站域名:www.mrtlab.com | QQ交流群:250649022 | 使用条款 | 备案:鄂ICP备2020023514号
MRT数据恢复网,专业的硬盘固件维修与数据恢复技术资料提供站!
Copyright 2003-2020 Powered By MrtLab