FAT32学习笔记(一)
来源:互联网 发布:算法导论 最大利益 编辑:程序博客网 时间:2024/06/11 16:48
1,基本概念
fat32 spec
FAT的全称是File Allocation Table,FAT是在1980s年代初由微软开发的,主要有FAT12,FAT16,FAT32三种,分为这三种的主要原因是FAT12的FAT entry有12bits,FAT16的FAT entry有16bits,FAT32的FAT entry有32bit
2,FAT format
一个扇区(sector)大小为512Byte,一个cluster的大小通常为2的整数次幂的cluster的个数,最大32KB,一个文件至少占用一个cluster,通常为整数个cluster,这整数个cluster互为链表关系
FAT32 format(Data是从cluster计算起的,不存在cluster0和cluster1的。)
MBR
Boot
FSInfo
Rsv
FAT1
FAT2
Data
FAT16 format(Data从Cluster2开始)
MBR
Boot
Rsv
FAT1
FAT2
RotDir
Data
Boot指的是Boot Sector,Boot Sector占用第一个逻辑扇区,大小为512Byte.Boot Sector的详细解释可以参考FAT32 spec,其中主要有用成员如下:
Name
Offset(byte)
Size(byte)
Description
BPB_BytsPerSec
11
2
描述每个sector多少byte,通常为512(向前兼容),也可以取值为1024,2048,4096,
注:如果设备有物理sector为N且N大于512,那么取值为N但是不能超过4096
BPB_SecPerClus
13
1
表明每个cluster有多少个sector,通常为2的整数次幂,但是一个cluster通常不会超过32K
BPB_RsvdSecCnt
14
2
在Reserved region里保留sector的个数,对于FAT12 FAT16此值为1,对于FAT32此值为32
BPB_NumFATs
16
1
FAT data structure的个数,通常为2,FAT1和FAT2,安全性互为备份的关系
BPB_RootEntCnt
17
2
对于FAT32此值为0,对于FAT12和FAT16,此值含义是32byte根目录入口的个数
BPB_TotSec16
19
2
对于FAT12和FAT16,此值表示的是整个fatimg里sector的个数,对于FAT32此值为0,整个fatimg里sector的个数在offset 32长度为4的范围里表示。
BPB_Media
21
1
0Xf8表示的是non-removable media,0XF0表示的是removable media,该值要和FAT[0]的低位相同
BPB_FATSz16
22
2
对于FAT12和FAT16,表明的是一个FAT占用sector的大小,对于FAT32,此值为0
BPB_HiddSec
28
4
对于不带分区的设备,此值为0,对于其他的,此值的含义是在partition前的隐藏sector的个数
BPB_TotSec32
32
4
对于FAT32表明的是整个设备的sector的个数。不包含之前的MBR
以下是针对FAT32的。
Name
Offset(byte)
Size(byte)
Description
BPB_FATSz32
36
4
一个FAT表占用的sector的个数,FAT32有两个FAT表,互为备份关系,FAT12和FAT16该项内容为空。
BPB_ExtFlags
40
2
Bit7为0表示的是在运行的时候FAT表1和FAT表2是互为镜像的,bit7为1表示在运行的时候只有一个FAT表是活动的,FAT12和FAT16该项内容为空。
BPB_RootClus
44
4
根目录所在cluster的cluster的序号,通常为2,即Data region的第二个cluster是根目录,这样从cluster2就可以方便找到根目录(个人理解cluster是从Data region开始算起)
BPB_FSInfo
48
2
表明了fsinfo占用的sector的个数
BPB_BkBootSec
50
2
Reserved area里对boot sector备份的个数。
BPB_Reserved
52
12
保留将来扩展使用
BS_DrvNum
64
1
BS_FilSysType
82
8
FAT32通常设置为字符串“FAT32”
510
2
固定值 0X55 AA,这个固定值一定偏移是510位置,不随sector的改变而改变
- FAT32学习笔记(一)
- FAT32学习笔记(一)
- FAT32学习笔记(一)
- FAT32学习笔记(五)——fat相关工具
- FAT32学习笔记(二)——spec
- FAT32学习笔记(三)文件的删除,目录的删除,FAT32表的用途,FsInfo的作用
- FAT32学习笔记(三)文件的删除,目录的删除,FAT32表的用途,FsInfo的作用
- 文件恢复学习笔记 获取文件格式 fat32
- SD卡中的FAT32文件系统(一)
- FAT32文件系统之结构初探(一)
- FAT32学习笔记(二)长文件名的处理,文件内容的查找,目录的处理
- FAT32学习笔记(二)长文件名的处理,文件内容的查找,目录的处理
- 软件安全学习笔记(5):FAT32文件系统与数据恢复
- fat32分析一
- FAT32文件格式解析笔记
- FAT32文件系统的存储组织结构(一)
- FAT32文件系统的存储组织结构(一)
- FAT32文件系统的存储组织结构(一)
- POJ 2472 106 miles to Chicago
- 前端入坑出坑总结——为了更快的出入下一个坑(项目开发总结)
- java实现客户端向服务器发送文件的操作
- HDU4719-Oh My Holy FFF(DP线段树优化)
- 【转】线段树总结
- FAT32学习笔记(一)
- 光线传感器&指南针
- jquery中各个ajax事件执行顺序如下:
- Windows下tuxedo安装及测试
- oracle导入/导出imp,exp的应用
- 聊天框自动滚动到最后一行
- 精灵批处理类CCSpriteBatchNode
- NGUI Scroll View 循环滚动
- 彻底弄懂css中单位px和em,rem的区别