读了FAT32协议等,做了一些工作,学会不少东西,但是也有很多不懂得地方,希望明白人多来指教。
============================================
在U盘进行FAT32格式化后,发现除了MBR,DBR,DATA数据区外,还有一些数据区。就是用winhex发现的,有些数据段都没见过,不知道是干什么的。
=============================================
FAT32里就三个部分比较重要,MBR,DRB中的BPB和DATA区。可能我还没看完,目前觉得FAT表在读取FAT32数据的功能上,没什么用处。
1. MBR
MBR中比较重要的是两个数据:
一是有四个字节记录了这块FAT32格式的存储区总容量大小是多少。
二是有四个字节记录了这块FAT32的DBR在哪里。
2. DBR
通过MBR中的偏移,可以找到DBR的地址。然后根据协议里面的BPB的数据结构什么的,这些网络上可以很容易搜索到。
从DBR这块找出来的比较重要的数据是:
a. 每簇包含几个扇区
b. 每扇区包含几个字节
c. 在FAT分区之前所隐藏的扇区数
d. 该卷总扇区数
e. 一个FAT表所占的扇区数
f. 总共有几个FAT表
g. 根目录所在第一个簇的号
然后通过这些又可以计算出几个数值来:
a. FAT表起始地址 = DBR地址 + 保留扇区数
b. 第2个FAT表起始地址 =
c. 根目录地址 = DBR地址 + FAT表数目 * FAT表所占空间 + 保留扇区空间
3. DAT
在进入到根目录之后,就可以找表项了。每32字节代表一个目录或者文件。
这里会有点凌乱,因为有些删除的数据的表项也在这里,所以从逻辑地址的表面来看,文件是不连续的。所以这里要做点区分工作,把无效数据过滤掉,哈哈。