FAT32文件系统研究1-FAT文件系统结构

在FAT32之前还有FAT12,FAT16等文件系统,他们都是位数不一样,但是已经很少用了,所以这里写的都是FAT32系统。

1.FAT32优缺点

优点:
1.简单
2.读取快速(这里的快速是有条件的,指文件数量不多,磁盘不大的情况下。)

缺点:
⒈太浪费磁盘空间
⒉磁盘利用效率低
⒊文件存储受限制
⒋不支持长文件名,只能支持8个字符。
⒌安全性较差

**

2.文件系统结构

FAT32文件系统由DBR及保留扇区,FAT1,FAT2,DATA区四个部分组成,结构如图在这里插入图片描述
DBR:DOS Boot Record,含义是DOS结构引导记录,也称为操作系统引导记录。
保留扇区:就是保留起来,不适用的扇区。
DATA:数据区,是FAT32文件系统的主要区域,其中也包含目录区。

3.FAT32文件系统的DBR分析

如下图所示
在这里插入图片描述
1:跳转指令
跳转指令本身占用2字节,它将程序执行流程跳转到引导程序处。例如,当前DBR中的“EB 58”,就是代表汇编语言中的“JMP 58”。需要注意该指令本身占用2个字节,计算跳转目标地址时该指令的下一个字节为基准,所以实际上执行的下一条指令应该位于 5A。紧接着跳转是一条空的指令NOP(90H)

2:OEM代号
占用8个字节,这个说明了微软不同的操作系统版本。修改这个值不影响文件系统的使用。

3:BPB(BIOSParameter Block,BIOS参数块)
BPB从DBR的第12个字节开始(也就是偏移11开始),占用79个字节,记录了有关该文件系统的重要信息,具体信息在下面详细展开

4:引导程序
Fat32的DBR引导程序占用420个字节,在98 之前的系统之下,这段代码负责完成DOS三个系统文件的装入; 2000之后的系统中,其负责完成将系统文件NTLDR装入。对于一个没有操作系统的分区来讲,这段代码是没有作用的。

5:结束标志
结束标记55 AA,这个也是一个重要的标记。

实例分析:
在这里插入图片描述
如下是我的U盘的数据截图,在分区的开头的数据,

如图EB 58 90.其中EB是跳转指令的特殊标记。58是跳转到的位置。就是代表汇编语言中的“JMP 58”,基地址为90

OEM代码长度为8字节,如下图,看右边的ASCII解析,为MSDOS5.0.在这里插入图片描述

BPB详细参数

字节偏移字段长度(字节)字段名与定义
0X0B2每扇区字节数
0X0D1每簇扇区数
0X0E2DOS保留扇区数
0X101FAT个数
0X112未用
0X132未用
0X151介质描述符
0X162未用
0X182每磁道扇区数
0X1A2磁头数
0X1C4隐藏扇区数
0X204该分区的扇区总数
0X244每FAT扇区数
0X282标记
0X2A2版本
0X2C4根目录首族号
0X302文件系统信息扇区号
0X322DBR备份扇区扇区号
0X3412保留
0X401BIOS驱动器号
0X411未用
0X421扩展引导标记
0X434卷序序列号
0X4711卷标
0X528文件系统类型

(1)每扇区字节数
每扇区字节数记录每个逻辑扇区的大小,其常见的值为512,但是并不是固定的值。该值可以由程序定义,合法值包括512,1024,2048,4096。但是我看到这里的信息字段是00 02,为什么是2的?我这里不太明白,可能是程序中512字节对应的编号是2
(2)每簇扇区数
每簇扇区数记录着文件系统的簇大小,即由多少个扇区组成一个簇。
簇是FAT12,FAT16及FAT32文件系统下数据的最小存储单元,一个簇由一组连续的扇区组成,簇所含的扇区数必须是2的整数次幂,如1,2,4,8,16,32,64,128.
在Windows 2000以前族最大值为64扇区,之后最大值为128.
在FAT文件系统中,所有的族是从2开始编号,每个簇都有一个自己的地址编号,但是所有的族都位于数据区,在数据区之前没有族。
(3)DOS保留扇区数
DBR及保留扇区数是DBR到FAT1表之间的扇区数,或者说是FAT1的开始扇区号
对于FAT32文件系统来说,该值的范围是32扇区到38扇区之间。
(4)FAT个数,一般为2.
(5)未用
(6)未用
(7)介质描述符
介质描述符是描述磁盘介质的参数,根据磁盘性质的不同,取不同的值
(8)未用
(9)每磁道扇区数 一般其值为63.
(10)磁头数 其值一般为255.
(11)隐藏扇区数
是MBR到DBR之间的扇区数,对于扩展分区中逻辑驱动顺来说,是其EBR到DBR
(12)分区总扇区数
扇区总数是指分区的总扇区数,也就是FAT32分区的大小。
(13) 每FAT扇区数

(14)标志,FAT2是否可用,2为可用。
(15)版本 通常为0.
(16)根目录首簇号
.分区在格式化的时候,格式化程序会在数据区中指派一个簇作为FAT32的根目录的开始,并把该簇号记录在BPB中。通常都是把数据区中的第一人簇分配给根目录使用,也就是2号簇。
(17)文件系统信息扇区号
FAT32文件系统在DBR的保留扇区中安排了一个文件系统信息扇区,用以记录数据区中空闲簇的数量及下一个可用的空闲簇的簇号,该扇区一般在分区的1号扇区,也就是紧跟在DBR之后的一个扇区。
(18)DBR备份扇区号
FAT32文件系统在DBR的保留扇区中安排了一个DBR的备份,一般在6号扇区,也就是分区的第7个扇区,该备份扇区与原DBR扇区的内容完全一样,如果原DBR遭到破坏,可以用备份扇区号修复。
(19)未用
(20)BIOS驱动器号
这是BIOS的INT 13H所描述的设备号码,一般把硬盘定义为8xh.
(21)未用
(22)扩展引导标记
用来确认后面的三个参数是否有效,一般值为29H
(23)卷序列号
(24)卷标
不在这里进行记录,放到目录项中来管理
(25)文件系统类型
使用ASCII码记录当前分区的文件系统类型

引导程序截图
在这里插入图片描述

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值