配色: 字号:
FAT32文件系统分析
2017-06-16 | 阅:  转:  |  分享 
  
Sheet3

Sheet2

Sheet1

FAT32文件系统分析(作者:朱鸥飞)

以金士顿8GSD大卡(格式化FAT32)为例(用WinHex工具,在_物理驱动器_打开SD卡)

主引导记录区MBR

文件系统引导记录区DBR

信息扇区FSINFO

DBR备份

FSINFO备份

FAT1

FAT2

数据区

结束

占1个扇区

占8191个扇区

占4个扇区

占14883个扇区

0(物理扇区号)

SD卡0扇区(物理0扇区)

文件系统0扇区(逻辑0扇区)

文件系统1扇区

文件系统8扇区

文件系统9扇区

分区前扇区(0-8191)

FAT32文件系统(FAT32文件系统扇区(8192-15278079))

系统分区前保留区(只能扇区管理)

FAT32文件系统保留区(只能扇区管理)

FAT区(只能扇区管理)

数据区(能扇区、簇管理)

1个扇区=512个字节1个簇=8个扇区

以上数字都是根据主引导区MBR、系统引导区DBR的数据得出来的在FAT文件系统中,同时使用“扇区地址”和“簇地址”两种地址管理方式。这是因为只有存储用户数据的数据区使用簇进行管理(FAT12和FAT16的根目录除外),所有簇都位于数据区。其他文件系统管理数据区域是不以簇进行管理的,这部分区域使用扇区地址进行管理。文件系统的起始扇区为0号扇区。要想定位一个FAT32文件系统的数据起始处,可以通过引导扇区的相关参数计算出来。1.从引导扇区的偏移0x0E~0x0F字节处得到保留扇区。2.从偏移0x10字节处得到FAT表的个数。3.从偏移0x24~0x27字节处得到每个FAT表的大小扇区数。4.利用如下公式计算:
保留扇区数+每个FAT表大小扇区数×FAT表个数=数据区起始扇区号
5.要想计算其他已知簇号的扇区号,还要由引导扇区的偏移0x0D字节处查找到每个簇大小扇区数,并
使用如下公式计算:
某簇起始扇区号=保留扇区数+每个FAT表大小扇区数×FAT表个数+(该簇簇号-2)×每簇扇区数

.00

000.00

000.00

000.00

000.00

000.00

000.00

000.00

000.00

000.00

0000.00

0000.00

0000000.00

献花(0)
+1
(本文系oufei186首藏)