GPT扇区误删后的恢复
- GUID值
- GUID类型值表示
删除原来的卷,寻找硬盘有多少分区:
查看2号扇区的GPT头结束扇区号,为262177号扇区
从262177号扇区开始向下寻找“55AA”
第一:264192扇区,
起始扇区:264192;文件系统总扇区数:1048309759
结束扇区号=起始扇区号+分区表项中的扇区大小=1048309759+264192=1048573951
新建一个GPT磁盘,格式化,将其2号扇区的480-4D0数据复制到被删磁盘的同样位置
480-48F:中的起始分区类型值都一样,不用改
490-49F:唯一ID,可以随意修改
再把算出来的起始扇区号264192写到4A0-4A7,把结束扇区号1048573951写到4A8-4AF,保存
保存后可以看到磁盘多了一个分区
双击分区2可以看到之前创建的文本
虽然winhex可以看到内容,但是分离后重新附加该磁盘,可以看到磁盘仍然显示未分配。原因是GPT头未恢复(校验码发生改变,需要重新计算校验和)
计算校验和:
①分区表校验和:拷贝2-33号扇区的分区表至一个新文件,用CRC校验和计算程序进行计算。得到的数值倒序填入1号扇区的58-5B位置中
②GPT头校验和:将10-13字节清零,拷贝1号扇区的前92个字节即GPT头部(00-5B)至一个新文件,用CRC校验和计算程序进行计算。得到的数值倒序填入1号扇区的10-13字节中
分离磁盘后重新附加,发现可以读取了
磁盘内容也复原了,耶!
总结:
①寻找分区位置:找出丢失分区的起始扇区号和结束扇区号
②寻找复制别的磁盘的GPT头到被删磁盘的1号扇区同样位置
③随意修改GUID值
④计算分区表校验和:复制2-33号扇区内容为新文件,用CRC校验和计算程序来算出分区表校验和
⑤填写分区表校验和至58-5B字节
⑥计算GPT头校验和:将10-13字节清零,复制1号扇区00-58字节内容为新文件,用CRC校验和计算程序来算出GPT头校验和
⑦填写GPT头校验和至10-13字节
⑧分离磁盘后重新加载