FAT文件系统分为四个部分
- 保留扇区(引导区)
最开始的位置,第一个保留扇区是引导区。包括基本的文件系统信息,比如它的类型和其它指向其它扇区的指针。通常包括操作系统启动调用代码。保留扇区的总数记录在引导扇区中的一个参数中。
- FAT区(文件分配表)
包含两份文件分配表,分区信息的映射表,指示簇是如何存储的。
- 根目录区
在根目录中存储文件和目录信息的目录表。
- 数据区域
实际文件和目录数据存储的区域。需要注意的是每隔簇只能被一个文件占有。
主引导记录(主引导扇区)
- MBR(master boot record)MBR 又称作主引导记录占用 Boot Sector 的前 446 个字节 ( 0 to 0x1BD ), 存放系统主引导程序 (它负责从活动分区中装载并运行系统引导程序).
- DPT 即主分区表占用 64 个字节 (0x1BE to 0x1FD), 记录了磁盘的基本分区信息,主分区表分为四个分区项,,每项 16 字节,分别记录了每个主分区的信息(因此最多可以有四个主分区).
- Boot Record ID 即引导区标记占用两个字节 (0x1FE and 0x1FF), 对于合法引导区,它等于 0xAA55,这是判别引导区是否合法的标志。
主引导扇区的具体结构如下图所示:
Offset |
Description |
Size |
000h |
Executable Code (Boots Computer) |
446 Bytes |
1BEh |
1st Partition Entry (See Next Table) |
16 Bytes |
1CEh |
2nd Partition Entry |
16 Bytes |
1DEh |
3rd Partition Entry |
16 Bytes |
1EEh |
4th Partition Entry |
16 Bytes |
1FEh |
Executable Marker (55h AAh) |
2 Bytes |
USB hound 得到的数据
512 IN fa 31 c0 8e d8 8e c0 8e d0 bc 00 7c fb fc 89 e6 .1.............. 55.1.0(2)
bf 00 06 b9 00 01 f3 a5 ea dc 06 00 00 10 00 01 ................ 55.1.16
00 00 7c 00 00 00 00 00 00 00 00 00 00 80 3f 00 ..............?. 55.1.32
ff 00 b4 03 1e 0e 1f 3a 16 10 00 74 06 1f ea 36 .......:...t...6 55.1.48
e7 00 f0 3d fb 54 75 05 8c d8 fb eb 1d 80 fc 08 ...=.Tu......... 55.1.64
75 1b e8 81 00 8a 36 13 00 fe ce 8b 0e 15 00 86 u.....6......... 55.1.80
cd c0 e1 06 0a 0e 11 00 31 c0 f8 eb 65 80 fc 02 ........1...e... 55.1.96
72 cb 80 fc 04 77 c6 60 80 cc 40 50 be 00 00 c7 r....w.`[email protected] 55.1.112
04 10 00 30 e4 89 44 02 89 5c 04 8c 44 06 66 31 ...0..D..\..D.f1 55.1.128
c0 66 89 44 0c 88 f0 f6 26 11 00 88 cf 88 eb c0 .f.D....&....... 55.1.144
ef 06 81 e1 3f 00 01 c8 48 89 c7 a1 13 00 f7 26 ....?...H......& 55.1.160
11 00 f7 e3 01 f8 81 d2 00 00 89 44 08 89 54 0a ...........D..T. 55.1.176
58 30 c0 8a 16 10 00 e8 0c 00 88 26 03 00 61 a1 X0.........&..a. 55.1.192
02 00 1f ca 02 00 9c ff 1e 22 00 c3 80 fa 8f 7f ........."...... 55.1.208
04 88 16 2d 06 be 87 07 e8 8d 00 be be 07 31 c0 ...-..........1. 55.1.224
b9 04 00 f6 04 80 74 03 40 89 f5 81 c6 10 00 e2 [email protected] 55.1.240
f2 48 74 02 cd 18 bf 05 00 be 1d 06 c7 44 02 01 .Ht..........D.. 55.1.256
00 66 8b 46 08 66 89 44 08 b8 00 42 8a 16 2d 06 .f.F.f.D...B..-. 55.1.272
cd 13 73 0d 4f 74 49 30 e4 8a 16 2d 06 cd 13 eb ..s.OtI0...-.... 55.1.288
d8 a1 fe 7d 3d 55 aa 75 37 fa 66 a1 4c 00 66 a3 ....=U.u7.f.L.f. 55.1.304
3f 06 be 13 04 8b 04 48 89 04 c1 e0 06 8e c0 31 ?......H.......1 55.1.320
ff be 1d 06 b9 60 00 fc f3 a5 c7 06 4c 00 17 00 .....`......L... 55.1.336
a3 4e 00 fb 8a 16 2d 06 89 ee fa ea 00 7c 00 00 .N....-......... 55.1.352
be aa 07 e8 02 00 eb fe ac 20 c0 74 09 b4 0e bb ......... .t.... 55.1.368
07 00 cd 10 eb f2 c3 53 74 61 72 74 20 62 6f 6f .......Start boo 55.1.384
74 69 6e 67 20 66 72 6f 6d 20 55 53 42 20 64 65 ting from USB de 55.1.400
76 69 63 65 2e 2e 2e 0d 0a 00 42 6f 6f 74 20 66 vice......Boot f 55.1.416
61 69 6c 65 64 00 00 00 ea eb d4 ca 00 00 00 00 ailed........... 55.1.432 第一分区
硬盘分区表 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 55.1.448 第二分区
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 55.1.464 第三分区
00 00 00 00 00 00 00 00 00 00 00 00 00 00 80 04 ................ 55.1.480 第四分区
05 00 0b fe ff b3 00 01 00 00 80 8c e8 00 55 aa ..............U. 55.1.496
4096 *512byte=7.2G
硬盘分区表
地址 |
字节数 |
描述 |
00~00 |
1 |
可引导标志0x00不可引导,0x80可引导 |
01~03 |
3 |
分区起始CHS地址 |
04~04 |
1 |
分区类型 |
05~07 |
3 |
分区结束CHS地址 |
08~0B |
4 |
分区起始LBA地址 |
0C~0F |
4 |
分区大小扇区数 |
分区起始CHS地址(U盘就不用考虑了)
第一字节用于记录分区起始磁头号,第二字节低六位用于记录分区起始扇区号,用10bit记录分区起始柱面号:第二个字节的高两位作为起始柱面的高两位,第三个字节作为分区起始柱面的低八位。
文件分配表