一种Windows系统磁盘分区的修复方法技术方案

技术编号:8078789 阅读:152 留言:0更新日期:2012-12-13 21:30
本发明专利技术提供一种Windows磁盘分区修复方法,该方法依次向后扫描磁盘的未扫描扇区,查找其中的MBR、EBR或DBR信息;若当前扫描到的是DBR则判断其是否是不正确MBR/EBR匹配的DBR?是则丢弃;否则判断该DBR是否是备份DBR,是则丢弃,否则判断该DBR所记录的该分区信息是否正确?是则根据该DBR重构与其匹配的MBR/EBR并保存该正确的分区信息;若扫描到的是MBR/EBR,则首先构成分区链,如果该分区链正确则保存该分区链信息,否则判断并保存该MBR/EBR记录的正确的本分区信息;最后在所有扇区扫描完后将已保存的所有正确的分区信息写入磁盘。本发明专利技术能快速准确修复分区信息被严重破坏的磁盘。

【技术实现步骤摘要】

本专利技术涉及计算机安全领域,尤其涉及。
技术介绍
随着信息时代的高速发展,政府、企业以及个人越来越多地关注信息的安全。信息安全的核心是数据的安全,而病毒感染、误操作、意外事件等众多因素都在威胁着数据的安全,一旦重要数据被破坏和丢失,其损失往往相当严重,甚至难以弥补。然而,在实际应用中,又很难避免出现数据损坏与丢失的现象。因此,对那些遭受破坏的重要数据进行有效地恢复是相当必要的。 目前,对于数据恢复的软件及其方法有很多,其中,分区修复类软件是一种间接地恢复数据方式,即通过修复分区来找回丢失的数据。这种分区修复方式的优点是恢复速度极快,而且一旦分区修复成功其中丢失的文件也就都能随之而恢复。但是,当前的分区修复 软件针对误GHOST、误格式化等造成的分区丢失,只能扫描出部分分区信息,甚至有些扫描出的信息是错误的,当利用这些错误的信息来恢复分区信息,将导致对磁盘的二次损坏;而且传统的分区修复软件无法修复对于误GHOST后再次分区或者其他方式的再次破坏的磁盘。因此,目前急需一种在分区信息被严重破坏的情况下仍能修复磁盘分区的方法。
技术实现思路
本专利技术提供,用于解决现有的分区修复技术无法修复Windows系统广泛使用的FAT32和NTFS文件系统的分区信息被严重破坏的磁盘分区的问题,本专利技术提供的磁盘分区的修复方法能够对FAT32/NTFS分区信息被严重破坏的磁盘进行准确的修复,修复速度快,适用性广。本专利技术提供的一种Windows磁盘分区修复方法,该方法包括以下步骤SI :判断是否有未扫描的磁盘扇区?若否,则执行S4 ;若是则依次向后扫描磁盘的未扫描扇区,寻找主引导记录MBR、扩展分区记录EBR或操作系统引导记录DBR,若当前扫描到的是DBR,则执行S2,若当前扫描到的是MBR或EBR,则执行S3 ;S2 :判断当前DBR是否是不正确的MBR/EBR所匹配的DBR 若是则丢弃当前DBR ;否则接着判断当前DBR是否是备份DBR,如果是则丢弃,否则根据当前DBR中所记录的该分区的大小、分区类型等信息判断该分区描述信息是否正确?是则根据当前DBR重构与其匹配的MBR/EBR并保存该正确的分区信息,返回执行SI,否则直接返回执行SI ;S3 :根据MBR/EBR中的分区表信息构成分区链,如果构成的分区链正确则保存该分区链信息,否则判断当前MBR/EBR中的第一条分区表项所记录的该分区描述信息是否正确,是则保存该正确的分区信息并返回执行SI,否则直接返回执行SI ;S4 :将已保存的所有正确的分区信息写入磁盘。优选地,上述Windows磁盘分区修复方法中,所述SI之前还包括步骤打开磁盘,获取所述磁盘的扇区总数SUM,并令前一分区的结束扇区号为O ;所述SI具体包括以下步骤步骤Al :判断当前已扫描的磁盘扇区数N是否大于或等于所述SUM 是则跳转到S4;否则跳转到步骤A2 ;其中N的初始值设为O ;步骤A2 :令OFFSET = 0FFSET+1,继续执行步骤A5 ;其中,OFFSET是当前扫描的扇区距离与其最近的前一个错误的MBR/EBR的扇区数,所述OFFSET的初始值为O ;步骤A3 :读取所 述磁盘的第N个扇区最后两字节的信息,并判断其是否为“55AA”?是则执行步骤A5 ;否则执行步骤A4 ;步骤A4 :令N = N+1,并返回执行步骤Al ;步骤A5 :判断所述磁盘的第N个扇区是否是MBR或EBR 是则执行S3,否则执行步骤A6 ;步骤A6 :判断所述磁盘的第N个扇区是否是DBR 是则继续执行S2,否则跳转到步骤A4。优选地,上述Windows磁盘分区修复方法中,所述S2具体包括步骤BI :判断当前OFFSET是否小于70,是则执行步骤B2,否则执行步骤B3 ;步骤B2 :读取不正确的MBR/EBR记录,判断是否有不正确的MBR/EBR与当前DBR匹配,如果有不正确的MBR/EBR与当前DBR匹配则跳转到步骤A4 ;否则跳转到步骤B4 ;步骤B3 :判断当前DBR是否是NTFS分区的DBR,是则执行步骤B5,否则执行步骤B4 ;步骤B4 :判断当前DBR中“该分区的扇区总数”字段值是否正确,是则跳转到步骤B6;否则跳转到步骤A4;步骤B5 :读取不正确的MBR/EBR记录,判断当前DBR是否能作为NTFS分区的备份DBR与不正确的MBR/EBR匹配,是则执行步骤A4 ;否则执行步骤B4 ;步骤B6 :根据当前DBR重构与其匹配的MBR/EBR,继续执行步骤B7 ;步骤B7 :判断与当前DBR匹配的MBR/EBR是否重构成功?若是则将重构成功的MBR/EBR所记录的分区信息视作正确的分区信息,并跳转到步骤B8 ;否则跳转到步骤A4 ;步骤B8 :保存该正确的分区信息,并继续执行步骤B9 ;步骤B9 :令N = N+该正确的分区信息中记录的该分区的扇区总数+1,继续执行步骤 BlO ;步骤BlO :记录该正确的分区信息所对应的分区的结束扇区号,跳转到步骤Al。优选地,上述Windows磁盘分区修复方法中,所述步骤B2的详细判断方法为步骤B201 :输入当前N和前一个分区的结束扇区号;步骤B202 :设置备份DBR的标记Flag为flase,并计算与当前DBR匹配的MBR/EBR所在扇区号SSN SSN = N-当前DBR中隐藏扇区数字段的值;步骤B203 :判断SSN是否等于O 是则跳转到步骤B204,否则跳转到步骤B207 ;步骤B204 :判断是否有不正确的MBR记录?若是,则跳转到步骤B205 ;若否,则跳转到步骤B215 ;步骤B205 :读取所述不正确的MBR中的第一条分区表项的“本分区之前使用的扇区数”字段值,并判断是否等于N 是则跳转到步骤B206,否则跳转到步骤B215 ;步骤B206 :判断所述不正确的MBR中的第一条分区表项中和当前DBR中描述的本分区类型和扇区总数是否相同?是则跳转到步骤B214,否则跳转到步骤B215 ;步骤B207 :判断SSN是否小于或等于前一个分区的结束扇区号?是则跳转到步骤B214 ;否则执行步骤B208 ;步骤B208 :查询不正确的EBR记录,判断是否有编号为SSN的不正确的EBR,有则执行步骤B209 ;否则执行步骤B210 ;步骤B209 :判断当前查询到的不正确的EBR和当前DBR中描述的分区类型是否相同?是则跳转到步骤B213,否则跳转到步骤B211 ;步骤B210 :判断所述备份DBR的标记Flag是否为True 是则跳转到步骤B215 ;否则执行步骤B211 ;步骤B211 :判断当前DBR是否是FAT32分区的DBR 是则执行步骤B212 ;否则跳 转到步骤B215 ;步骤B212 =^SSN = N-当前DBR中隐藏扇区数字段的值-当前DBR中备份扇区号,令备份DBR的标记Flag为True,并返回执行步骤B207 ;步骤B213 :判断所述当前查询到的不正确的EBR中记录的自身所处分区的扇区总数和当前DBR中记录的自身所处分区的扇区总数是否相同,是则跳转到步骤B214,否则跳转到步骤B211 ;步骤B214 :返回“有不正确的MBR/EBR与当前DBR匹配”的判断结果,并跳转执行步骤A4 ;步骤B215 :返回“没有不正确的本文档来自技高网...

