收藏 分享(赏)

硬盘分区结构及windows文件系统结构.doc

上传人:tkhy51908 文档编号:8161258 上传时间:2019-06-11 格式:DOC 页数:17 大小:297.50KB
下载 相关 举报
硬盘分区结构及windows文件系统结构.doc_第1页
第1页 / 共17页
硬盘分区结构及windows文件系统结构.doc_第2页
第2页 / 共17页
硬盘分区结构及windows文件系统结构.doc_第3页
第3页 / 共17页
硬盘分区结构及windows文件系统结构.doc_第4页
第4页 / 共17页
硬盘分区结构及windows文件系统结构.doc_第5页
第5页 / 共17页
点击查看更多>>
资源描述

1、硬盘分区结构及 windows 文件系统结构详细解析硬盘分区信息参数定义2006 年 10 月 17 日 星期二 11:26http:/ 接口硬盘中,不管什么操作系统,都有如下结构:MBR(Master Boot Record)及基本分区表分区 1分区 2分区 nMBR 和基本分区表共用硬盘的第一个扇区(即 0 面 0 道 1 扇区,以后简称第一扇区MBR),分区表位于扇区的最后 66 字节,除了最后的 2 字节 55AA 外,为 4 条分区记录,每条分区记录 16 字节。 各字段含义如下: 偏移 意义0 自举标志(80 为活动分区,00 为非活动分区)1 起始磁头号 H2 起始扇区号 S3

2、起始柱面号 CYL(CYL 的高 2 位存放在 S 字节的高 2 位)4 分区格式标志(见下表)5 终止磁头号 H6 终止扇区号 S7 终止柱面号 CYL8-11本分区之前已用扇区数(当分区表属于扩展分区中的记录时,该值为相对扩展分区首地址的位置)12-15 本分区扇区总数(注意:C/H/S 的编址从 0/0/1 开始)分区格式标志 意义01 fat1205 extended06 fat1607 hpfs/ntfs0b,0d win95 fat320e win95 fat1682 linux swap83 linux85 linux extended可以看出,使用 C/H/S 三维地址时,磁盘

3、的寻址空间最多只有 224 个扇区,即 8GB 的容量,当磁盘容量大于 8GB 时,C/H/S 就无法寻址了。于是采用 LBA(logic block address)线性地址来寻址( 即 08-0F 字节标注扇区数)。在LBA 方式下系统把所有的物理扇区都按某种方式或规则看做是一线性编号的扇区,即从 0到某个最大值方式排列。(按此方法容易知道,磁盘寻址空间最大为 2TB,或需转换成GPT)C/H/S 到 LBA: LBA=(C-c)*PH*PS+(H-h)*PS+(S-s)一般情况下 c=0,h=0,s=1,PS=63,PH=255,PS 表示每磁道多少扇区, PH 表示每柱面多少磁道。(也

4、有 PH=240 的)LBA 到 C/H/S: C=LBA/(PH*PS)+c H=(LBA/PS)MOD PH +h S=LBA MOD PS + s 由于 MBR 只能记录 4 个分区的信息,windows 通过扩展分区来记录多于 4 个分区的记录,称做虚拟 MBR。做法是:让主 MBR 在定义分区时,将多余容量定义为扩展分区,指定该分区的起始位置,根据起始位置指向硬盘的某一扇区,作为下一个分区表,在该扇区继续定义分区。如果只有一个分区,就定义该分区,然后结束;如果不止一个分区,就定义一个基本分区和一个扩展分区,扩展分区再指向下一个分区表,在下一个分区表中继续定义分区,直至结束。这样就形成

5、一个分区链,可以描述所有的分区。 一个分区表的例子: +00 +01 +02 +03 +04 +05 +06 +07 +08 +09 +0A +0B +0C +0D +0E +0F1B0 80 011C0 01 00 0C FE FF FF 3F 00 00 00 FC 8A 38 01 00 001D0 C1 FF 83 FE FF FF 3B 8B 38 01 6E 9A F6 00 00 001E0 C1 FF 82 FE FF FF A9 25 2F 02 E1 16 08 00 00 00MBR1F0 C1 FF 0F FE FF FF 8A 3C 37 02 62 43 53 07

