基于WindowsFAT32的数据恢复原理分析及算法研究.docx

基于WindowsFAT32的数据恢复原理分析及算法研究.docx

  1. 1、本文档共9页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

?

?

基于WindowsFAT32的数据恢复原理分析及算法研究

?

?

论文导读:本文首先就Windows下FAT32文件系统的结构做了介绍。本文分析了FAT32文件系统下基于数据簇连续分配情况和非连续分配情况的数据恢复原理。并提出了这两种情况下的数据恢复算法。根据B图和C图情况下的数据恢复原理。

关键词:数据恢复,数据恢复原理,数据恢复算法,簇分配,FAT32

?

1引言

“数据恢复”,顾名思义,就是在数据存储设备遭受用户误操作、黑客攻击、病毒侵袭、硬件故障、物理环境损害等事件之后,从存储介质中分析并提取出原数据的过程[1][2]。随着我国信息化步伐的加快和互联网的快速发展,计算机的应用渗入到了各行各业以及人们的日常生活中。越来越多的企业和个人都会将许多重要的数据存储到计算机系统中。而一旦我们的系统由于人为或其他原因出现差错从而导致数据的丢失,那么如何能够快速且准确的恢复出原数据将成为一个至关重要的问题。这就使得数据恢复技术不论对于个人、企业还是国家都显得日益重要起来。

本文首先就Windows下FAT32文件系统的结构做了介绍,并阐述了文件删除的原理。在此基础上,本文分析了FAT32文件系统下基于数据簇连续分配情况和非连续分配情况的数据恢复原理,并提出了这两种情况下的数据恢复算法。最后对这两种算法进行了分析和比较。

2FAT32文件系统

2.1FAT32文件系统总体结构

FAT32文件系统由引导扇区,文件分配表FAT,根目录,数据区和保留扇区组成。如图1所示。

?

引导扇区

保留扇区

文件分配表FAT#1

文件分配表FAT#2

根目录

?

?

文件数据区

?

?

未使用空间

图1FAT32文件系统总体结构

2.2引导扇区

引导扇区含有JMP指令、厂商信息、BPB参数块、FAT32区段和结束标志。其数据结构如表1[3]所示。

?

序号

偏移

说明

1

0H~02H

跳转指令

2

03H~0AH

厂商名和系统版本

3

0BH~0CH

每扇区字节数

4

0DH

每簇扇区数

5

0EH~0FH

保留扇区数

6

10H

FAT个数

7

……

?

?

8

1CH~1FH

隐藏扇区数,即引导扇区的逻辑扇区号

9

20H~23H

该分区所占扇区数,即分区总大小

10

24H~27H

每个FAT所占扇区数

11

……

?

?

12

2CH~2FH

根目录起始簇

13

……

?

?

14

1FE~1FFH

结束标志,55HAAH

表1引导扇区结构

如图1所示,根目录通常位于第二个FAT之后。由此,我们可以由表1引导扇区信息中的保留扇区数、FAT个数、每个FAT所占扇区数来定位到根目录的起始位置。即根目录起始位置=保留扇区数+FAT个数×每个FAT所占扇区数。这里的根目录起始位置是相对于引导扇区而言的。

2.3文件分配表FAT

文件分配表由FAT表项组成。在FAT32文件系统中,每个FAT表项占用32位。每个FAT表项都对应着一个簇号。而且,当FAT表项的值时表示对应的簇是空簇,未被分配使用,当值为0FFFFFFFH时表示对应的簇是某文件的最后一个数据簇。当值~0FFFFFEFH时表示该簇已分配使用,且该FAT表项值是对应文件的下一个数据簇的簇号。[3]

在FAT文件系统中,系统通过FAT链来读取和写入文件数据。文件系统在目录项中存放着文件数据的起始簇号,在FAT区中,该起始簇号对应的FAT项中记录着该文件占用的下一个簇的簇号,该簇号对应的FAT项中又记录着文件数据占用的下一个簇的簇号,一直到下一个簇号所对应的FAT表项值是结束标志0FFFFFFFH为止,这个FAT链才算结束。这样,系统在访问文件数据时,首先找到该文件的目录项,从中找出起始簇号,然后根据对应的FAT链就可以找出文件的所有数据簇。

簇号和FAT项的对应关系为:簇号乘以4,将乘积作为相对文件分配表起始位置的偏移(从0开始计算),就找到了该簇号对应的FAT项。[3]

2.4目录项

操作系统通过目录树结构来管理一个分区中的文件,根节点存放盘符,每一个叶节点存放一个文件,而中间节点则是文件夹。从根节点到叶节点的路径就形成了该文件的绝对路径。这种管理方法对应于磁盘上,就是文件系统创建根目录区,根目录区中的每一个目录项指示目录树中根节点下的一个文件或文件夹的各种属性和数据的存放位置。文件夹,又叫做子目录。它对应的目录项中所指向的数据起始簇中的内容不是数据而是该文件夹内的各个文件的目录项。同样,子目录下的目录项集合中还可以有子目录目录项,这样的子目录目录项所指向的数据起始簇内,同样存放着一个目录项集合。FAT32文件系统通过这种方式来管理和组织一个个的文件。

不管是根目录下的目录项还是子目录中的目录项,大小均为32字

文档评论(0)

189****9585 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档