■ 甘肃 权建军
编者按:现代智能仪器设备广泛使用磁盘进行数据存储。传统的MBR分区表由于对磁盘容量局限于2.2TB,并且只能有四个主分区,因此,在Windows 8系统改用了GPT分区表。由于设备故障或误操作,数据丢失往往造成重大损失。本文通过实验的方法,对GPT分区表进行数据恢复。实验表明,在GPT头和分区表被破坏时,可以根据GPT分区表特征,通过其备份进行数据恢复。
G P T 是GUID Partion Table的缩写,其含义是“全局唯一标识磁盘分区表”。由于MBR分 区表不支持大于2.2TB的分区,微软Windows 8放弃了MBR分区格式,使用了GPT磁
N盘分区格式。在现代智能仪器中,GPT分区表问题导致硬盘不能读取和使用的问题较为突出。
本文通过实验方法进行研究,直观了解GPT分区,并进行GPT分区重构,恢复数据。
GPT磁盘有6部分结构组成,如图1所示。
保护MBR位于GPT磁盘的第一个扇区,即0号扇区,由磁盘签名、MBR磁盘分区表和结束标志组成。
MBR分区表中,只有一个表项,分区类型标志为0xEE,分区起始1号扇区,总扇区数0xFFFFFFFF。
GPT头位于GPT磁盘的第二个扇区,也就是1号扇区。该扇区是在创建GPT磁盘时生成的,GPT头会定义分区表的起始位置、分区表的结束位置、每个分区表项的大小、分区表项的个数及分区表的校验和等信息。
表1 GPT分区表项中各字段的含义
图2 GPT头的备份的结构参数
分区表位于GPT磁盘的2~33号扇区,一共占用32个扇区,每个分区表占用128个字节,能够容纳128个分区表项,所以GPT磁盘允许创建128个分区。
分区表各字段含义如表1所示。
GPT分区区域通常都始于GPT磁盘的34号扇区,是整个GPT磁盘的最大区域,有多个具体分区组成。分区区域的起始地址和结束地址由GPT头定义。
GPT头的备份在GPT磁盘的最后一个扇区,和GPT头相比,虽然结构一样,但个别参数有不同。
具体如图2所示。
在此表中,要注意GPT分区表备份起始扇区号,后面要用到。
分区区域结束后,就是分区表的备份。分区表的备份地址,在GPT头备份扇区中有说明,即“GPT分区表备份起始扇区号”。
图3 重构保护MBR
(1) 操作系统 :Windows 7;
(2) 数 据 恢 复 软 件:WinHex 18.1
(1) 在 Windows 7系 统下建立虚拟磁盘GPTT.vhd文件,大小10GB,保存在D盘;
(2) 将 GPTT.vhd 附加为虚拟磁盘,转换成GPT磁盘。在磁盘上创建3个分区。在三个磁盘分区写入一些文件。
(3) 将磁盘的0号、1号、2号扇区的数据全部清零。
这样,GPT故障磁盘就制作好了。重启电脑后,发现虚拟磁盘上的三个分区盘符找不到了。
1.查找十六进制“454649”(对 应 字 符 为“EFI”),搜到,说明磁盘类型为GPT分区;
图4 重构GPT头
2.按照GPT的分区格式,填写保护MBR,通过GPT头备份来重构GPT头和GPT分区表。
在0号扇区填写保护MBR相关信息。磁盘类型“EE”,分区起始扇区“1”,分区大小“FFFFFFFF”,在扇区末尾加“55 AA”。如图3所示。
将最后一个扇区的GPT头备份复制到1号扇区。
注意备份和GPT头结构虽然一致,但有几个参数要修改。
需要将GPT头所在扇区指向1号扇区,GPT分区表起始扇区指向2号扇区。如图4所示。
在备份GPT头中,有GPT分区表备份起始扇区号,直接将此扇区复制到2号扇区即可。在全部修复完成后,重启系统,就可以找到盘符,打开文件,数据恢复成功。
GPT分区格式是Windows 8及以上系统的磁盘格式,通过实验的方法,在GPT磁盘数据破坏后,重构了GPT分区的保护MBR、GPT头和GPT分区表,恢复了磁盘数据。通过实验教学,直观再现了GPT磁盘数据恢复方法。