6、 55 AA+1B0 00 01+1C0 C1 FF 0B FE FF FF 3F 00 00 00 37 16 71 02 00 00+1D0 C1 FF 05 FE FF FF 76 16 71 02 3B 8B 38 01 00 00+1E0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00EXT-1+1F0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 55 AA+1B0 00 01+1C0 C1 FF 0B FE FF FF 3F 00 00 00 FC 8A 38 01 00 00+1D0 C1 F

7、F 05 FE FF FF B1 A1 A9 03 2C D5 FB 02 00 00+1E0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00EXT-2+1F0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 55 AA+1B0 00 01+1C0 C1 FF 0B FE FF FF 3F 00 00 00 ED D4 FB 02 00 00+1D0 C1 FF 05 FE FF FF DD 76 A5 06 3E 15 AC 00 00 00+1E0 00 00 00 00 00 00 00 00 00 00

8、 00 00 00 00 00 00EXT-3+1F0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 55 AA+1B0 00 01+1C0 C1 FF 0B FE FF FF 3F 00 00 00 FF 14 AC 00 00 00+1D0 C1 FF 05 FE FF FF 1B 8C 51 07 47 B7 01 00 00 00+1E0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00EXT-4+1F0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 55 AA+1

9、B0 00 01+1C0 C1 FF 07 FE FF FF 3F 00 00 00 08 B7 01 00 00 00+1D0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00+1E0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00EXT-5+1F0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 55 AA(注意:系统在启动时按照分区链的顺序查找分区,直到找出所有分区,如果分区链形成一个环,就形成所谓硬盘“逻辑锁 “,导致系统无法启动,软盘也无法启动。由于 wi

10、ndows启动过程在 io.sys 中决定的,可以查找 io.sys,将第一个 55AA 改成其他数值,程序还没开始查找分区表就结束,就避开了对分区表的检测) - 2.关于 INT 132.1 通过 int 13 来读取物理扇区的例子:a100mov ax,201mov bx,200mov cx,1mov dx,80int 13int 3g=100参数解释: al:读写扇区数 bx:缓冲区地址 dh:磁头号 dl:设备号(A 盘是 0,B 是 1,第一硬盘是 80,第二硬盘是 81) ch:柱面号低 8 位 cl:低 6 位为要读的起始扇区号,高 2 位为柱面号的高 2 位。2.2 扩展 IN

11、T 13:数据类型约定:BYTE 1 字节整型(8 位) WORD 2 字节整型(16 位) DWORD 4 字节整型(32 位) QWORD 8 字节整型(64 位)磁盘地址数据包 Disk Address Packet (DAP):DAP 是基于绝对扇区地址的, 因此利用 DAP, Int13H 可以轻松地逾越 1024 柱面的限制, 因为它根本就不需要 CHS 的概念.DAP 的结构如下:struct DiskAddressPacketBYTE PacketSize; / 数据包尺寸(16 字节)BYTE Reserved; / =0WORD BlockCount; / 要传输的数据块个

12、数(以扇区为单位)DWORD BufferAddr; / 传输缓冲地址(segment:offset,在内存中为 offset 在低地址如 166b:400 在内存中为:00 04 6b 16)QWORD BlockNum; / 磁盘起始绝对块地址(即 LBA 地址);驱动器参数数据包 Drive Parameters Packet:驱动器参数数据包是在扩展 Int13H 的取得驱动器参数子功能调用中使用的数据包. 格式如下:struct DriveParametersPacketWORD InfoSize; / 数据包尺寸 (26 字节)WORD Flags; / 信息标志DWORD Cyl

13、inders; / 磁盘柱面数DWORD Heads; / 磁盘磁头数DWORD SectorsPerTrack; / 每磁道扇区数QWORD Sectors; / 磁盘总扇区数WORD SectorSize; / 扇区尺寸 (以字节为单位);2.2.1) 检验扩展功能是否存在 入口: AH = 41h BX = 55AAh DL = 驱动器号 返回: CF = 0 AH = 扩展功能的主版本号 AL = 内部使用 BX = AA55h CX = API 子集支持位图 CF = 1 AH = 错误码 01h, 无效命令 这个调用检验对特定的驱动器是否存在扩展功能.如果进位标志置 1 则此驱动器

