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
    评论
FAT32(文件分配表32)是一种常见的文件系统,用于在计算机硬盘驱动器上存储和管理文件。该文件系统最早由微软引入,适用于各种操作系统,包括Windows、macOS和Linux。FAT32文件系统主要用于较小的存储设备,例如闪存驱动器和SD卡。 FAT32文件系统采用了有趣的文件结构,其中包含了几个重要的组件。首先是引导记录(Boot Record),其位于存储设备的第一个扇区中。引导记录存储了启动硬件的相关信息,并在文件系统初始化时充当重要的角色。 文件分配表(File Allocation Table)是FAT32文件系统的核心组件之一。它记录了存储设备上每个文件的分配信息。文件分配表中的每个表项都指示与文件相关的簇(cluster)号码,用于确定文件在存储设备上的物理位置。 目录条目(Directory Entry)也是FAT32文件系统中重要的组成部分。每个目录条目对应着一个文件或子目录。每个目录条目包含一些元数据信息,例如文件名、扩展名、文件大小、创建日期等。FAT32文件系统使用一种层次结构来组织目录条目,使得用户可以轻松地浏览和查找文件。 在FAT32文件系统中,还有一个名为文件簇(Cluster)的概念。文件簇是最小的可分配存储单位,用于存储文件的内容。文件系统通过在文件分配表中跟踪文件的簇号码来定位文件的内容所在位置。每个簇的大小通常是4KB或8KB,具体取决于存储设备的大小。 总的来说,FAT32文件系统结构包括了引导记录、文件分配表、目录条目和文件簇等关键组件。这些组件紧密配合,使得FAT32文件系统能够在存储设备上高效地存储和管理文件。虽然FAT32文件系统有一些限制,如单个文件的最大大小仅为4GB,但它仍然被广泛应用于移动存储设备等场景中,由于其易于兼容和可靠性的特点。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值