用winhex进行GPT磁盘多分区恢复实例——超详细

GPT磁盘多分区恢复

恢复前: 恢复后:

开始恢复:

一、寻找分区数据:

分区表是从2号扇区开始,但通常第一个分区表即分区1是不可用的,因此要寻找第2个分区,就要知道第1个分区的结束扇区。

查看2号扇区的220-22F数据,看分区1(MS Reserved)的结束扇区号是多少。 可以看到分区1的结束扇区号为262177,我们跳转到该扇区,并向下搜索“55AA”寻找分区的MBR(即分区的起始位置)。 找到的分区2的起始扇区号在264192号扇区 可以看到分区2的总扇区数是59371519, 所以分区2的结束扇区号=起始扇区号+总扇区数=264192+59371519=59635711 跳转到分区2的结束扇区,并向下搜索“55AA”寻找下一个分区的MBR(即分区的起始位置)。 找到的分区3的起始扇区号在59635712号扇区 可以看到分区3的总扇区数是122877951 所以分区3的结束扇区号=起始扇区号+总扇区数=59635712+122877951=182513663

跳转到分区3的结束扇区,并向下搜索“55AA”寻找下一个分区的MBR(即分区的起始位置)。 同理可得: 分区4: 起始扇区号:182513664,总扇区数:40959999 结束=起始扇区号+总扇区数=182513664+40959999=223473663

分区5: 起始扇区号:223473664,总扇区数:573439999 结束=起始扇区号+总扇区数=223473664+573439999=796913663

接下来跳转到分区5的结束扇区796913663,继续向下搜索55AA,发现已经不能搜素到了,即下面没有分区了

因此寻找到的的分区的数据有以下: 分区2起始扇区号:264192,结束扇区号:59635711 分区3起始扇区号:59635712,结束扇区号:182513663 分区4起始扇区号:182513664,结束扇区号:223473663 分区5起始扇区号:223473664,结束扇区号:796913663

二、下面开始修复GPT分区表:

在Windows的“磁盘管理”中创建一个虚拟磁盘 在winhex上打开新建的GPT磁盘,并在GPT分区表的第一个字节上点击Alt+1、在GPT分区表的最后一个字节点击Alt+2复制完整的GPT分区表 在损坏磁盘的2号扇区的第9行开始粘贴4个GPT分区表,并随意修改分区表的第二行数据,使它们的GUID值不相同。 修改后保存,且重新附加磁盘。发现winhex可以看到了4个分区,但磁盘管理器中仍然显示未分配。原因是GPT头未恢复(校验码发生改变,需要重新计算校验和)

三、计算并修改校验码:

计算校验和(用CRC校验和计工具): ①分区表校验和:拷贝2-33号扇区的分区表至一个新文件,用CRC校验和计算程序进行计算。得到的数值倒序填入1号扇区的258-25B位置中 ②GPT头校验和:将210-213字节清零,拷贝1号扇区的前92个字节即GPT头部(200-25B)至一个新文件,用CRC校验和计算程序进行计算。得到的数值倒序填入1号扇区的210-213字节中 保存,并重新附加磁盘。 磁盘恢复成功!

经验分享 程序员 微信小程序 职场和发展