基于Fat32文件系统的预分配

 一、前言

    硬盘是用来存储数据的,为了使用和管理方便,这些数据以文件的形式存储在硬盘上。任何操作系统都有自己的文件管理系统,不同的文件系统又有各自不同的逻辑组织方式。例如:常见的文件系统有FATNTFSEXTUFSHFS+等等。本博客是基于linuxFAT32文件系统讲解,应用于嵌入式产品磁盘存储的预分配。

二、FAT32文件系统结构

FAT32文件系统由DBR及其保留扇区,FAT1FAT2DATA四个部分组成,其机构如下图:

DBR及保留区

FAT1

FAT2

数据区

这些结构是在分区被格式化时创建出来的,含义解释如下:

DBR及其保留扇区:DBR的含义是DOS引导记录,也称为操作系统引导记录,在DBR之后往往会有一些保留扇区。

FAT1FAT的含义是文件分配表,FAT32一般有两份FATFAT1是第一份,也是主FAT

FAT2FAT2FAT32的第二份文件分配表,也是FAT1的备份。

DATADATA也就是数据区,是FAT32文件系统的主要区域,其中包含目录区域。

保留区从第一扇区开始,保存了该逻辑盘每扇区字节数,每簇对应的扇区数等等重要参数和引导记录,之后还留有若干保留扇区。

文件分配表区共保存了两个相同的文件分配表,因为文件所占用的存储空间(簇链)及空闲空间的管理都是通过 FAT 实现的,FAT如此重要,保存两个以便第一个损坏时,还有第二个可用。文件系统对数据区的存储空间是按簇进行划分和管理的,簇是空间分配和回收的基本单位,即,一个文件总是占用若干个整簇,文件所使用的最后一簇剩余的空间就不再使用,而是浪费掉了。

根目录区(ROOT 区)是不固定区域、不固定大小的,可看作是数据区的一部分。一般情况下从第二簇开始使用,大小视需要增加。

2.1、WinHex工具磁盘分析Fat32文件系统

    2.1.1选择打开磁盘

                               

2.1.2选择磁盘

                               

                              

WinHex工具分析出Fat32文件系统中的各个分区信息。

三、分析FAT32文件系统的DBR

  FAT32文件系统的DBR5部分组成,分别为跳转指令,OEM代号,BPB,引导程序和结束标志。如下图是一个完整的FAT32文件系统的DBR

跳转指令:本身占2字节它将程序执行流程跳转到引导程序处。

OEM代号:这部分占8字节,其内容由创建该文件系统的OEM厂商具体安排。

BPB:FAT32BPBDBR的第12个字节开始,占用79字节,记录了有关该文件系统的重要信息,各参数解释如下表:

起始字节

定义

字节数

备注

0x0

跳转指令

3

0x3

文件系统标志和版本

8

有各种默认值:MSDOC5.0

0x0B

每个扇区字节数

2

有的可能是1024、2048、4096

0x0D

每簇扇区数

1

这个值不能为0,而且必须是2的整数次方,比如1、2、4、8、16、32、64、128.但是这个值不能使每个簇超过32KB字节

0x0E

保留扇区数

2

0x10

Fat表分数

2

0x11

Fat16中根目录的文件总数

2

0x13

FAT16扇区总数

2

0x15

哪种储存介质

1

0x16

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ProYuan28

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值