您好,欢迎来到图艺博知识网。
搜索
您的当前位置:首页U盘FAT32文件系统

U盘FAT32文件系统

来源:图艺博知识网

一、FAT文件系统分为四个部分

参考别人的博客

1.

最开始的位置,第一个保留扇区是引导区。包括基本的文件系统信息,比如它的类型和其它指向其它扇区的指针。通常包括操作系统启动调用代码。保留扇区的总数记录在引导扇区中的一个参数中。

  1. FAT区(文件分配表)

包含两份文件分配表,分区信息的映射表,指示簇是如何存储的。

  1. 根目录区
  1. 数据区域

 

主引导记录(主引导扇区),读设备时最开始读这个分区。

  1. MBR(master boot record)MBR 又称作主引导记录占用 Boot Sector 的前 446 个字节 ( 0 to 0x1BD ), 存放系统主引导程序 (它负责从活动分区中装载并运行系统引导程序).
  2. DPT 即主分区表占用 个字节 (0x1BE to 0x1FD), 记录了磁盘的基本分区信息,主分区表分为四个分区项,,每项 16 字节,分别记录了每个主分区的信息(因此最多可以有四个主分区).
  3. Boot      Record ID 即引导区标记占用两个字节 (0x1FE      and 0x1FF), 对于合法引导区,它等于 0xAA55,这是判别引导区是否合法的标志。

 

二、主引导扇区(MBR)的具体结构如下图所示:

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 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 75 05  8c d8 fb eb  1d 80 fc 08  ...=.Tu.........        55.1.      

            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.`..@P....        55.1.112     

            04 10 00 30  e4 44 02  5c 04 8c  44 06 66 31  ...0..D..\..D.f1        55.1.128     

            c0 66 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 c7 a1  13 00 f7 26  ....?...H......&        55.1.160     

            11 00 f7 e3  01 f8 81 d2  00 00 44  08 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 f5 81  c6 10 00 e2  ......t.@.......        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 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  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  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 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  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.4  第三分区   

            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     

                    过256扇区后是这个分区       *512byte=7.2G

硬盘分区表

字节数

描述

00~00

1

可引导标志0x00不可引导,0x80可引导

01~03

3

04~04

1

分区类型

05~07

3

08~0B

4

0C~0F

4

分区大小扇区数

第一字节用于记录分区起始磁头号,第二字节低六位用于记录分区起始扇区号,用10bit记录分区起始柱面号:第二个字节的高两位作为起始柱面的高两位,第三个字节作为分区起始柱面的低八位。


三、DBR分区,读文件系统时最开始读这个分区。

winhex 读取的数据

         

【1】0x00~0x02:3 个字节,跳转指令。
【2】0x03~0x0A:8 个字节,文件系统标志和版本号,这里为 MSDOC5.0。

【14】0x20~0x23:4 个字节,文件系统大小扇区数,156657(0x 00 EEBF C1)。
【15】0x24~0x27:4 个字节,每个 FAT 表的大小扇区数,15248(0x 00 00 3B 90)。 7.4M

 

 

四、文件分配表FAT

  位于保留区后的是 FAT 区,有两个完全相同的 FAT(File Allocation Table, 文件分配表)表组成。

3.  如果某个簇未被分配使用,它所对应的 FAT 表项内的 FAT 表项值即用 0 进行填充,表示该 FAT 表项所对应的簇未被分配。

 

 

 定位一个 FAT32 文件系统的数据起始处,可以通过引导扇区的相关参数计算出来。

1.从引导扇区的偏移 0x0E~0x0F 字节处得到保留扇区。

2.从偏移 0x10 字节处得到 FAT 表的个数。

3.从偏移 0x24~0x27 字节处得到每个 FAT 表的大小扇区数。

4.利用如下公式计算:
保留扇区数 + 每个 FAT 表大小扇区数 × FAT 表个数 = 数据区起始扇区号

256+2272+15248*2=33024

 

计算其他已知簇号的扇区号,还要由引导扇区的偏移 0x0D 字节处查找到每个簇大小扇区数,并使用如下公式计算:
某簇起始扇区号 = 保留扇区数 + 每个 FAT 表大小扇区数 × FAT 表个数 + (该簇簇号 - 2) × 每簇扇区数

 

 

卷标Kingston

 

 

 

 

 

【7】0x10~0x11:2 个字节,文件创立的日期,16bit 也划分为三个部分:
  0~4bit 为日,有效值为 1~31
  5~10bit 为月,有效值为 1~12
  11~15bit 为时,有效值为 0~127,这是一个相对于 1980 年的年数值,也就是说该值加上 1980即为文件创建的日期值。该部分笔者就不再举例就计算了,原理和计算创建时间是一样的。请读者自己去计算。 
【8】0x12~0x13:2 个字节,最后访问日期。
【9】0x14~0x15:2 个字节,文件起始簇号的高两个字节。
【10】0x16~0x17:2 个字节,文件最后修改的时间。

转载于:https://www.cnblogs.com/pejoicen/p/39410.html

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- huatuoyibo.net 版权所有 湘ICP备2023021910号-2

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务