表1 图2分区表第一字段 | |||
字节位移 | 字段长度 | 值 | 字段名和定义 |
0x01BE | BYTE | 0x80 | 引导指示符(Boot Indicator) 指明该分区是否是活动分区。 |
0x01BF | BYTE | 0x01 | 开始磁头(Starting Head) |
0x01C0 | 6位 | 0x01 | 开始扇区(Starting Sector) 只用了0~5位。后面的两位(第6位和第7位)被开始柱面字段所使用 |
0x01C1 | 10位 | 0x00 | 开始柱面(Starting Cylinder) 除了开始扇区字段的最后两位外,还使用了1位来组成该柱面值。开始柱面是一个10位数,最大值为1023 |
0x01C2 | BYTE | 0x07 | 系统ID(System ID) 定义了分区的类型,详细定义,请参阅图4 |
0x01C3 | BYTE | 0xFE | 结束磁头(Ending Head) |
0x01C4 | 6位 | 0xFF | 结束扇区(Ending Sector) 只使用了0~5位。最后两位(第6、7位)被结束柱面字段所使用 |
0x01C5 | 10位 | 0x7B | 结束柱面(Ending Cylinder) 除了结束扇区字段最后的两位外,还使用了1位,以组成该柱面值。结束柱面是一个10位的数,最大值为1023 |
0x01C6 | DWORD | 0x0000003F | 相对扇区数(Relative Sectors) 从该磁盘的开始到该分区的开始的位移量,以扇区来计算 |
0x01CA | DWORD | 0x00DAA83D | 总扇区数(Total Sectors) 该分区中的扇区总数 |
表2 扩展分区表项的内容 | |
扩展分区表项 | 分区表项的内容 |
第一个项 | 包括数据的开始地址在内的与扩展分区中当前逻辑驱动器有关的信息 |
第二个项 | 有关扩展分区中的下一个逻辑驱动器的信息,包括包含下一个逻辑驱动器的EBR的扇区的地址。如果不存在进一步的逻辑驱动器的话,该字段不会被使用 |
第三个项 | 未用 |
第四个项 | 未用 |
表3 FAT32分区上DBR中各部分的位置划分 | |||
字节位移 | 字段长度 | 字段名 | 对应图8颜色 |
0x00 | 3个字节 | 跳转指令 | |
0x03 | 8个字节 | 厂商标志和os版本号 | |
0x0B | 53个字节 | BPB | |
0x40 | 26个字节 | 扩展BPB | |
0x5A | 420个字节 | 引导程序代码 | |
0x01FE | 2个字节 | 有效结束标志 |
表4 FAT32分区的BPB字段 | |||
字节位移 | 字段长度(字节) | 图8对应取值 | 名称和定义 |
0x0B | 2 | 0x0200 | 扇区字节数(Bytes Per Sector) 硬件扇区的大小。本字段合法的十进制值有512、1024、2048和4096。对大多数磁盘来说,本字段的值为512 |
0x0D | 1 | 0x08 | 每簇扇区数(Sectors Per Cluster),一簇中的扇区数。由于FAT32文件系统只能跟踪有限个簇(最多为4 294 967 296个),因此,通过增加每簇扇区数,可以使FAT32文件系统支持最大分区数。一个分区缺省的簇大小取决于该分区的大小。本字段的合法十进制值有1、2、4、8、16、32、64和128。Windows 2000的FAT32实现只能创建最大为32GB的分区。但是,Windows 2000能够访问由其他操作系统(Windows 95、OSR2及其以后的版本)所创建的更大的分区 |
0x0e | 2 | 0x0020 | 保留扇区数(Reserved Sector) 第一个FAT开始之前的扇区数,包括引导扇区。本字段的十进制值一般为32 |
0x10 | 1 | 0x02 | FAT数(Number of FAT) 该分区上FAT的副本数。本字段的值一般为2 |
0x11 | 2 | 0x0000 | 根目录项数(Root Entries)只有FAT12/FAT16使用此字段。对FAT32分区而言,本字段必须设置为 0 |
0x13 | 2 | 0x0000 | 小扇区数(Small Sector)(只有FAT12/FAT16使用此字段)对FAT32分区而言,本字段必须设置为0 |
0x15 | 1 | 0xF8 | 媒体描述符( Media Descriptor)提供有关媒体被使用的信息。值0xF8表示硬盘,0xF0表示高密度的3.5寸软盘。媒体描述符要用于MS-DOS FAT16磁盘,在Windows 2000中未被使用 |
0x16 | 2 | 0x0000 | 每FAT扇区数(Sectors Per FAT)只被FAT12/FAT16所使用,对FAT32分区而言,本字段必须设置为0 |
0x18 | 2 | 0x003F | 每道扇区数(Sectors Per Track) 包含使用INT13h的磁盘的“每道扇区数”几何结构值。该分区被多个磁头的柱面分成了多个磁道 |
0x1A | 2 | 0x00FF | 磁头数(Number of Head) 本字段包含使用INT 13h的磁盘的“磁头数”几何结构值。例如,在一张1.44MB 3.5英寸的软盘上,本字段的值为 2 |
0x1C | 4 | 0x0000003F | 隐藏扇区数(Hidden Sector) 该分区上引导扇区之前的扇区数。在引导序列计算到根目录的数据区的绝对位移的过程中使用了该值。本字段一般只对那些在中断13h上可见的媒体有意义。在没有分区的媒体上它必须总是为0 |
0x20 | 4 | 0x007D043F | 总扇区数(Large Sector) 本字段包含FAT32分区中总的扇区数 |
0x24 | 4 | 0x00001F32 | 每FAT扇区数(Sectors Per FAT)(只被FAT32使用)该分区每个FAT所占的扇区数。计算机利用这个数和 FAT数以及隐藏扇区数(本表中所描述的)来决定根目录从哪里开始。该计算机还可以从目录中的项数决定该分区的用户数据区从哪里开始 |
0x28 | 2 | 0x00 | |
0x2A | 2 | 0x0000 | 文件系统版本(File ystem Version)只供FAT32使用,高字节是主要的修订号,而低字节是次要的修订号。本字段支持将来对该FAT32媒体类型进行扩展。如果本字段非零,以前的Windows版本将不支持这样的分区 |
0x2C | 4 | 0x00000002 | 根目录簇号(Root Cluster Number)(只供FAT32使用) 根目录第一簇的簇号。本字段的值一般为2,但不总是如此 |
0x30 | 2 | 0x0001 | 文件系统信息扇区号(File System Information SectorNumber)(只供FAT32使用) FAT32分区的保留区中的文件系统信息(File System Information, FSINFO)结构的扇区号。其值一般为1。在备份引导扇区(Backup Boot Sector)中保留了该FSINFO结构的一个副本,但是这个副本不保持更新 |
0x34 | 2 | 0x0006 | 备份引导扇区(只供FAT32使用) 为一个非零值,这个非零值表示该分区保存引导扇区的副本的保留区中的扇区号。本字段的值一般为6,建议不要使用其他值 |
0x36 | 12 | 12个字节均为0x00 | 保留(只供FAT32使用)供以后扩充使用的保留空间。本字段的值总为0 |
表5 FAT32分区的扩展BPB字段 | |||
字节位移 | 字段长度(字节) | 图8对应取值 | 字段名称和定义 |
0x40 | 1 | 0x80 | 物理驱动器号( Physical Drive Number) 与BIOS物理驱动器号有关。软盘驱动器被标识为0x00,物理硬盘被标识为0x80,而与物理磁盘驱动器无关。一般地,在发出一个INT13h BIOS调用之前设置该值,具体指定所访问的设备。只有当该设备是一个引导设备时,这个值才有意义 |
0x41 | 1 | 0x00 | 保留(Reserved) FAT32分区总是将本字段的值设置为0 |
0x42 | 1 | 0x29 | 扩展引导标签(Extended Boot Signature) 本字段必须要有能被Windows 2000所识别的值0x28或0x29 |
0x43 | 4 | 0x33391CFE | 分区序号(Volume Serial Number) 在格式化磁盘时所产生的一个随机序号,它有助于区分磁盘 |
0x47 | 11 | "NO NAME" | 卷标(Volume Label) 本字段只能使用一次,它被用来保存卷标号。现在,卷标被作为一个特殊文件保存在根目录中 |
0x52 | 8 | "FAT32" | 系统ID(System ID) FAT32文件系统中一般取为"FAT32" |
表6 一个FAT16分区上的引导扇区段 | ||
字节位移 | 字段长度(字节) | 字段名称 |
0x00 | 3 | 跳转指令(Jump Instruction) |
0x03 | 8 | OEM ID |
0x0B | 25 | BPB |
0x24 | 26 | 扩展BPB |
0x3E | 448 | 引导程序代码(Bootstrap Code) |
0x01FE | 4 | 扇区结束标识符(0x55AA) |
表7 FAT16分区的BPB字段 | |||
字节位移 | 字段长度(字节) | 例值 | 名称和定义 |
0x0B | 2 | 0x0200 | 扇区字节数(Bytes Per Sector) 硬件扇区的大小。本字段合法的十进制值有512、1024、2048和4096。对大多数磁盘来说,本字段的值为512 |
0x0D | 1 | 0x40 | 每簇扇区数(Sectors Per Cluster) 一个簇中的扇区数。由于FAT16文件系统只能跟踪有限个簇(最多为65536个)。因此,通过增加每簇的扇区数可以支持最大分区数。分区的缺省的簇的大小取决于该 分区的大小。本字段合法的十进制值有 1、2、4、8、16、32、64和128。导致簇大于32KB(每扇区字节数*每簇扇区数)的值会引起磁盘错误和软件错误 |
0x0e | 2 | 0x0001 | 保留扇区数(Reserved Sector) 第一个FAT开始之前的扇区数,包括引导扇区。本字段的十进制值一般为1 |
0x10 | 1 | 0x02 | FAT数(Number of FAT)该分区上FAT的副本数。本字段的值一般为2 |
0x11 | 2 | 0x0200 | 根目录项数(Root Entries) 能够保存在该分区的根目录文件夹中的32个字节长的文件和文件夹名称项的总数。在一个典型的硬盘上,本字段的值为512。其中一个项常常被用作卷标号(Volume Label),长名称的文件和文件夹每个文件使用多个项。文件和文件夹项的最大数一般为511,但是如果使用的长文件名,往往都达不到这个数 |
0x13 | 2 | 0x0000 | 小扇区数(Small Sector) 该分区上的扇区数,表示为16位(<65536)。对大于65536个扇区的分区来说,本字段的值为0,而使用大扇区数来取代它 |
0x15 | 1 | 0xF8 | 媒体描述符( Media Descriptor)提供有关媒体被使用的信息。值0xF8表示硬盘,0xF0表示高密度的3.5寸软盘。媒体描述符要用于MS-DOS FAT16磁盘,在Windows 2000中未被使用 |
0x16 | 2 | 0x00FC | 每FAT扇区数(Sectors Per FAT) 该分区上每个FAT所占用的扇区数。计算机利用这个数和FAT数以及隐藏扇区数来决定根目录在哪里开始。计算机还可以根据根目录中的项数(512)决定该 分区的用户数据区从哪里开始 |
0x18 | 2 | 0x003F | 每道扇区数(Sectors Per Trark) |
0x1A | 2 | 0x0040 | 磁头数(Number of head) |
0x1C | 4 | 0x0000003F | 隐藏扇区数(Hidden Sector) 该分区上引导扇区之前的扇区数。在引导序列计算到根目录和数据区的绝对位移的过程中使用了该值 |
0x20 | 4 | 0x003EF001 | 大扇区数(Large Sector) 如果小扇区数字段的值为0,本字段就包含该FAT16分区中的总扇区数。如果小扇区数字段的值不为0,那么本字段的值为0 |
表8 FAT16分区的扩展BPB字段 | |||
字节位移 | 字段长度(字节) | 图8对应取值 | 字段名称和定义 |
0x24 | 1 | 0x80 | 物理驱动器号( Physical Drive Number) 与BIOS物理驱动器号有关。软盘驱动器被标识为0x00,物理硬盘被标识为0x80,而与物理磁盘驱动器无关。一般地,在发出一个INT13h BIOS调用之前设置该值,具体指定所访问的设备。只有当该设备是一个引导设备时,这个值才有意义 |
0x25 | 1 | 0x00 | 保留(Reserved) FAT16分区一般将本字段的值设置为0 |
0x26 | 1 | 0x29 | 扩展引导标签(Extended Boot Signature) 本字段必须要有能被Windows 2000所识别的值0x28或0x29 |
0x27 | 2 | 0x52368BA8 | 卷序号(Volume Serial Number) 在格式化磁盘时所产生的一个随机序号,它有助于区分磁盘 |
0x2B | 11 | "NO NAME" | 卷标(Volume Label) 本字段只能使用一次,它被用来保存卷标号。现在,卷标被作为一个特殊文件保存在根目录中 |
0x36 | 8 | "FAT16" | 文件系统类型(File System Type) 根据该磁盘格式,该字段的值可以为FAT、FAT12或FAT16 |
图4.3.11 Fat16的组织形式 | |||||
引导扇区 | FAT1 | FAT2(重复的) | 根文件夹 | 其他文件夹及所有文件 | 剩余扇区 |
1扇区 | 实际情况取大小 | 同FAT1 | 32个扇区 | 开始簇编号(从2开始) | 不足一簇 |
表9 FAT16分区大小与对因簇大小 | ||
分区空间大小 | 每个簇的扇区 | 簇空间大小 |
0MB-32MB | 1 | 512个字节 |
33MB-64MB | 2 | 1k |
65MB-128MB | 4 | 2k |
129MB-225MB | 8 | 4k |
256MB-511MB | 16 | 8k |
512MB-1023MB | 32 | 16k |
1024MB-2047MB | 64 | 32k |
2048MB-4095MB | 128 | 64k |
表10 FAT16记录项的取值含义(16进制) | |
FAT16记录项的取值 | 对应簇的表现情况 |
0000 | 未分配的簇 |
0002~FFEF | 已分配的簇 |
FFF0~FFF6 | 系统保留 |
FFF7 | 坏簇 |
FFF8~FFFF | 文件结束簇 |
表11 FAT16目录项32个字节的表示定义 | |||
字节偏移(16进制) | 字节数 | 定义 | |
0x0~0x7 | 8 | 文件名 | |
0x8~0xA | 3 | 扩展名 | |
0xB | 1 | 属性字节 | 00000000(读写) |
00000001(只读) | |||
00000010(隐藏) | |||
00000100(系统) | |||
00001000(卷标) | |||
00010000(子目录) | |||
00100000(归档) | |||
0xC~0x15 | 10 | 系统保留 | |
0x16~0x17 | 2 | 文件的最近修改时间 | |
0x18~0x19 | 2 | 文件的最近修改日期 | |
0x1A~0x1B | 2 | 表示文件的首簇号 | |
0x1C~0x1F | 4 | 表示文件的长度 |
图4.3.12 Fat32的组织形式 | ||||||
引导扇区 | 其余保留扇区 | FAT1 | FAT2(重复的) | 根文件夹首簇 | 其他文件夹及所有文件 | 剩余扇区 |
1扇区 | 31个扇区 | 实际情况取大小 | 同FAT1 | 第2簇 | 不足一簇 | |
保留扇区 | ┗━━━━━━━━数据区━━━━━━━━┛ |
表12 FAT32分区大小与对因簇大小 | ||
分区空间大小 | 每个簇的扇区 | 簇空间大小 |
<8GB | 8 | 4k |
>=8GB且<16GB | 16 | 8k |
>=16GB且<32GB | 32 | 16k |
>=32GB | 64 | 32k |
表13 FAT各系统记录项的取值含义(16进制) | |||
FAT12记录项的取值 | FAT16记录项的取值 | FAT32记录项的取值 | 对应簇的表现情况 |
000 | 0000 | 00000000 | 未分配的簇 |
002~FFF | 0002~FFEF | 00000002~FFFFFFEF | 已分配的簇 |
FF0~FF6 | FFF0~FFF6 | FFFFFFF0~FFFFFFF6 | 系统保留 |
FF7 | FFF7 | FFFFFFF7 | 坏簇 |
FF8~FFF | FFF8~FFFF | FFFFFFF8~FFFFFFFF | 文件结束簇 |
表14 FAT32短文件目录项32个字节的表示定义 | |||
字节偏移(16进制) | 字节数 | 定义 | |
0x0~0x7 | 8 | 文件名 | |
0x8~0xA | 3 | 扩展名 | |
0xB* | 1 | 属性字节 | 00000000(读写) |
00000001(只读) | |||
00000010(隐藏) | |||
00000100(系统) | |||
00001000(卷标) | |||
00010000(子目录) | |||
00100000(归档) | |||
0xC | 1 | 系统保留 | |
0xD | 1 | 创建时间的10毫秒位 | |
0xE~0xF | 2 | 文件创建时间 | |
0x10~0x11 | 2 | 文件创建日期 | |
0x12~0x13 | 2 | 文件最后访问日期 | |
0x14~0x15 | 2 | 文件起始簇号的高16位 | |
0x16~0x17 | 2 | 文件的最近修改时间 | |
0x18~0x19 | 2 | 文件的最近修改日期 | |
0x1A~0x1B | 2 | 文件起始簇号的低16位 | |
0x1C~0x1F | 4 | 表示文件的长度 |
* 此字段在短文件目录项中不可取值0FH,如果设值为0FH,目录段为长文件名目录段 |
表15 FAT32长文件目录项32个字节的表示定义 | ||||
字节偏移 (16进制) | 字节数 | 定义 | ||
0x0 | 1 | 属性字节位意义 | 7 | 保留未用 |
6 | 1表示长文件最后一个目录项 | |||
5 | 保留未用 | |||
4 | 顺序号数值 | |||
3 | ||||
2 | ||||
1 | ||||
0 | ||||
0x1~0xA | 10 | 长文件名unicode码① | ||
0xB | 1 | 长文件名目录项标志,取值0FH | ||
0xC | 1 | 系统保留 | ||
0xD | 1 | 校验值(根据短文件名计算得出) | ||
0xE~0x19 | 12 | 长文件名unicode码② | ||
0x1A~0x1B | 2 | 文件起始簇号(目前常置0) | ||
0x1C~0x1F | 4 | 长文件名unicode码③ |
欢迎光临 无忧启动论坛 (http://wuyou.net/) | Powered by Discuz! X3.3 |