GPT分区结构完整恢复实例

By | 2019年11月13日

GPT 的出现是为了替代旧式的 MBR(Master Boot Record),主要解决了 MBR 分区表不支持容量大于2.2TB的分区问题。虽然微软公司大力推行windows10操作系统,并宣布对win7系统不再更新,但win7用户仍是一个很庞大的群体。计算机如果使用 Windows 7 就必须采用 MBR 分区格式,这样不同分区表 误操作、误转换的结果使硬盘中原有的磁盘分区表丢 失,磁盘中的数据不能正常读取。这种因GPT分区表问题导致硬盘中的数据无法读取和使用的问题较为突出。

因GPT、MBR转换导致的各种各样的数据丢失问题,虽然借助一些常用的数据恢复软件可以达到快速恢复用户数据的目的,但对计算机技术的研究却是我们一直需要保持并不断追求的精神。

最近我们接到一例ST500DM002关于操作失误导致分区数据丢失的案例,从用户口中得知,硬盘上原来有四个分区,均有重要数据。通过客户模糊的回忆,结合工程师底层分析,大致判定失误操作删除了分区之后想再找回数据,结果又误操作将硬盘分区结构转换成了MBR。这是我们可以使用诸如R-S、DG等常用软件恢复分区数据,除此之外,还可以通过修改底层完整恢复原有GPT分区。

众所周知再GPT分区表被删除分区信息会被清空,并被现存分区的分区信息覆盖该位置,对于MBR分区结构DG软件有针对分区丢失的“搜索分区丢失(重建MBR)”功能,但因为GPT分区结构中存在全局唯一标识符等信息,所以在手工恢复和软件恢复两个方面都没有有效直接的恢复GPT分区结构。(分区表校验和GPT头校验是可以通过计算得出的)

所以现在的情况是看到只有一个无效分区,如下图:

但是通过搜索关键字节,可以定位到原有分区起止位置,分区信息如下:

发现这些逻辑分区中的数据都是完好无损的,原有的GPT头备份也在,要想恢复原有分区结构,我们需要“欺骗”计算机,根据搜索到的分区信息,重新创建分区,让计算机误以为创建的分区信息和原来分区大小一致。但是需要注意在这个过程中只进行创建操作,不要对其格式化。

首先修改应硬盘分区结构为GPT分区,然后创建好对应大小的分区,创建的过程就是“重建原有分区分区表”的过程,依次创建好之后,使用搜索到的关键字节找到的原有分区DBR备份替换创建的分区DBR,这样就可以达到手动重建原有分区结构的目的。至此手动完整修复被破坏GPT分区成功。

用户数据完整:

 

本次数据恢复实例具有偶然性,在大部分恢复案例中破坏程度都要较为严重些,这种类型的故障在部分关键位置被覆盖、多次删除又重建的情况下会很难达到完整修复的情况。本文恢复实例是对数据恢复技术深入探究的一次良好实践,实际恢复工作中还是要以客户数据为重,确保数据安全的情况下再进行技术上的尝试