【技术保护点】
一种Windows磁盘分区修复方法,其特征在于,该方法包括以下步骤:S1:判断是否有未扫描的磁盘扇区?若否,则执行S4;若是则依次向后扫描磁盘的未扫描扇区,寻找主引导记录MBR、扩展分区记录EBR或操作系统引导记录DBR,若当前扫描到的是DBR,则执行S2,若当前扫描到的是MBR或EBR,则执行S3;S2:判断当前DBR是否是不正确的MBR/EBR所匹配的DBR?若是则丢弃当前DBR;否则接着判断当前DBR是否是备份DBR,如果是则丢弃,否则根据当前DBR中所记录的该分区的大小、分区类型等信息判断该分区描述信息是否正确?是则根据当前DBR重构与其匹配的MBR/EBR并保存该正确的分区信息,返回执行S1,否则直接返回执行S1;S3:根据MBR/EBR中的分区表信息构成分区链,如果构成的分区链正确则保存该分区链信息,否则判断当前MBR/EBR中的第一条分区表项所记录的该分区描述信息是否正确,是则保存该正确的分区信息并返回执行S1,否则直接返回执行S1;S4:将已保存的所有正确的分区信息写入磁盘。

【技术特征摘要】

【专利技术属性】
技术研发人员:王大彬徐吉兵
申请(专利权)人:厦门市美亚柏科信息股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1