β

NTFS基础——非原创(译文)

国祥のBlog 230 阅读
    Windows NT文件系统(NTFS)结合了FAT文件系统里没有的高性能,可靠性和兼容性。
    这设计是为了迅速执行标准文件操作,比如读、写、搜索,甚至高级操作,比如文件系统恢复——在非常大的硬盘上。
    格式化为NTFS文件系统的卷的结果是创建几个系统文件(metadata,元数据),比如$MFT——主文件表,$BitMap,$LogFile和一些其它数据,其包含关于文件,文件夹的信息都在NTFS卷上。
    第一个在NTFS卷上的信息是分区引导扇区($Boot metadata file),它开始于扇区0并且长达16扇区。这个文件描述了基本的NTFS卷信息和主元数据文件——$MFT。
    看看下面的图表,NTFS卷格式化后的布局。
    格式化的NTFS卷:
NTFS_Struct
NTFS分区引导扇区
    NTFS卷的引导扇区:
偏移 区域长度 区域名称
0x00
3Byte
JMP指令
0x03 8Byte OEM ID
0x0B 25Byte BPB
0x24 48Byte 扩展BPB
0x54 426Byte 引导代码
0x01FE 2Byte 扇区结束标记
    在NTFS卷,数据区域扩展BPB跟随BPB(原文:the data fields that follow the BPB form an extended BPB)。在计算机启动时,这个区域的数据启用NTLDR(NT Loader程序)来寻找MFT。在NTFS卷,相对于FAT16,32来说,MFT不在预定义扇区。(原文:the MFT is not located in a predefined sector, as on FAT16 and FAT32 volumes.)。由于这个原因,MFT可以在有坏扇区时被移动到正常位置。无论如何,如果数据出错,MFT找不到,Windows就会假设改卷没有被格式化。
跟随下面Windows2K的NTFS卷引导扇区的例子。输出格式化为3节:
NTFS_BootSector

下表描述了NTFS卷的BPB和扩展BPB。在0x0B,0x0D,0x15,0x18,0x1A和0x1C的区域起始地址和FAT16,32匹配。在这个例子里,样本值和数据一致。

偏移 区域长度 样本值 区域名称
0x0B 2Byte 0x0200 每扇区字节数
0x0D 1Byte 8 每簇扇区数
0x0E 2Byte 0 保留扇区数
0x10 3Byte 0 总是0
0x13 2Byte 0 NTFS不使用
0x15 1Byte 0xF8 媒体描述符
0x16 2Byte 0 总是0
0x18 2Byte 0x3F00 每磁道扇区数
0x1A 2Byte 0xFF00 磁头数
0x1C 4Byte 0x3F000000 隐藏扇区数
0x20
4Byte 0 NTFS不使用
0x24 4Byte 0x80008000 NTFS不使用
0x28 8Byte 0x4AF57F0000000000 总扇区数
0x30 8Byte 0x0400000000000000 $MFT的逻辑簇数
0x38 8Byte 0x54FF070000000000
$MFTMirr的逻辑簇数
0x40 4Byte 0xF6000000 每个文件记录段(File Record Segment)的簇数
0x44 1Byte 1 每个索引缓冲(Index Buffer)的簇数
0x45 3Byte 0 NTFS不使用
0x48 8Byte 0x14A51B74C91B741C 卷序列号
0x50 4Byte 0 校验和
保护引导扇区:因为一个正常的系统依赖引导扇区来访问卷,强烈建议定期用chkdsk扫描,以及备份所有数据,在你无法访问卷的时候防止数据丢失。

2013年8月28日 08:36:16,国祥第一次翻译,译自NTFS.COM。
作者:国祥のBlog
原“国祥的博客”
原文地址:NTFS基础——非原创(译文), 感谢原作者分享。

发表评论