FAT32 文件系统 · 入门

最近写了个分析FAT32文件系统根目录文件信息的程序,现在小记一下。

一、结构分析

先上结构图如下:

图(1)、FAT文件系统结构图

注:

  1. 第一个保留区大小N(单位:扇区):由MBR中 0x1c6~0x1c9(454开始)的四个字节决定。

  2. 第二个保留区大小M(单位:扇区):由DBR中 0x0e~0x0f(14开始)的两个字节决定。

  3. 每个FAT表大小K(单位:扇区):由DBR中 0x24~0x27(36开始)的四个字节决定。

 

二、主引导扇区组成

主引导扇区:硬盘的第一个扇区(0柱面 0磁头 1扇区),它由主引导记录(MBR)、主分区表即磁盘分区表(DPT)和引导扇区标记(Boot Record ID / Signature)三部分组成,是完成系统BIOS向操作系统交接的重要入口。该扇区在进行硬盘分区时产生。

图(2)、主引导扇区内容

注:

  1. 主引导扇区内容:蓝色下划线部分为分区表。

  2. 主分区表第一分区表项内容:紫色部分(4字节):决定相对扇区数,即从该磁盘开始到该分区开始的偏移量;黄色部分(4字节):决定总扇区数。

 

三、操作系统引导扇区组成

DBR区,即操作系统引导记录区,也就是引导扇区。通常占用分区的第0扇区,共512字节(特殊情况也要占用其他保留扇区)。这512字节中的内容由跳转指令、厂商标志和操作系统版本号、BPB(BIOS Parameter Block)、扩展BPB、OS引导程序、结束标志组成。

注:

  1. DBR各部分划分(整体):

  2. DBR内容细节划分:

 

四、FSINFO扇区

FAT32在保留区中增加了一个FSINFO扇区,用以记录文件系统中空闲簇的数量以及下一个可用簇的簇号等信息,以供操作系统作为参考。FSINFO信息扇区一般位于文件系统的1号扇区。

注:

  • 内容细节划分:

 

五、FAT表

FAT(File Allocation Table),即文件分配表(共两个且完全相同)。

注:

  • 内容解析:

 

六、根目录表

目录所在的扇区,都是以 32 Byte 为一个单位划分,每个单位称为一个目录项。根目录由若干个目录项组成,一个目录项占用32个字节,可以是长文件名目录项、文件目录项、“.”目录项和“..”目录项等等。

注:

  1. 图中框出四个文件:

  2. 短文件名目录项参数:

  3. 长文件名目录项参数(除第1项,第1项以短文件名方式存储):

  4. 输出文件名(大小写敏感):

  5. 由文件目录项得到首簇号,再通过查FAT表,即可得到文件的簇号链,簇号对应位置内即为存储的文件内容。

此处以big.txt文件为例
大小:0x0001425c,即:81 Kb
首簇号为:0x0006,即第 6 簇
簇号链为:6 -> 7 -> 8 -> 9 -> 10 -> 11 -> 12 -> 13 -> 14 -> 15 -> 16
文件内容如下图所示(仅展示第6簇第1扇区内容):

第6簇第1扇区内容(全为8)

注:FAT32 文件系统单个文件大小不得超过 4 G:

每个文件的大小由 4 个字节来表示
每个字节 8 位,共 2 的 32 次方 B,即:4294967296 B
4294967296 / 1024 = 4194304 K
4194304 / 1024 = 4096 M
4096 / 1024 = 4 G (即最大 4 GB)
  •  

代码太丑,就不放了!

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值