14、不支持扩展功能. 如果进位标志为 0, 同时 BX = AA55h, 则 存在扩展功能. 此时 CX 的 0 位表示是否支持第一个子集,1 位表示是否 支持第二个子集. 对于 1.x 版的扩展 Int13H 来说, 主版本号 AH = 1. AL 是副版本号, 但这仅限于 BIOS 内部使用, 任何软件不得检查 AL 的值. 2.2.2) 扩展读 入口: AH = 42h DL = 驱动器号 DS:SI = 磁盘地址数据包(Disk Address Packet) 返回: CF = 0, AH = 0 成功 CF = 1, AH = 错误码 这个调用将磁盘上的数据读入内存. 如果出现错误, D

15、AP 的 BlockCount 项中则记录了出错前实际读取的数据块个数. 2.2.3) 扩展写 入口: AH = 43h AL 0 位 = 0 关闭写校验 1 打开写校验 1 - 7 位保留, 置 0 DL = 驱动器号 DS:SI = 磁盘地址数据包(DAP) 返回: CF = 0, AH = 0 成功 CF = 1, AH = 错误码 这个调用将内存中的数据写入磁盘. 如果打开了写校验选项,但 BIOS 不支持, 则会返回错误码 AH = 01h, CF = 1. 功能 48h 可以检测 BIOS 是否 支持写校验. 如果出现错误, DAP 的 BlockCount 项中则记录了出错前实际

16、写入的数 据块个数. 2.2.4) 校验扇区 入口: AH = 44h DL = 驱动器号 DS:SI = 磁盘地址数据包(Disk Address Packet) 返回: CF = 0, AH = 0 成功 CF = 1, AH = 错误码 这个调用校验磁盘数据,但并不将数据读入内存.如果出现错误, DAP 的 BlockCount 项中则记录了出错前实际校验的数据块个数. 2.2.5) 锁定/解锁驱动器 入口: AH = 45h AL = 0 锁定驱动器 = 1 驱动器解锁 = 02 返回锁定/解锁状态 = 03h-FFh - 保留 DL = 驱动器号 返回: CF = 0, AH = 0

17、 成功 CF = 1, AH = 错误码 这个调用用来缩定指定驱动器中的介质. 所有标号大于等于 0x80 的可移动驱动器必须支持这个功能.如果 在支持可移动驱动器控制功能子集的固定驱动器上使用这个功能调用,将 会成功返回. 驱动器必须支持最大 255 次锁定, 在所有锁定被解锁之前,不能在物理上 将驱动器解锁. 解锁一个未锁定的驱动器,将返回错误码 AH= B0h.如果锁定一 个已锁定了 255 次的驱动器, 将返回错误码 AH = B4h. 锁定一个没有介质的驱动器是合法的. 2.2.6) 弹出可移动驱动器中的介质 入口: AH = 46h AL = 0 保留 DL = 驱动器号 返回:

18、CF = 0, AH = 0 成功 CF = 1, AH = 错误码 这个调用用来弹出指定的可移动驱动器中的介质. 所有标号大于等于 0x80 的可移动驱动器必须支持这个功能.如果 在支持可移动驱动器控制功能子集的固定驱动器上使用这个功能调用,将 会返回错误码 AH = B2h (介质不可移动).如果试图弹出一个被锁定的介质 将返回错误码 AH = B1h (介质被锁定). 如果试图弹出一个没有介质的驱动器, 则返回错误码 Ah =31h (驱动器 中没有介质). 如果试图弹出一个未锁定的可移动驱动器中的介质,Int13h 会调用 Int15h (AH = 52h) 来检查弹出请求能否执行.如

19、果弹出请求被拒绝则返回错误码(同 Int15h). 如果弹出请求被接受,但出现了其他错误, 则返回错误码 AH =B5h. 2.2.7) 扩展定位 入口: AH = 47h DL = 驱动器号 DS:SI = 磁盘地址数据包(Disk Address Packet) 返回: CF = 0, AH = 0 成功 CF = 1, AH = 错误码 这个调用将磁头定位到指定扇区. 2.2.8) 取得驱动器参数 入口: AH = 48h DL = 驱动器号 DS:SI = 返回数据缓冲区地址 返回: CF = 0, AH = 0 成功 DS:SI 驱动器参数数据包地址,(参见前面的文章) CF = 1

