硬盘FAT32文件系统分区快速搜索重组与恢复方法与流程

文档序号:18360067发布日期:2019-08-06 23:42阅读:847来源:国知局
硬盘FAT32文件系统分区快速搜索重组与恢复方法与流程

本发明涉及数据恢复技术领域,尤其是涉及一种fat32分区损坏后分区表快速搜索重组与恢复方法。



背景技术:

随着计算机技术的普及,人们的办公和生活均离不开计算机,而硬盘作为计算机的存储设备,往往保存了大量的用户资料,一旦硬盘发生故障,如硬盘破损、病毒侵袭,或者人为误操作等,将会造成硬盘数据无法读取以及硬盘数据丢失的情况,给用户造成不可挽回的损失,因此,硬盘数据恢复显得尤为重要。现有的硬盘分区重组方法,所谓软件重组,软件重组易出错,通用性不高,成功率低,二次破坏性大。



技术实现要素:

本发明的目的是针对以fat32文件系统分区丢失而提供的一种快速搜索重建分区和恢复的方法,记录分区标志位信息,回填主分区,来修复受损的数据,实现数据的恢复。

硬盘fat32文件系统分区快速搜索重组与恢复方法,其主要特征在于包括如下步骤:

1.搜索dbr所在扇区,即从“0”号扇区开始,向下搜索四个字节“eb58904d”特征值的扇区,满足该特征的扇区为分区的起始位置;

2.记录当前扇区的位置,并向下跳转6个扇区至dbr备份扇区,验证搜索到的位置是否为dbr,而不是备份dbr;

3.计算当前分区的大小,即查看0x20h-0x23h处四个字节的十六进制数,并将所述四个十六进制数按照低位在前,高位在后的顺序转换成十进制数,这个十进制数就是本分区的总大小;

4.计算当前分区的范围区间,即用dbr所在位置加所述(3)中分区大小,即可算出分区所在的范围区间;

5.因为mbr分区结构是按照顺序排列的,所以跳出(4)所述的分区范围区间,即为下一个分区起始位置,先去判断下一个分区是主分区还是扩展分区。若是主分区,则找到当前分区的dbr位置,并根据(3)(4)所述跳转出分区。

6.若跳转后为扩展分区(ebr),则记录扩展分区位置,并从扩展分区起始位置继续按照所述(1)的步骤查找“eb58904d”特征值的扇区,找到后根据所述(2)验证dbr的真是性;

7.记录上述过程中所有的数据,并跳转至“0”扇区主分区(mbr)位置,重组主分区表。

进一步方案,所述判断分区起始位置的方法如下:即从“0”号扇区开始,向下搜索四个字节“eb58904d”特征值的扇区,满足该特征的扇区为分区的起始位置;

进一步方案,其判别是否为扩展分区的方法为:跳转至上一个分区末尾,即下一个分区开始的地方,首先查看0x00h-0x03h处是否为“eb58904d”。如果不是这个标志,则为扩展分区。

进一步方案,所述主分区重组方法如下:将主分区dbr扇区地址和第一次此搜索到扩展分区表地址从小到大排序,然后将地址写进主分区表的主分区表项和扩展分区表项的位置,完成分区表重组。

本发明实施例带来了以下有益效果:

本发明实施例提供了硬盘fat32文件系统分区快速搜索重组与恢复方法,有助于提高硬盘数据恢复效率,进而提高用户的体验度。

本发明实现受损或已破坏硬盘分区表的高效恢复,解决了现有硬盘分区恢复技术方法中存在的问题,即不但实现了恢复成功率高,而且不受硬盘容量大小的影响,具有操作简单、恢复所需时间快的优点。

附图说明

图1为本发明的分区的链式结构

具体实施方法:

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合附图对本发明的技术方案进行清楚、完整地描述,基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

为便于对本实施例进行理解,首先对本发明实施例所公开的硬盘fat32文件系统分区快速搜索重组与恢复方法进行详细介绍。

实施例一:

本发明实施例提供了硬盘fat32文件系统分区快速搜索重组与恢复方法,

如图所示,一种硬盘数据恢复方法的流程图,该方法包括以下步骤:

(1)硬盘分区链式结构

硬盘的mbr扇区中0x01beh-0x01fdn就是分区表,共64字节,每16个字节为一个分区表项。在windows系统中分区可分为主分区和扩展分区两类,一个主分区只能占用一个分区表项,扩展分区表项将指向扩展分区表的实际地址,扩展分区表包含两个分区表项,第一个分区表项指向本扩展分区的逻辑分区起始地址,第二个分区表项指向下一个扩展分区表的实际位置,详细含义如表1所示:

表1

下面对分区表中几个重要参数进行详细的解释:

1、活动分区标志对于windows操作系统而言只能是80或者00,标记80分区为活动分区,00分区为非活动分区。

2、分区类型指示符如果为0c则为fat32分区,如果是05或者0f则是扩展分区。

3、本分区之前的扇区数是指从mbr或者扩展分区表开始到本分区dbr之前的扇区数。

4、本分区总扇区数是指从本分区起始dbr开始到本分区结束之间的扇区数。

