欢迎来到天天文库
浏览记录
ID:16056085
大小:95.50 KB
页数:20页
时间:2018-08-07
《解析ntfs底层磁盘结构》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、解析NTFS底层结构一、NTFS系统结构NTFS是WindowsNT引入的新型文件系统,如果您是一位熟悉FAT磁盘格式的专业人士,您可能会觉得NTFS系统的思想蹩脚而晦涩,如果您对FAT格式一无所知,那么恭喜您,您会更快的了解这种更有效率的磁盘格式。NTFS的结构复杂,内容繁多,笔者仅对NTFS卷上的底层结构做分析,并提供卷上数据删除的特征状态供大家参考。 现在,我们首先来建立了解NTFS需要的基本概念。1.0基本结构及基本概念在NTFS中,文件以簇的形式分配。最小的单位为扇区,N个扇区为一簇。其中,N的值可以通过BPB(引导扇区)读出(以下会详细介绍)。1.0.1卷与簇卷
2、大小(分区大小) 每簇的扇区 缺省的簇大小 小于等于512MB 1 512字节 513MB~1024MB(1GB) 2 1024字节(1KB) 1025MB~2048MB(2GB) 4 2048字节(2KB) 大于等于2049MB 8 4KB 表1 卷与簇的关系从上面可以看出,也就是说不管驱动器多大NTFS簇的大小不会超过4KB。1.0.2 NTFS的基本数据结构NTFS的数据大体上可分为4个部分(1) Partitionbootsector(引导扇区,又称BPB),此部分为所有磁盘格式都共有,占用一个扇区,但是具体的内容当然各不相同(见表3)。(2) Mast
3、erFileTable(主文件列表,MFT),它是对卷上所有文件的记录,每一个文件对应一个记录项,理论上占用该卷12%的空间。(3) Systemfiles(系统文件),NTFS系统一共有16个系统文件,和8个保留文件。(4) Filearea(数据区),留给用户的空间。Partitionbootsector引导扇区 MasterFileTable主文件列表 Systemfiles系统文件 Filearea用户文件区(数据区) 表2 NTFS的磁盘分配情况1.0.3NTFS中关于目录的说明NTFS中目录也是以文件的形式存在的。因此,每一个目录也可以看作一个文件。如果您熟悉FAT
4、,那么此时您可能会觉得很别扭,因为在FAT中,文件是以目录-文件的树型结构联系起来的。但是,您必须相信的是,NTFS将会提供比搜索树更快的读写方式。1.1引导扇区 字节偏移 长度(字节) 常用值 意义 0X00 3 0XEB5290 JMP指令 0X03 4 NTFS 文件系统ID 0X0B 2 0X0002 每扇区字节数 0X0D 1 0X08 每簇扇区数 0X0E 2 0X0000 保留扇区 0X10 3 0X000000 总为0 0X13 2 0X0000 NTFS未使用,为0 0X15 1 0XF8 介质描述 0X16 1 0X000
5、0 总为0 0X18 2 0X3F00 每磁道扇区数 0X1A 2 0XFF00 磁头数 0X1C 4 0X3F000000 隐含扇区 0X20 4 0X00000000 NTFS未使用,为0 0X24 4 0X80008000 NTFS未使用,为0 0X28 8 0X4AF57F0000000000 扇区总数 0X30 8 0X0400000000000000 $MFT的逻辑簇号 0X38 8 0X54FF070000000000 $MFTMirr的逻辑簇号 0X40 4 0XF6000000 每MFT记录簇数 0X44 4 0X010
6、0000 每索引簇数 0X48 8 0X14A51B74C91B741C 卷标 0X50 4 0X00000000 校验和 0X54 430 略 引导代码 0X1FE 2 0X55AA 签名 表3 NTFS引导扇区说明1.2MFT(主文件表)MFT是一个对应的数据库,由一系列的文件记录组成。卷中每一个文件都有一个文件记录(对于大型文件还可能有多个记录与之相对应)。主文件表本身也有它自己的文件记录。如果您还不胜了解,那么我们来打个比喻。假设一个班有30个人,老师那里有一本花名册,记录了每个人的名字,年龄,每天出勤的情况和科目成绩等等。把每个人看做每一个文件,那么那
7、本花名册就是这里的MFT。当然,事实往往是复杂而多变的,MFT中包含文件的哪些信息?这些信息又是如何关联的?这些问题,我们会一个个解决。现在首先对MFT做几点必要的说明:(1)实际上,MFT自身也是一个文件,因此,主文件列表的第一个记录就是它自身。所以,刚才的例子其实不太贴切,因为事实上,花名册也是人,那么好吧,我们假设这本花名册在老师的脑子里。这样,您可以知道,既然老师也是人,那么其实老师也是一个文件。(2)MFT的每个记录都有一个编号,这里我们称它为ID号。这个ID从0开始。我们知道MF
此文档下载收益归作者所有