FAT32文件系统介绍

FAT32结构:

FAT32与FAT16区别在于FAT32没有FDT根目录,根目录直接包含在DATA区中,FAT表中每簇对应的表项也是四个字节

MBR

DBR及其保留扇区

(DBR是DOS引导目录,也称为操作系统引导目录)

FAT1

FAT2

DATA

12.FAT32DBR分析

(1)跳转指令

跳转指令占用2字节,它将程序执行流程跳转到引导程序处

注意:跳转指令的第二个字节,也就是58,包括90空指令,OEM代号以及BPB参数

剩下的就是引导程序,结束标志

***:DBR有一个备份,在六号扇区

(2)OEM代号

OEM代号占8字节,由厂商具体安排

(3)BPB参数

字节偏移

字段长度

字段名

字节偏移

字段长度

字段名

0X0B

2

每扇区字节数

0X28

2

标记

0X0D

1

每簇扇区数

0X2A

2

版本

0X0E

2

保留扇区数

0X2C

4

根目录首簇号

0X10

1

FAT表个数

0X30

2

文件系统信息扇区号

0X11

2

未用

0X32

2

DBR备份扇区数

0X13

2

未用

0X34

12

保留

0X15

1

介质描述符

0X40

1

BIOS驱动器号

0X16

2

未用

0X41

1

未用

0X18

2

每磁道扇区数

0X42

1

扩展引导标记

0X1A

2

磁头数

0X43

4

卷序列号

0X1C

4

隐藏扇区数

0X47

11

卷标

0X20

4

扇区总数

0X52

8

文件系统类型

0X24

4

每FAT扇区数

  1. 引导程序

FAT32的DBR引导程序占用420字节

  1. 结束标志

DBR的结束标志与MBR的结束标志相同,都为“55 AA”

FAT即文件分配表,对于FAT文件系统来讲是至关重要的组成部分。

  1. FAT文件系统有两份FAT,FAT2为FAT1的备份
  2. FAT表由FAT表项构成,FAT表项简称为FAT项。FAT32的每个FAT项对应4个字节
  3. 每个FAT项都有固定的编号,编号从0开始
  4. FAT表前两个FAT项有专门用途,0号FAT项通常用来存放分区所在介质类型,例如硬盘的介质类型为“F8”,1号FAT项则用来存储文件系统的肮脏标志
  5. 分区的数据区中每一个簇都会映射到FAT表中的唯一一个FAT项。因为0号FAT项和1号FAT项有特殊用途,所以数据区的第一个簇也就是编号为2号簇,这也就是没有0号簇和1号簇的原因

13.FAT32提取文件

(1)在MBR中查看隐藏扇区数,跳转到DBR

(2)在DBR中查看重要信息,例如,保留扇区数8282

FAT表大小:16339 每簇扇区数:8

(3)由DBR跳转保留扇区数到FAT1,由FAT1跳转FAT表大小到FAT2,FAT2跳转FAT表大小到DATA

(4)DATA表中分析文件起始簇号,文件大小

1.jpg:起始簇号4 文件大小845941字节

Jpg文件夹:起始簇号211 文件夹没有文件大小,跳转到211簇的话就是一个新的目录了,在这个目录下才可以找到文件夹目录下的文件簇号和大小

123.txt:起始簇号3 文件大小11字节

  1. 计算文件所在簇

(文件起始簇号-2)*每簇扇区数=跳转扇区数

14,FAT32文件删除与误格式化现象

删除前:

FAT表:

根目录(DATA):

文件目录:

删除后:

FAT表:

根目录(DATA):

文件目录:

现象:

FAT表数据区清空,DATA区文件夹首字节变为E5,代表文件夹被删除,文件目录区没有改变

格式化前:

FAT表:

DATA区:

文件:

格式化后:

FAT表:

DATA区:

文件:

现象:

FAT表数据区清空,DATA表清空,文件内容依然存在

误格式化与删除类似,暂时帮你存储已经删除的内容,当你存放数据后,可能就会被覆盖,导致无法修复

15.FAT32DBR修复

方法一:从DBR跳转六个扇区中有备份DBR,可直接进行复制

方法二:和FAT16类似

修改FAT32DBR时需要修改的数据有隐藏扇区数、分区总大小、保留扇区数、FAT表大小、每簇扇区数

  • 新建一个FAT32文件系统将其复制粘贴到被破坏FAT32的DBR处
  • 计算保留扇区数

从DBR处向下搜索“F8FFFF0F”,到达FAT1

FAT1所在的扇区号-DBR所在扇区号=保留扇区数大小

  • 计算FAT表大小

从FAT1向下搜索“F8FFFF0F”,到达FAT2

FAT2所在的扇区号-FAT1所在的扇区号=FAT表大小

  • 查看隐藏扇区数大小与分区大小

从MBR的分区表查看分区的隐藏扇区数大小和分区大小

  • 计算每簇扇区数

数据区总扇区数/数据区总簇数=每簇扇区数

数据区总扇区数=分区大小-2*FAT表大小-保留扇区数大小

数据区总簇数=512*FAT表大小/4

六、将计算的重要数据填入被破坏FAT32文件系统DBR中对应的位置

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值