文档库 最新最全的文档下载
当前位置:文档库 › FAT32文件系统详细介绍

FAT32文件系统详细介绍

FAT32文件系统详细介绍
FAT32文件系统详细介绍

FAT32文件系统详细介绍

通过使用DiskEditor对硬盘的分析,现对硬盘的MBR区及FAT32文件系统做一个详细的介绍。

新硬盘->低格后变化:所有扇区中的字节数据填充为0x00

低格后->分区后变化:写硬盘的MBR(主引导扇区)区

分区后->格式华变化:写硬盘的FAT(文件分配表)区

MBR区介绍:

起始位置:0柱面0磁头1扇区(硬盘的第一个扇区)

结束位置:0柱面0磁头1扇区

大小:512(硬盘每个扇区的所占用的字节数)个字节

000102030405060708090a0b0c0d0e0f

000000000000000000000000-0000000000000000

000000100000000000000000-0000000000000000

………………………………-……………………

000001b00000000000000000-0000000000008001

000001c001000cfffffe3f00-0000fc8a38010000

000001d00000000000000000-0000000000000000

000001e00000000000000000-0000000000000000

000001f00000000000000000-00000000000055aa

000 ~ 1bd (446字节)executable code(我们不使用,固定填写0x00)

1be ~ 1cd(16字节)1st partition entry(参数解释见下面)

1ce ~ 1dd(16字节)2st partition entry(同第一个分区)

1de ~ 1ed(16字节)3st partition entry(同第一个分区)

1ee ~ 1fd(16字节)4st partition entry(同第一个分区)

1fe ~ 1ff(2字节)boot record signature(固定值:55 aa)

现以第一个分区的入口参数为例:

80分区状态(80H表示为激活分区, 00H表示为非激活分区)

01分区的开始磁头

01 00分区的开始柱面和扇区(0 ~ 5位为扇区号、8 ~ 15位为柱面号的低8位,6 ~ 7位为柱面号的高两位)

0c分区的类型(0c表示为FAT32,用LBA方式)

ff分区的结束磁头

ff fe分区的结束柱面和扇区(表示同开始磁头)

3f 00 00 00从MBR到第一个分区扇区的扇区个数(一般为硬盘扇区的最大值)

fc 8a 38 01分区的总扇区数(可以计算扇区的总大小)

FAT区介绍:

起始位置:0柱面1磁头0扇区

结束位置:根据硬盘参数不同有所不同

大小:硬盘的总簇数×4字节

FAT区中的BOOT:

起始位置:0柱面1磁头0扇区

结束位置:0柱面1磁头0扇区

大小:512字节

000102030405060708090a0b0c0d0e0f

00000000eb58904d5357494e-342e310002082000

000000100200000000f80000-3f00ff003f000000

00000020fc8a3801fc4d0000-0000000002000000 000000300100060000000000-0000000000000000 00000040800029ab0b641500-0000000000000000 000000500000464154333220-2020xxxxxxxxxxxx

00000060xxxxxxxxxxxxxxxx-xxxxxxxxxxxxxxxx …………………………-……………………

000001f0xxxxxxxxxxxxxxxx-xxxxxxxxxxxx55aa

000 ~ 059 (60字节)各个参数(参数解释见下面)

000 ~ 059 (420字节)executable code(初始值固定)

000 ~ 059 (2字节)boot record signature(固定值:55 aa)现解释各个参数的含义:

eb 58 90跳转代码(固定值: eb 58 90)

4d 53 57 49 4e 34 2e 31OEM名字(固定值:表示MSWIN4.1)00 02每扇区的字节数(512)

08每簇的扇区数

20 00保留的扇区数(通常固定为32)

02FAT表的个数(通常有2个)

00 00未使用(固定为0)

00 00未使用(固定为0)

f8介质类型(硬盘为f8)

00 00未使用(固定为0)

3f 00每磁道的最大扇区数(硬盘的参数)

ff 00最大磁头数(硬盘的参数)

3f 00 00 00分区中隐藏的扇区数(初始化时写入每磁道的最大扇区数)

fc 8a 38 01分区中的扇区总数(自己根据硬盘参数计算)

fc 4d 00 00每个FAT表占用的扇区数

00 00Flags(Bits 0-4 Indiate Active FAT Copy)(Bit 7 Indicates whether FAT mirroring is enabled or disable )(if FAT mirroring is disabled, the FAT information is only written to the copy indicated by bits 0-4)

00 00FAT32驱动版本(固定值:00 00)

02 00 00 00根目录区的开始簇号(00 01 两个簇号不使用)

01 00文件系统信息(后面有相关的说明)扇区所在位置的扇区号(此扇区号为相对位置)

06 00备份引导扇区所在位置的扇区号(此扇区号为相对位置)

00 00 00 00 00 00 00 00 00 00 00 00保留

80分区的逻辑驱动号(第一个分区固定为80)

00未使用

29扩展标识(固定值:29)

ab 0b 64 15分区的串号(工控机硬盘为74 00 e6 f0)

00 00 00 00 00 00 00 00 00 00 00分区的名称(工控机硬盘为4e 4f 20 4e 41 4d 45 20 20 20 20意思为“NO NAME”)

46 41 54 33 32 20 20 20FAT名称(固定值:表示“FAT32”)

executable code:

具体含义不明(应该是用来引导用的代码)

FAT区中的文件系统信息区:

起始位置:0柱面1磁头1扇区

结束位置:0柱面1磁头1扇区

大小:512字节

000102030405060708090a0b0c0d0e0f