20、, AH = 错误码 这个调用返回指定驱动器的参数. 2.2.9) 取得扩展驱动器介质更换检测线状态 入口: AH = 49h DL = 驱动器号 返回: CF = 0, AH = 0 介质未更换 CF = 1, AH = 06h 介质可能已更换 这个调用返回指定驱动器的介质更换状态. 这个调用与 Int13h AH = 16h 子功能调用相同,只是允许任何驱动器 标号.如果对一台支持可移动介质功能子集的固定驱动器使用此功能,则永远 返回 CF = 0, AH = 0. 简单地将可移动介质锁定再解锁就可以激活检测线,而无须真正更换介质. 2.2.10) Int 15h 可移动介质弹出支持 入口

21、: AH = 52h DL = 驱动器号 返回: CF = 0, AH = 0 弹出请求可能可以执行 CF = 1, AH = 错误码 B1h 或 B3h 弹出请求不能执行 这个调用是由 Int13h AH=46h 弹出介质功能调用内部使用的(注:MBR 的分区表中,8-11 字节本分区之前已用扇区数,即该分区首扇区的 LBA 地址。通过扩展 int 13 即可访问磁盘的任意扇区)- 硬盘分区结构及 windows 文件系统结构 - -2http:/ 年 08 月 18 日 星期五 12:333.FAT 文件系统的结构: 3.1 FAT12, FAT16: DBR-FAT1-FAT2-DFT-

22、DATA DBR 只占 1 个扇区,DFT 为根目录表,根目录下的 DIR 项数固定,一般为 512 项,每项占 32 字节,即 DIR 占 32 个扇区 则一个文件的逻辑扇区号: 逻辑扇区号=1+2*FAT 占用的扇区数+DIR 占用的扇区数+(起始簇号-2)*每簇扇区数3.2FAT32: DBR 和其后的保留扇区-FAT1-FAT2-DATA 在 DBR 使用 3 个扇区,实际只使用第 1 个扇区,2,3 扇区也写入 55AA 标志,之后有保留扇区,一般为 20h 或 21h,其中第 6 扇区是 DBR 的备份。同时 DIR 当作文件处理,不在固定位置,也没有固定大小 则文件的逻辑扇区号:

23、 逻辑扇区号=保留扇区数+2*FAT 占用扇区数+(起始簇号-2)*每簇扇区数此时因为 DIR 不固定,要在 BPB 中读出 DIR 的入口簇。 对于一个确定的分区,可通过逻辑地址来访问该分区中的扇区。逻辑地址从 0 开始。 在 98 和 dos 下可用 debug 的 L 命令来访问: L address drive firstsector number 读逻辑盘的扇区,扇区号为逻辑地址, 0 为 DBR 即 BOOT 区 drive 按 A,B,C,D 排序,对应 0,1,2 ,3. 对应 W 命令: W address drive firstsector number W 若不带参数,或

24、只有地址参数,则按 BX:CX 寄存器指出的字节,从内 存向磁盘写入数据。此时的文件名是此命令前最后一个使用过的文件名 ,或者是 N 命令中指定的文件,如果没有使用过 N 命令,则使用Debug 命 令行中指定的文件。DBR(dos boot record)操作系统可访问的第一个扇区。包括一个引导程序和BPB(bios parameter block)的本分区参数记录表。 FAT(file allocation table)fat 中的记录和磁盘上的簇对应。 FAT2 为 FAT1 的备份。FAT 的格式有多种,其中 FAT16 是指文件分配表使用 16 位表示一个簇,FAT12,FAT32同

25、理。可知 FAT16 最多能管理 65536 个簇,而每簇最大 32kb,所以 FAT16 每个分区最大 2GB。 (注:FAT 的 0, 1 簇保留 ,0 字节表示磁盘类型 ,簇号从 2 开始。 ) DFT(文件目录表)根目录区,只存在 FAT12 和 FAT16 中,紧跟在 FAT2 后。根目录下的文件和子目录在 DFT 中都有一个目录登记项 每个项占 32 字节,项数在 BPB 中说明。FAT32 中 DFT 无固定位置,把 DFT 当作一个普通文件处理,在 BPB 中指出 DFT 首簇地址。 长文件名规则: 目录项保存该文件的短文件名,长文件名用若干个长文件名目录向保存,长文件名目录项

