close
硬碟資料救援,RAID快速急救
網址:www.fubjj.com
看到罎子上有不少朋友在手工定位檔時,遇到90屬性和A0屬性的問題,特分享一下個人經驗,相信看完以下內容,會有收穫!
詳細瞭解0X90屬性中的索引頭和索引部分。
偏移
大小
意義
0X00
4
屬性號
0X04
4
屬性長度
0X08
1
常駐標誌
0X09
1
名稱長度
0X0A
2
名稱偏移
0X0C
2
标志(常驻属性不能压缩)
0X0E
2
属性ID
0X10
4
属性长度(不含头)
0X14
2
属性偏移
0X16
1
索引标志
0X17
1
填充
0X18
8
属性名
0X20
4
索引属性类型
0X24
4
排序规则
0X28
4
索引项分配大小
0X2C
1
每索引记录的簇数
0X2D
3
填充
0X30
4
每索引的偏移
0X34
4
索引项的总大小
0X38
4
索引项的分配
0X3C
1
标志,(0X01大索引)
0X3C
3
填充
表11
索引根属性中索引头部分结构
偏移
大小
意义
0X00
8
文件的MFT记录号
0X08
2
索引项大小
0X0A
2
名称偏移
0X0C
4
索引标志+填充
0X10
8
父目录的MFT文件参考号
0X18
8
文件创建时间
0X20
8
文件修改时间
0X28
8
文件最后修改时间
0X30
8
文件最后访问时间
0X38
8
文件分配大小
0X40
8
文件实际大小
0X48
8
文件标志
0X50
1
文件名长度(F)
0X51
1
文件名命名空间
0X52
2F
文件名(填充到8字节)
0X52+2F
P
0X52
+P+2F
8
子节点索引缓存的VCL
表12
索引项结构
索引根属性就是由索引头和这一个个的索引项组成。每个索引项对应一个文件。当文件被删除,索引项也会随之消失。
那么您还记不记得,索引根属性是在MFT记录里的。当索引项越来越多,1K的空间当然无法存储该属性的。那么这个时候,NTFS系统是如何处理的呢?
属性头
0X10属性头
0X10属性
0X30属性头
0X30属性
0X90属性头(索引头)
0X90属性
(可能为空,也可能含有子项目。为1级节点)
注意:90H属性的最后8位是它的子节点VCN,可以根据该簇号和运行定位它的子节点。
0XA0属性头
0XA0属性
0XB0属性头
0XB0属性
FF
FF
FF
FF
82
79
47
11
表12
大目录典型MFT记录
0XA0属性的运行记录了外部索引分配的空间。目录的外部索引是以一个索引块为单位分配的(与簇的概念类似)。一般来说,一个索引块占4K的空间。索引块以“INDEX”开头,其头部的固定结构如下:
偏移
大小
意义
0X00
4
INDEX
0X04
2
更新序列号的偏移
0X06
2
更新序列号与更新数组(以字节为单位)
0X08
8
日志文件序列号
0X10
8
本索引缓存在索引分配中的VCN
0X18
4
索引项的偏移(以字节为单位,相对0x18偏移到索引项)
0X1C
4
总的索引项的大小(相对0X18偏移到结尾)
0X20
4
索引项分配大小
0X24
1
如果不是叶节点,置1,表示还有子节点
0X25
3
用0填充
0X28
2
更新序列(重要:与每扇区最后2个字节的值一致)
0X2A
2S-1
更新序列数组
表13
索引区头部结构
索引块头部之后,连接的是索引目录项,其结构与前面介绍的索引项目是一致的。这里不重复介绍。
3.2
文件的查找方式
文件的索引延展到外部是分层次的。其层级结构图如下。
理论上说,3级目录可以容纳几千个文件。已经足够满足现在的需求。
简单的介绍一下目录的生成方式。目录一定是从小目录到大目录(因为文件需要一个个的拷贝)。小目录的结构很简单,前面也已经做了详细的分析。此时再不断增加文件,目录会有以下几个步骤的变化。
1、
一级大目录(仅有一个索引块)
索引块既是叶节点。它的VCL为0。一个索引块只能存放20-30个文件。索引块中的索引项,以文件名按照字母大小排列。
2、
二级大目录(有多个索引块)
当文件继续增加,一个索引块不能满足要求,此时再增加一个索引块,VCL为1,并在0X90属性中增加一个索引项目,为了描述,我把这个项目叫做基点。仍然对所有的项目按字母大小排序,其字母比基点小的排在VCL为0的索引块中,否则排在VCL为1的索引块中。当文件继续增加,会再次开辟一个VCL为2的索引块,工作方式同上。
3、三级大目录
二级目录有一个限制,那就是,每增加一个索引块,0X90属性就要增加一个项目。而0X90属性是在MFT中,其大小有限制,因此,不能无限的扩大二级目录。此时,系统很聪明地把一个外部的索引块当做基点。索引块的头部0X24的值置1,表示不是叶节点。
四
总结
现在,相信您已经对NTFS磁盘格式有一个大致的了解了,您会发现,FAT格式的是如此之简陋和无效率。想象一下,对文件的查询,NTFS的目录结构(包含排序)将会节约多少时间!
这里只是简单介绍了NTFS的底层磁盘结构,WINDOWS还为它量身定做了磁盘的自修复等功能,有兴趣的朋友还可以研究。
标志基隆市,台北市,台北縣,桃園縣,新竹縣,新竹市,苗栗縣,台中縣,台中市,彰化縣,南投縣,雲林縣,嘉義縣,嘉義市,台南縣,台南市,高雄縣,高雄市,屏東縣,澎湖,金門,馬祖,中國大陸,From InToHard
網址:www.fubjj.com
看到罎子上有不少朋友在手工定位檔時,遇到90屬性和A0屬性的問題,特分享一下個人經驗,相信看完以下內容,會有收穫!
詳細瞭解0X90屬性中的索引頭和索引部分。
偏移
大小
意義
0X00
4
屬性號
0X04
4
屬性長度
0X08
1
常駐標誌
0X09
1
名稱長度
0X0A
2
名稱偏移
0X0C
2
标志(常驻属性不能压缩)
0X0E
2
属性ID
0X10
4
属性长度(不含头)
0X14
2
属性偏移
0X16
1
索引标志
0X17
1
填充
0X18
8
属性名
0X20
4
索引属性类型
0X24
4
排序规则
0X28
4
索引项分配大小
0X2C
1
每索引记录的簇数
0X2D
3
填充
0X30
4
每索引的偏移
0X34
4
索引项的总大小
0X38
4
索引项的分配
0X3C
1
标志,(0X01大索引)
0X3C
3
填充
表11
索引根属性中索引头部分结构
偏移
大小
意义
0X00
8
文件的MFT记录号
0X08
2
索引项大小
0X0A
2
名称偏移
0X0C
4
索引标志+填充
0X10
8
父目录的MFT文件参考号
0X18
8
文件创建时间
0X20
8
文件修改时间
0X28
8
文件最后修改时间
0X30
8
文件最后访问时间
0X38
8
文件分配大小
0X40
8
文件实际大小
0X48
8
文件标志
0X50
1
文件名长度(F)
0X51
1
文件名命名空间
0X52
2F
文件名(填充到8字节)
0X52+2F
P
0X52
+P+2F
8
子节点索引缓存的VCL
表12
索引项结构
索引根属性就是由索引头和这一个个的索引项组成。每个索引项对应一个文件。当文件被删除,索引项也会随之消失。
那么您还记不记得,索引根属性是在MFT记录里的。当索引项越来越多,1K的空间当然无法存储该属性的。那么这个时候,NTFS系统是如何处理的呢?
属性头
0X10属性头
0X10属性
0X30属性头
0X30属性
0X90属性头(索引头)
0X90属性
(可能为空,也可能含有子项目。为1级节点)
注意:90H属性的最后8位是它的子节点VCN,可以根据该簇号和运行定位它的子节点。
0XA0属性头
0XA0属性
0XB0属性头
0XB0属性
FF
FF
FF
FF
82
79
47
11
表12
大目录典型MFT记录
0XA0属性的运行记录了外部索引分配的空间。目录的外部索引是以一个索引块为单位分配的(与簇的概念类似)。一般来说,一个索引块占4K的空间。索引块以“INDEX”开头,其头部的固定结构如下:
偏移
大小
意义
0X00
4
INDEX
0X04
2
更新序列号的偏移
0X06
2
更新序列号与更新数组(以字节为单位)
0X08
8
日志文件序列号
0X10
8
本索引缓存在索引分配中的VCN
0X18
4
索引项的偏移(以字节为单位,相对0x18偏移到索引项)
0X1C
4
总的索引项的大小(相对0X18偏移到结尾)
0X20
4
索引项分配大小
0X24
1
如果不是叶节点,置1,表示还有子节点
0X25
3
用0填充
0X28
2
更新序列(重要:与每扇区最后2个字节的值一致)
0X2A
2S-1
更新序列数组
表13
索引区头部结构
索引块头部之后,连接的是索引目录项,其结构与前面介绍的索引项目是一致的。这里不重复介绍。
3.2
文件的查找方式
文件的索引延展到外部是分层次的。其层级结构图如下。
理论上说,3级目录可以容纳几千个文件。已经足够满足现在的需求。
简单的介绍一下目录的生成方式。目录一定是从小目录到大目录(因为文件需要一个个的拷贝)。小目录的结构很简单,前面也已经做了详细的分析。此时再不断增加文件,目录会有以下几个步骤的变化。
1、
一级大目录(仅有一个索引块)
索引块既是叶节点。它的VCL为0。一个索引块只能存放20-30个文件。索引块中的索引项,以文件名按照字母大小排列。
2、
二级大目录(有多个索引块)
当文件继续增加,一个索引块不能满足要求,此时再增加一个索引块,VCL为1,并在0X90属性中增加一个索引项目,为了描述,我把这个项目叫做基点。仍然对所有的项目按字母大小排序,其字母比基点小的排在VCL为0的索引块中,否则排在VCL为1的索引块中。当文件继续增加,会再次开辟一个VCL为2的索引块,工作方式同上。
3、三级大目录
二级目录有一个限制,那就是,每增加一个索引块,0X90属性就要增加一个项目。而0X90属性是在MFT中,其大小有限制,因此,不能无限的扩大二级目录。此时,系统很聪明地把一个外部的索引块当做基点。索引块的头部0X24的值置1,表示不是叶节点。
四
总结
现在,相信您已经对NTFS磁盘格式有一个大致的了解了,您会发现,FAT格式的是如此之简陋和无效率。想象一下,对文件的查询,NTFS的目录结构(包含排序)将会节约多少时间!
这里只是简单介绍了NTFS的底层磁盘结构,WINDOWS还为它量身定做了磁盘的自修复等功能,有兴趣的朋友还可以研究。
标志基隆市,台北市,台北縣,桃園縣,新竹縣,新竹市,苗栗縣,台中縣,台中市,彰化縣,南投縣,雲林縣,嘉義縣,嘉義市,台南縣,台南市,高雄縣,高雄市,屏東縣,澎湖,金門,馬祖,中國大陸,From InToHard
全站熱搜
留言列表