5、扇区数占用四个字节,显示方式是低位在前高位在后,在了解分区表及分区表项各个参数的含义后,下一步分析分区表的链式结构。图1所示的就是分区的链式结构。可以看到mbr中的分区表第一个表项主分区1直接指向了逻辑分区1的实际起始地址,第二个表项主分区2指向了逻辑分区2的实际起始地址,第三个表项扩展分区则直接指向了扩展分区表1的实际地址,第四个表项为空。扩展分区表1的分区表项1指向了逻辑分区3的相对起始地址,逻辑分区3之前的扇区数就是扩展分区表1的地址到逻辑分区3的dbr扇区地址之间的扇区总数,扩展分区表1的即分区表项2指向了下一个扩展分区表的相对地址。扩展分区表2的即分区表项1指向了逻辑分区4的相对起始地址,逻辑分区4之前的扇区数就是扩展分区表2的扇区地址到逻辑分区4的dbr扇区地址之间的扇区总数,扩展分区表2即分区表项2指向了下一个扩展分区表的相对地址。以此类推,直到最后一个扩展分区表n中只有一个分区表项为止。

dbr数据结构中总扇区数分析

(1)、fat32分区的第一个扇区是dbr扇区,dbr扇区中的信息由高级格式化命令创建,其功能是加载引导文件系统使分区能够被访问。一个完整的dbr由跳转指令、oem版本号、bpb、引导程序、结束标志五部分组成。如果要确定一个扇区是否为fat32分区的dbr扇区,只需要看这个扇区的前4个字节是否为“eb58904d”,扇区最后的两个字节是否为“55aa”,如果两个条件都满足则表示当前扇区是fat32分区的dbr扇区。一个正常的fat32分区有一个dbr扇区,还有一个dbr备份扇区,dbr扇区是dbr所在分区的第一个扇区,dbr备份扇区在dbr所在位置后的6个扇区。

(2)、dbr扇区的bpb参数块中记录了fat32分区相关的参数信息,例如本分区的每扇区字节数、每簇扇区数、fat表起始位置、fat表起始大小、扇区总数、隐藏扇区数,对于本文来说主要使用到的参数是“本分区总扇区数”。“本分区总扇区数”记录在dbr扇区的0x20h~0x23h,总共4个字节,按照低位在前高位在后的顺序记录。

具体操作方法如下:

(1)首先搜索dbr所在扇区,即从硬盘的第一个扇区,向下搜索一个前4个字节为“eb58904d”特征值的扇区。满足该特征值的扇区为硬盘的dbr扇区。

(2)记录该dbr扇区的地址。

(3)接着,读取分区大小,即在搜索到的dbr扇区内查看偏移位置为0x20h-0x23h的4个字节的十六进制数,将其按照低位在前高位在后的顺序转换成十进制数,这个十进制的数字就是本分区总扇区数。

(4)然后,计算该分区结束位置,即用dbr扇区位置加上本分区总扇区数得到本分区的结束位置,记录下分区结束位置的扇区地址。

(5)接着,结束位置继续向下搜索55aa,并判断该扇区是否为扩展分区表或者为dbr,若为dbr则为主分区,否则为扩展分区表。

(6)若为扩展分区表,则继续往下搜索55aa,判断搜索到的扇区开始标志是否为‘eb58904d,’若是,则为扩展分区的逻辑分区起始位置,记录dbr所在位置,记录在dbr扇区的0x20h~0x23h,总共4个字节,按照低位在前高位在后的顺序记录。并根据dbr所给的信息,跳转出该分区,并重复所述(5)(6)操作,直至最后一个扇区。

(7)数据收集完后,则进行分区表链重组。即将主分区的dbr扇区地址值和第一次搜索到的扩展分区表(即正向的第一个扩展分区表)地址值分别写入到主分区表的主分区表项和扩展分区表项的“本分区之前的扇区数”参数中。整个主分区表重组过程就完成。操作系统能够完全识别该硬盘上的各个分区,并可正常访问该分区及分区上的数据。

本发明是通过基于dbr的fat32分区表链逆向搜索重组算法还原被破坏的分区表,从而实现硬盘的数据恢复:

1.该方法包含fat32文件系统分区扫描和分区表重组两个过程。其中fat32文件系统分区扫描过程包括以下步骤:(1)、(2)、(3)、(4)、(5)、(6)。分区表链重组过程包括以下步骤:(7)。

2.所述步骤(1)、(2)、(3)、(4)、(5)、(6)中fat32文件系统分区的dbr地址、分区大小和扩展分区表地址等信息通过搜索得到。

3.所述步骤(1)中nfat32文件系统分区的dbr地址信息通过对硬盘从第一个扇区开始搜索,并比较扇区的前4个字节是否为“eb58904d”特征值来判断和定位dbr扇区。

4.所述步骤(4)中fat32文件系统分区的dbr地址信息通过搜索技术和计算本分区的dbr扇区地址加本分区总扇区数获得。其中本分区总扇区数的值是来自dbr扇区中的0x20h~0x23h位置的值。

5.所述步骤(5)中继续搜索55aa标志是为了更快速找到下一个信息区,并判断是否为主分区。如果只是“55aa”特征值,则为扩展分区,若为“55aa”并且扇区起始位置四个字节为“eb58904d”说明该扇区属于主分区。

6.所述步骤(6)则为判断分区类型为扩展分区后,通过步骤(5)(6)来查找相应信息,直至最后一个扇区。

7.所述步骤(7)则为收集完所有数据后进行分区表重组。

本发明实现受损或已破坏硬盘分区表的高效恢复,解决了现有硬盘分区恢复技术方法中存在的问题,即不但实现了恢复成功率高,而且不受硬盘容量大小的影响,具有操作简单、恢复所需时间快的优点。

以上实施例,仅为本发明的具体实施方式,用以说明本发明的技术方案,而非对其限制,本发明的保护范围并不局限于此,尽管参照前述实施例对本发明进行了详细的说明,本领域技术人员应当理解:任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的精神和范围,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1