一种同时恢复GPT分区表和NTFS_DBR的方法与流程

文档序号:13236365阅读:2312来源:国知局
本发明涉及计算机磁盘管理中的分区管理领域,特别涉及一种针对gpt分区表、ntfs_dbr和ntfs_dbr备份同时被破坏后,恢复gpt分区和ntfs_dbr的一种恢复方法。
背景技术
::新一代的磁盘分区技术“全局唯一标识分区表”gpt(globallyuniqueidentifierpartitiontable)的出现是为了替代mbr(masterbootrecord)分区形式,主要解决了mbr分区不支持容量大于2.2tb的分区问题。目前,windows8以后的操作系统使用了gpt磁盘分区格式,同时windows8不再支持mbr。如果不同分区之间误操作、误转换的结果将会导致硬盘中原有分区信息丢失、硬盘中的数据不能正常读取。在windows7和windows8用户数量庞大的今天,这种因gpt分区表问题导致硬盘中的数据无法读取和使用的问题较为突出。而ntfs作为windows系列操作系统的主要文件系统,目前广泛应用于微型计算机中,当gpt分区、ntfs_dbr和ntfs_dbr备份同时被破坏后,导致硬盘数据不能正常读取的现象时有发生。当gpt分区、ntfs_dbr和ntfs_dbr备份同时被破坏后,目前的数据恢复软件将不能重新组建。本发明实现了对整个gpt分区和ntfs_dbr的重组恢复,具有操作简单、恢复速度快、成功率高的特点,从而挽救了gpt分区中ntfs文件系统的全部数据。技术实现要素:1.目的:为了解决因gpt分区、ntfs_dbr和ntfs_dbr备份同时被破坏后,导致存储在磁盘上的ntfs文件系统中的数据丢失,给用户带来无法估量的损失;本发明公开了一种同时恢复gpt分区和ntfs_dbr的方法;2.方法:gpt分区和ntfs_dbr被破坏后,可以通过以下方法来恢复gpt分区和ntfs_dbr;(1)计算ntfs_dbr中bpb参数1)通过元文件$mft的特征值找到元文件$mft在整个硬盘中的位置;2)通过元文件$mft在整个硬盘中的位置获得元文件$mft在整个硬盘中的开始扇区号;3)通过元文件$mft的0号记录80h属性获得元文件$mft的开始簇号、元文件$mft所占簇数、ntfs文件系统分配给元文件$mft的空间;4)计算ntfs每个簇的扇区数:每个簇的扇区数=系统分配给元文件$mft的空间÷元文件$mft所占簇数÷5125)元文件$mft开始簇号:从元文件$mft的0号记录80h属性中获得6)元文件$mftmirr开始簇号:从元文件$mft的1号记录80h属性中获得7)计算ntfs_dbr中的总扇区数:从元文件$mft的8号记录80h属性中获得坏簇号;总扇区数=(坏簇号+1)×每个簇的扇区数-18)根据每个簇的扇区数获得元文件$mft每条记录大小描述在ntfs_dbr中的存储形式,见表1所示:表1每个簇的扇区数与$mft每条记录大小对应表。9)根据每个簇的扇区数获得每个索引节点大小描述在ntfs_dbr中的存储形式,见表2所示:表2每个簇的扇区数与每个索引节点大小关系对应表。(2)计算gpt分区容量gpt分区容量=(总扇区数+1)×512÷1024÷1024(mb)(3)计算ntfs_dbr在整个硬盘中的扇区号由于ntfs_dbr位于ntfs文件系统的0号扇区,根据元文件$mft开始扇区号、元文件$mft的开始簇号和每个簇的扇区数,可以计算出ntfs_dbr在整个硬盘中的扇区号;方法如下:ntfs_dbr在整个硬盘中的扇区号=元文件$mft开始扇区号-元文件$mft的开始簇号×每个簇的扇区数ntfs_dbr在整个硬盘中的扇区号为ntfs_dbr中bpb参数中的隐藏扇区数;综合(1)中的1)至9)可以得到ntfs_dbr中的bpb参数,即每个簇的扇区数、隐藏扇区数、元文件$mft开始簇号、元文件$mftmirr开始簇号、ntfs_dbr中的总扇区数、元文件$mft每条记录大小描述在ntfs_dbr中的存储形式、每个索引节点大小描述在ntfs_dbr中的存储形式。3.主要步骤:1)启动计算机管理中的磁盘管理功能,重建gpt分区,输入gpt分区容量,单位:mb,(注:不要格式化这个卷);2)将同一版本的ntfs_dbr复制到ntfs_dbr所在扇区号,并修改已经计算好的正确的ntfs_dbr中每个簇的扇区数、隐藏扇区数、元文件$mft开始簇号等这7个bpb参数。附图说明图1为元文件$mft的0号记录80h属性;图2为元文件$mft的1号记录80号属性;图3为元文件$mft的8号记录80h属性;图4为重建gpt分区时输入卷的大小(单位:mb);图5为重建gpt分区时不格式化卷;图6为修改计算好的ntfs_dbr中的7个bpb参数;图7为流程图。具体实施方式这里以实例的方式说明具体实施方式:某硬盘容量为10gb,被用户转换为gpt盘,并且划分建立了1个分区,分区以ntfs文件系统进行格式化,由于其他原因导致gpt分区表、ntfs_dbr、ntfs_dbr备份已被破坏,要恢复分区中的全部数据;恢复步骤如下:1)将该硬盘作为辅盘,查找元文件$mft的0号记录在整个硬盘中的扇区号;在6359040~6359041号扇区找到;元文件$mft的0号记录80h属性如附图1所示;2)从附图1可知,ntfs文件系统分配给元文件$mft的空间为20971520字节(注:在元文件$mft的0号记录中的存储形式为“0000400100000000”);从元文件$mft的0号记录80h属性的数据运行列表(注:数据运行列表为“32001400000c00b4”)可知,元文件$mft的开始簇号为786432(注:在数据运行列表中的存储形式为“00000c”),而元文件$mft所占簇数为5120(注:在数据运行列表中的存储形式为“0014”);每个簇的扇区数=元文件$mft的0号记录系统分配空间÷元文件$mft所占簇数÷512=20971520÷1520÷512=83)将光标移动到6359042~6359043号扇区,也就是元文件$mft的1号记录,描述内容为元文件$mftmirr的记录内容,元文件$mft的1号记录80h属性如图2所示;从元文件$mft的1号记录80h属性的数据运行列表(注:数据运行列表为“1101020000000000”)可知,元文件$mftmirr的开始簇号为2(注:在数据运行列表中的存储形式为“02”);4)将光标移动到元文件$mft的8号记录(注:整个硬盘的6359056~6359057号扇区),即描述元文件$badclus的记录,元文件$mft的8号记录80h属性如附图3所示;从元文件$mft的8号记录80h属性的数据运行列表(注:数据运行列表为“03ffd72700000000”)可知,元文件ntfs文件系统的坏簇号为2611199(注:在数据运行列表中的存储形式为“ffd727”);所以,ntfs文件系统的簇号范围为0~2611199,共计2611200个簇;总扇区数=(坏簇号+1)×每个簇的扇区数–1=(2611199+1)×8-1=20889599(即十六进制数13ebfff)总扇区数在ntfs_dbr中的存储形式为“ffbf3e0100000000”5)由于每个簇的扇区数为8,从表1可知,元文件$mft每条记录大小为0.25个簇、描述为1024字节,而在ntfs_dbr中的存储形式为“f6”;从表2可知,索引节点大小为1个簇、描述为1个簇,而在ntfs_dbr中的存储形式为“01”;6)由于元文件$mft在整个硬盘中的开始扇区号为6359040,而在ntfs文件系统中的开始簇号为786432,每簇的扇区数为8,所以元文件$boot在整个硬盘中的开始扇区号为67584,即ntfs_dbr在整个硬盘中的扇区号,该值也就是ntfs_dbr中的隐藏扇区数;(注:元$boot位于ntfs文件系统的0号扇区,而ntfs_dbr为元文件$boot最重要的组成部分)7)综合2)至6)步骤,已经计算好的ntfs_dbr中的bpb参数如表3所示。表3ntfs_dbr的bpb部分参数值。8)计算gpt分区容量gpt分区容量=(总扇区数+1)×512÷1024÷1024(mb)=(20889599+1)×512÷1024÷1024=10200mb9)重建gpt分区,在“指定卷的大小”窗口中,输入第1个卷的大小10200mb,如附图4所示;10)在“格式化分区”窗口中,选择“不要格式化这个卷(d)”选项,如附图5所示;11)重建gpt分区后,逻辑卷对应的文件系统为raw;12)将同一版本的ntfs_dbr复制到整个硬盘67584号扇区,按表3中ntfs_dbr的部分值修改每个簇的扇区数、隐藏扇区数、元文件$mft开始簇号等这7个bpb参数,如附图6所示;13)使用计算机管理中的磁盘管理附加该物理硬盘后,可以看到该逻辑卷的文件系统为ntfs;在资源管理器中也可以看到该逻辑卷中存储全部的文件夹和文件;14)一种恢复同时gpt分区和ntfs_dbr方法流程图如附图7所示。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1