26、倒序排列在文件短目录项前面,采用双字节 unicode 内码保存,每项最多 13 个内码,首字节是顺序字节,指明是长文件名的第几项,11 字节为 0F,12 字节指明类型,13 字节为校验和,26,27 字节为 0。 - 3.3 FAT 文件系统的的一些参数: 3.3.1 FAT16 的 BPB: 偏移 长度 说明00 3 JMP 指令;跳转到引导程序。后随一个空操作。(不属 BPB)03 8 OEM 标志(FAT16 为 MSWIN4.0)0B 2 每扇区字节数0D 1 每簇扇区数0E 2 dos 保留扇区数10 1 FAT 数11 2 根目录项数,如 51213 2 扇区数(小于 32M

27、的分区)15 1 介质描述符16 2 每 FAT 扇区数18 2 每磁道扇区数(逻辑参数)1A 2 磁头数(逻辑参数1C 4 隐含扇区(即分区表中的 8-11 字节本分区之前已用扇区数)*20 4 扇区数(即分区表中的 12-15 字节)24 1 BIOS 设备号(hex :HD=8x)25 1 未使用26 1 扩展引导标记27 4 卷序列号(随机)2B 11 卷标,分区标识,如:WIN9836 8 文件系统格式:FAT163.3.2 FAT32 的 BPB: 偏移 长度 说明00 3 JMP 指令03 8 OEM 标志(FAT32 为 MSWIN4.1)0B 2 每字节扇区数0D 1 每簇扇

28、区数0E 2 dos 保留扇区数,FAT32 中一般是 3210 1 FAT 数11 2 根目录项数,一般为 0,未使用13 2 扇区数(小于 32M 的分区,FAT32 中不再使用)15 1 介质描述符16 2 每 FAT 扇区数(FAT32 下不用)18 2 每磁道扇区数(逻辑参数)1A 2 磁头数(逻辑参数)1C 4 隐含扇区(即分区表中的 8-11 字节本分区之前已用扇区数)*20 4 扇区数(即分区表中的 12-15 字节)24 4 每 FAT 扇区数28 2 标记2A 2 版本2C 4 根目录首簇地址30 2 DBR 占用的扇区数32 2 备份 DBR 地址34 12 保留40 1

29、 BIOS 设备号(hex :HD=8x)41 1 未使用42 1 扩展引导标记43 4 卷序列号(随机)47 11 卷标,分区标识,如:WIN200052 8 文件系统格式:FAT323.3.3 磁介质描述符: 十六进制 说明F8 硬盘F9 双面 5in 软盘(15 扇区高密度)双面 3in 软盘FA 双面 3in RAM 虚拟盘FC 单面 5in 软盘(9 扇区高密度) 双面 8in 盘FD 双面 5in 盘(9 扇区低密度)FE 单面 8in 盘(单、双密度)单面 5in 盘(8 扇区低密度)FF 双面 5in 盘(8 扇区低密)3.3.4 FAT 中每个簇号可取的表项值及含义: 表项值

30、(12 位) 表项值(16 位)表项值(32 位) 簇描述含义000H 0000H 00000000H 未使用的簇002H-FEFH 0002H-FFEFH 00000002H-FFFFFFEFH已分配的簇(可见簇号从2 开始)FF0H-FF6H FFF0H-FFF6H FFFFFFF0H-FFFFFFF6H 保留FF7H FFF7H FFFFFFF7H 坏簇FF8H-FFFH FFF8H-FFFFH FFFFFFF8H-FFFFFFFFH 文件结束簇3.3.5 FAT16 的 FDT 字段含义: 偏移长度说明0-7 8 文件名8-10 3 扩展名11 1属性字节(00000000 读写, 0

31、0000001 只读,00000010 隐藏,00000100系统,00001000 卷标,00010000 子目录,00100000 档案)12-21 10 保留未用22-23 2 文件创建时间(hhhhh mmmmmm sssss)24-25 2 文件创建时间(yyyyyyy mmmm ddddd)26-27 2 表示文件的首簇号28-31 4 文件长度3.3.6 FAT32 的 FDT 字段含义: 偏移 长度 说明0-7 8 文件名8-10 3 扩展名11 1 属性字节(同 FAT16,但为 0FH 时,表示该项为长文件名记录项)12-13 2 种类、校验和13-15 3 文件创建时间(

32、hhhhh mmmmmm sssss,后 8 位为毫秒数)16-17 2 文件创建时间(yyyyyyy mmmm ddddd)18-19 2 最新访问日期,定义同 16-1720-21 2 起始簇的高 16 位22-23 2 最新修改时间(hhhhh mmmmmm sssss)24-25 2 最新修改日期,定义同 16-1726-27 2 起始簇的低 16 位28-31 4 文件长度通过以上信息,经过 debug 的 L 命令即可读出 FAT 系统中任意文件的内容。 - 4.NTFS 文件系统的结构: 分区引导扇区MFT(主文件表)系统文件文件区域 在 NTFS 中,磁盘上的任何事物都为文件。

33、 文件通过 MFT 来确定其在磁盘上的存储位置。主文件表是一个与文件相对应的数据库,由一系列文件记录组成卷中每个文件都有一个文件记录(对于大型文件可能有多个记录与之对应)。主文件表自身也有它自己的记录。MFT 的文件记录大小一般是固定的,不管簇的大小是多少,均为 1k。MFT 仅供系统本身组织架构文件系统使用,被称为元数据,不能被应用程序访问。其中最基本的前 16 个记录是操作系统使用的非常重要的元数据文件。这些文件都以$开始,是隐藏文件,不能用 dir 命令列出。不过有个工具 nfi.exe可以转储重要的元数据文件。 NTFS 使用逻辑簇号 LCN 和虚拟簇号 VCN 来对簇进行定位。LCN

34、 是对整个卷从头到尾的编号,相当于 FAT 系统的逻辑簇号。VCN 是对特定文件的簇从头到尾进行编号。VCN 可以映射成 LCN。 - NTFS 把磁盘分成两大部分,大约 12%分配给 MFT,余下的用来存储文件。 NTFS 通过 MFT 访问卷的过程如下: li首先必须装载该卷查看引导文件($Boot 元数据文件),找到 MFT 的物理地址;/lili然后从文件记录的数据属性中获得 VCN 到 LCN 的映射信息,并存储在内存中。这个映射信息定位了 MFT 的运行(run 或 extent,见常驻属性与非常驻属性)在磁盘上的位置;/lili接着再打开几个元数据文件的 MFT 记录,并打开这些

35、文件。此后,用户就可以访问该卷了。/liNTFS 将文件作为属性/属性值的集合来处理。文件数据就是未命名属性的值。一个文件通常占用一个文件记录。但当一个文件具有很多项属性值或很零碎的时候,就可能需要占用一个以上的文件记录。这种情况下,第一个文件记录是其基本的文件记录,存储有该文件需要的其他文件记录的位置。小文件和文件夹将全部存储在文件的 MFT 记录里。 NTFS 的文件夹只是一个简单的文件名和文件引用号的索引,如果目录列表小于一个记录的长度,那么,该文件夹的所有信息都存储在主文件表的记录中。对于大于记录的文件夹则使用 B+树进行管理,并用一个指针指向一个外部簇,该簇用来存储那些 MFT 内存

36、储不了的文件夹的属性。 - 当一个文件很小时,其所有属性和属性值都可以存放在 MFT 的文件记录中。当属性值能直接存放在 MFT 中时,该属性就称为常驻属性(resident attribute)。有些属性总是常驻的,这样 NTFS 才可以确定其他非常驻属性。 大文件或大目录的所有属性,就不可能常驻在 MFT 中。如果一个属性太大而不能存放在只有 1KB 大小的 MFT 文件记录中,那么 NTFS 将从 MFT 之外为之分配区域。这些区域通常称为一个运行(run )或一个盘区(extent ),它们可用来存储属性值,如文件数据。如果以后属性值又增加,那么,NTFS 将回再分配一个运行,以便用来

37、存储额外的数据。值存储在运行中而不是在 MFT 文件记录中的属性称为非常驻属性。 在标准属性中,只有可以增长的属性才是非常驻的。对文件来说,可增长属性有数据、属性列表等。 - 4.1 NTFS 的 BPB: 偏移 长度 说明00 3 JMP 指令03 8 OEM 标志0B 2 每扇区字节数0D 1 每簇扇区数0E 2 保留扇区10 3 总为 013 2 NTFS 未使用,总为 015 1 介质描述16 2 总为 018 2 每磁道扇区数1A 2 磁头数1C 4 隐含扇区20 4 NTFS 未使用,总为 024 4 NTFS 未使用,总为 028 8 扇区总数30 8 $MFT 的逻辑簇号38

38、3 $MFTMirr 的逻辑簇号40 4 每 MFT 记录簇数44 4 每索引簇数48 8 卷标50 4 校验和4.2 NTFS 元文件: 序号 元文件 功能0 $MFT 主文件表本身1 $MFTMirr 主文件表的部分镜像(内容就是前 16 个文件记录)2 $LogFile 日志文件3 $Volume 卷文件4 $AttrDef 属性定义列表5 $Root 根目录6 $Bitmap 位图文件7 $Boot 引导文件8 $BadClus 坏簇文件9 $Secure 安全文件10 $UpCase 大写文件11 $Extend metadata directory 扩展元数据目录12 $Exten

39、d$Reparse 重解析点文件13 $Extend$UsnJrnl 变更日志文件14 $ExtendQuota 配额管理文件15 $Extend$ObjId 对象 ID 文件16-23 保留23+ 用户文件和目录4.3 MFT 的结构: 偏移 长度 属性00 4 标志,一定是FILE04 2 更新序列 US 的偏移06 2 更新序列号 USN 的大小与数组,包括第一个字节08 8 日志文件序列号10 2 序列号(SN)12 2 硬连接数14 2 第一个属性的偏移地址16 2 标志,1 表示记录正在使用,2 表示该记录为目录18 4 记录头和属性的总长度,即文件记录的实际长度1C 4 总共分配

40、给记录的长度20 8 基本文件记录中的文件索引号28 2 下一属性 ID2A 2 Windows XP 中使用,边界2C 4 Windows XP 中使用,文件记录号4.4 标准索引头结构: 偏移 长度 属性00 4 总是INDEX04 2 更新序号偏移06 2 更新序列号 USN 的大小与排列,包括第一个字节08 8 日志文件序列号 LSN10 8 该索引缓冲在索引分配中的索引 VCN18 4 索引入口偏移(相对 18)1C 4 索引入口的大小(相对 18)20 4 索引入口的分配大小(相对 18)24 1 非页级接点为 1(有子索引)25 3 总是 028 2 更新序列号2A 2S-2 更

41、新序列排列4.5 常用索引表: 名称 索引 说明$I30 文件名 目录使用$SDH 安全描述 $Secure$SII 安全 IDS $Secure$O 对象 Ids $ObjId$O 所有者 $Quota$Q 配额 $Quota$R 重解析点 $Reparse4.6 NTFS 卷上常用的属性说明: 属性名 属性描述$VOLUME_INFORMATION 卷信息,仅存在于$Volume 元数据文件中$VOLUME_NAME 卷名称或标识,仅存在于$Volume 元数据文件中$STANDARD_INFORMATION标准信息,包括基本文件属性,如只读、存档;时间标记;有多少目录指向本文件(即硬连接

42、数)$FILE_NAME 文件名,以 Unicode 表示$SECURITY_DESCRIPTOR安全描述符。(2000/XP 将所有的文件安全描述符放在$Secure 元数据文件中,早期版本将它与文件目录放在一起)$DATA 文件数据$INDEX_ROOT 索引根$INDEX_ALLOCATION 索引分配$BITMAP 位图$ATTRIBUTE_LIST 属性列表$OBJECT_ID对象 ID:一个具有 64 个字节的标识符,其中最低 16字节对卷来说是唯一的$REPARSE_POINT 重解析点$EA 扩充属性$EA_INFORMATION 扩充属性信息$LOGGED_UTILITY_STREAM EFS 加密属性

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报