000000005252614100000000-0000000000000000

000000100000000000000000-0000000000000000

…………………………-……………………

000001e00000000072724161-75901d0044050000

000001f00000000000000000-00000000000055aa

000 ~ 0031e4 ~ 1fd (30字节)各个参数(参数解释见下面)

004 ~ 1e3 (480字节)未知(固定值:00)

000 ~ 059 (2字节)boot record signature(固定值:55 aa)

现解释各个参数的含义:

52 52 61 41标识(First Signature)

72 72 41 61标识(Signture of FSInfo sector)

75 90 1d 00剩余的簇数(如果设置为ff ff ff ff,表示未知)(工控机硬盘为fc 94 18 00)

44 05 00 00最近一次被分配的簇号(工控机硬盘为02 00 00 00)

00 00 00 00 00 00 00 00 00 00 00 00保留

00 00未知

FAT区中的未知数据区

起始位置:0柱面1磁头2扇区

结束位置:0柱面1磁头2扇区

大小:512字节

000102030405060708090a0b0c0d0e0f

00000000fa660fb64610668b-4e2466f7e1660346

000000101c660fb7560e6603-c233c9668946fc66 00000020c746f8fffffffffa-668b462c6683f802 000000300f82cffc663df8ff-ff0f0f83c5fc660f 00000040a4c210fb5250fa66-c1e010660facd010 000000506683e802660fb65e-0d8bf366f7e36603 0000006046fc660fa4c210fb-bb00078bfbb90100 00000070e8befc0f82aafc38-2d741eb10b56bed8 000000807df3a65e741903f9-83c7153bfb72e84e 0000009075d6585ae8660072-ab83c404e964fc83 000000a0-

000000b0-

000000c0-

000000d0-

000000e0-

000000f0-

00000100d203c013d2e81800-fa26668b016625ff 00000110-

00000120-

00000130-

00000140-

00000150-

00000160-

000001700fa4c210fb8bdfb9-0100e8b4fb5a0f82

000001809ffbfb8bdac30000-0000000000000000

000001900000000000000000-0000000000000000

000001a00000000000000000-0000000000000000

000001b00000000000000000-0000000000000000

000001c00000000000000000-0000000000000000

000001d00000000000000000-0000000000000000

000001e00000000000000000-0000000000000000

000001f00000000000000000-00000000000055aa

FAT表介绍:

起始位置:0柱面1磁道1扇区+保留扇区数+(每个FAT表占用的扇区数×2)

结束位置:根据分区情况确定

大小:根据分区情况确定

000102030405060708090a0b0c0d0e0f

00000000f8ffff0fffffffffffffff0fffffff0f

00000010a6000000ffffff0fffffff0fffffff0f

……

000001e0ffffff0fffffff0fffffff0fffffff0f

000001f0ffffff0fffffff0fffffff0fffffff0f

说明:

每簇的使用情况用32位二进制填写,未被分配的簇相应位置写零;坏簇相应位置填入特定值;已分配的簇相应位置填入非零值,具体为:如果该簇是文件的最后一簇,填入的值为FFFFFF0FH,如果该簇不是文件的最后一簇,填入的值为该文件占用的下一个簇的簇号,这样,正好将文件占用的各簇构成一个簇链,保存在FAT表中。0000000H、00000001H两簇号不使用,其对应的两个DWORD位置(FAT表开头的8个字节)用来存放该盘介质类型编号。FAT表的大小就由该逻辑盘数据区共有多少簇所决定,取整数个扇区

DATA区介绍:

起始位置:0柱面1磁道1扇区+保留扇区数+(每个FAT表占用的扇区数×2)

结束位置:根据分区情况确定

大小:根据分区情况确定

000102030405060708090a0b0c0d0e0f

0000000057494e3938202020-2020201000000000

0000001000001b2f0000e860-1b2f030000000000

……-

000001e0535********d2020-3153540600000000

000001f00000262f0100a761-1b2f9c6d20600800

000 ~ 01f (32字节)根目录区中的WIN98子目录(参数解释见下面)

1e0 ~ 1ff (32字节)根目录区中的SYSTEM.1st文件(参数解释同上)

现解释各个参数的含义:

57 49 4e 39 38 20 20 20文件名(WIN98)

20 20 20文件扩展名(无)

10文件属性(最高两位保留未用,0至5位分别是只读位、隐藏位、系统位、卷标位、子目录位、归档位)

00仅长文件名目录项用,用来存储其对应的短文件名目录项的文件名字节校验和等

00 00 0024位二进制的文件建立时间,其中的高5位为小时,次6位为分钟

00 0016位二进制的文件建立日期,其中的高7位为相对于1980年的年份值,次4位为月份,后5位为月内日期

1b 2f16位二进制的文件最新访问日期,定义同上

00 00起始簇号的高16位

e8 6016位二进制的文件最新修改时间,其中的高5位为小时,次6位为分钟,后5位的二倍为秒数

1b 2f16位二进制的文件建立日期,其中的高7位为相对于1980年的年份值,次4位为月份,后5位为月内日期

03 00起始簇号的低16位

00 00 00 0032位的文件字节长度(对于子目录,此项为0)

图示硬盘分区结构:

MBR(硬盘主引导分区)

FAT(文件分配表区)…………

BOOT(1个扇区)+文件系统信息区(1个扇区)+未知(固定数据,1个扇区)+3个保留扇区

BOOT(1个扇区)+文件系统信息区(1个扇区)+未知(固定数据,1个扇区)+3个保留扇区

FAT表

FAT表

DATA(数据区)

相关文档