2023年11月25日发(作者:)
重建GPT分区的研究与实现
陈培德;吴建平;钱文华;曹良坤;王林茂
【摘 要】GPT分区是目前硬盘普遍使用的一种分区形式, 克服了MBR对分区管理
不能超过2 TB的缺点.但是由于用户误操作、计算机病毒破坏、突然掉电等因素的
影响, 使得GPT分区被破坏的情况时有发生, 从而导致存储在硬盘中的数据丢失.针
对这一情况, 以Windows 7为平台, Win Hex 15.08为分析工具, 虚拟硬盘为实验
对象, 对虚拟硬盘GPT分区结构进行分析, 通过DBR的特征值查找并获得DBR及
DBR备份所在扇区, 将DBR中存储的总扇区数转换为逻辑盘的总容量, 以此为依据
重建硬盘GPT分区, 最后通过DBR备份所在扇区恢复DBR.实验结果表明, 当GPT
分区被破坏后, 只要获得逻辑盘总扇区数, 便可成功恢复GPT分区, 从而完整恢复
各逻辑盘中的全部数据.%GPT Partition is a common partition form of hard
disk at present, which overcomes the disadvantage that MBR cannot
exceed2 TB in partition r, due to user's misoperation,
computer virus damage, sudden power loss and other factors, the
destruction of GPT partition occurs from time to time, resulting in the loss
of data stored in the hard response to this situation, based on
Windows 7 platform, WinHex 15.08 as the analytical tool and the virtual
hard disk as experiment object, we analyze the GPT partition
DBR and its backup in the sector are searched and acquired by the
eigenvalues of total number of sectors stored in DBR is
transformed into the total capacity of the logical disk, based on which the
hard disk GPT partition is y the DBR is restored by its backup
in the experiment shows that when the GPT partition is
damaged, as long as the total number of sectors of the logical disk is
obtained, the GPT partition can be restored successfully, so as to
completely restore all the data of each logical disk.
【期刊名称】《计算机技术与发展》
【年(卷),期】2019(029)002
【总页数】5页(P96-100)
【关键词】GPT分区;MBR分区;数据恢复;FAT32文件系统;NTFS文件系统
【作 者】陈培德;吴建平;钱文华;曹良坤;王林茂
【作者单位】云南大学 信息学院 云南省高校数字媒体技术重点实验室, 云南 昆明
650223;云南大学 信息学院 云南省高校数字媒体技术重点实验室, 云南 昆明
650223;云南大学 信息学院 云南省高校数字媒体技术重点实验室, 云南 昆明
650223;云南大学 信息学院 云南省高校数字媒体技术重点实验室, 云南 昆明
650223;云南大学 信息学院 云南省高校数字媒体技术重点实验室, 云南 昆明
650223
【正文语种】中 文
【中图分类】TP311.12
0 引 言
GPT是globally unique identifier partition table的缩写,其含义是“全局唯一
标识磁盘分区表”[1]。GPT的出现是为了替代旧式的MBR(master boot record),
主要解决MBR分区表不支持容量大于2.2 TB的分区问题[2]。
目前,微软公司Windows 8使用了GPT磁盘分区格式,同时Windows 8不再
支持MBR。计算机如果使用Windows 7就必须采用MBR分区格式,这样不同
分区表误操作、误转换的结果是硬盘中原有的磁盘分区表丢失,磁盘中的数据不能
正常读取。在Windows 7和Windows 8用户数量庞大的今天,这种因GPT分
区表问题导致硬盘中的数据无法读取和使用的问题较为突出。
当GPT存储磁盘出现误操作或操作系统本身故障导致的分区表损坏、数据不可见、
不可读的数据等问题时,有可能是GPT分区表的逻辑出错,可以通过一定的技术
手段,将保存在台式机硬盘、笔记本硬盘、服务器硬盘等设备上丢失的宝贵数据进
行抢救和恢复。
当GPT分区被破坏后,恢复分区常用的方法是:使用DiskGenius软件的“搜索
已丢失分区(重建分区表)”功能来重新建立分区,但该方法只能重建MBR分区,
不能重建GPT分区。
1 GPT磁盘简介
从整体来看,GPT磁盘主要由6大部分组成,即保护MBR、GPT头、GPT分区
表、GPT分区区域(即文件系统所在区域)、GPT分区表备份和GPT头备份[3]。大
致结构如图1所示[4](注:假设GPT磁盘的扇区号范围为0~n-1,其中n为GPT
磁盘的总扇区数)。
图1 GPT磁盘的整体结构
(1)保护MBR。
保护MBR位于GPT磁盘的0号扇区,也是由主引导记录、磁盘签名、MBR分区
表和结束标志4个部分组成[5]。在MBR分区表中,分区标志为0XEE,相对扇区
为1,总扇区数为4 294 967 295,也就是分区总数的最大值,即该磁盘已经被
GPT分区占用,不能再进行MBR分区[6]。
(2)GPT头。
GPT头位于GPT磁盘的1号扇区[6],该扇区是在将MBR磁盘转换成GPT磁盘
后自动生成的,GPT头定义了GPT分区各参数的基本信息[7]。
(3)GPT分区表。
GPT分区表位于GPT磁盘的2~33号扇区,共占用32个扇区,每个分区表占
128字节,最多可以容纳128个分区表[7],由于第1个分区表为系统保留,所以
用户在GPT磁盘上最多可以再建立127个分区,每个分区表管理一个分区。
(4)分区区域。
GPT分区区域是整个GPT磁盘中最大的区域,位于GPT磁盘的中间位置,GPT
分区区域的开始扇区和结束扇区由GPT头定义[7]。一般情况下,开始扇区为34
号扇区,而结束扇区为GPT磁盘总扇区数减去35。该区域由多个具体的分区组成,
如:微软保留分区、EFI系统分区、LDM元数据分区、LDM数据分区、OEM分
区和主分区。各分区的开始扇区和结束扇区在各分区表中均有定义。
(5)分区表备份。
一般情况下,分区表备份位于GPT磁盘的倒数33号扇区~倒数2号扇区,也是
占用32个扇区,是GPT分区表位于GPT磁盘的2~33号扇区的备份。
(6)GPT头备份。
GPT头备份位于GPT磁盘的倒数1号扇区,该扇区也是在将MBR磁盘转换成
GPT磁盘后自动生成的,GPT头备份也是定义了GPT分区各参数的基本信息,但
该扇区不是GPT头的简单备份,GPT头备份对GPT分区各参数基本信息的定义
与GPT头对GPT分区各参数基本信息的定义稍有不同。
2 实验环境及制作实验素材
2.1 实验环境
(1)操作系统:Windows 7;
(2)数据恢复软件及分析工具:WinHex 15.08。
2.2 制作实验素材
(1)在Windows 7操作系统下,使用Windows 7的虚拟磁盘管理功能在D盘的
根目录上建立一个名为的文件,文件大小为1 GB。
(2)将文件附加为虚拟磁盘1,转换成GPT磁盘;在磁盘1上依次建立
4个分区,并对4个分区进行格式化操作,磁盘1中4个分区依次对应4个逻辑
盘,如下所示:
·H盘,文件系统:FAT32,容量:200 MB;
·I盘,文件系统:NTFS,容量:160 MB;
·J盘,文件系统:FAT32,容量:300 MB;
·K盘,文件系统:NTFS,容量:330 MB。
(3)分别在H盘、I盘、J盘和K盘中存储一些文件夹和文件;磁盘1总体布局如图
2所示。
图2 磁盘1的总体布局
(4)使用Windows 7的磁盘管理功能将H盘、I盘、J盘和K盘的GPT分区删除。
(5)将GPT磁盘转换为MBR磁盘;磁盘1总体布局如图3所示。
图3 GPT分区删除后的磁盘1总体布局
至此,实验素材已制作完成。
3 删除GPT分区前、后硬盘变化情况对比
删除GPT分区前,各逻辑盘在磁盘1中的分布情况如图2所示。即在磁盘1的2
号扇区建立了4个分区(对应微软保留分区、H盘、I盘和J盘),在3号扇区建立
了1个分区(对应盘符为K盘),各分区在硬盘中的位置如表1所示。
表1 磁盘1各逻辑盘在硬盘中的位置分区开始扇区号结束扇区号总扇区数容量
/MB文件系统微软保留分区3465 56965 53632H盘65 664475 263409
600200FAT32I盘475 264802 943327 680160NTFSJ盘802 9441 417
343614 400300FAT32K盘1 417 3442 093 183675 840330NTFS
从删除GPT分区前、后对比硬盘变化可知:
(1)删除GPT分区并转换为MBR磁盘后,0号扇区的保护MBR分区表已经被删
除;
(2)GPT头仍然完好保存;
(3)第1个分区表(即对应微软保留分区)仍然保存;
(4)各逻辑盘中的数据仍然完好无损;
(5)第1个分区表备份(即对应微软保留分区)仍然保存;
(6)GPT头备份仍然完好保存。
由于各逻辑盘的GPT分区表和GPT分区表备份已经被删除,虽然各逻辑盘中的数
据完好无损,但是通过磁盘管理附加磁盘1,在资源管理器中无法查看到各逻辑盘
盘符,也就无法查看各逻辑盘中的文件和文件夹。
4 重建GPT分区的基本思路与方法
经过大量实验发现,在GPT磁盘中建立一个分区后,只要不将对应逻辑盘进行格
式化操作,那么系统只将逻辑盘的开始扇区填充为“00”,而逻辑盘的剩余扇区
即完好无损地保存着。
根据这一特点,恢复GPT分区中各逻辑盘的基本思路与方法如下:
(1)通过开始扇区(即DBR所在扇区)的特征值,查找并记录下各逻辑盘的DBR和
DBR备份所在扇区号[8];
(2)通过DBR中的BPB参数,获得各逻辑盘的总扇区数[8];
(3)通过各逻辑盘的总扇区数,计算各逻辑盘的总容量;
(4)通过各逻辑盘总容量,依次建立各逻辑盘(注:在建立各逻辑盘时,不要格式化
各逻辑盘) ;
(5)最后通过各逻辑盘的DBR备份依次恢复各逻辑盘的DBR[9]。
通过磁盘管理附加磁盘1,在资源管理器中可以查看到各逻辑盘的盘符。
5 重建GPT分区的步骤
根据重建GPT分区的基本思路与方法,重建GPT分区的步骤如下:
1.获得4个逻辑盘的基本情况。
(1)在Windows 7操作系统下,启动WinHex;
(2)使用WinHex的文件功能,打开D盘根目录上的文件,并映像为磁
盘;
(3)通过FAT32_DBR的特征值,查找FAT32_DBR及其备份,分别在65 664、65
670、802 944以及802 950号扇区找到;
(4)经过确认,65 664号扇区为FAT32_DBR,而65 670号扇区为65 664号扇区
的备份,即FAT32_DBR备份;802 944号扇区为FAT32_DBR,而802 950号
扇区为802 944号扇区的备份,即FAT32_DBR备份;
(5)通过NTFS_DBR特征值,查找NTFS_DBR及其备份,分别在475 264、802
943、1 417 344、2 093 183号扇区找到;
(6)经过确认,475 264号扇区为NTFS_DBR,而802 943号扇区为475 264号
扇区的备份,即NTFS_DBR备份;802 943号扇区为NTFS_DBR,而2 093 183
号扇区为802 943号扇区的备份,即NTFS_DBR备份;
(7)从65 664、475 264、802 944和802 943号扇区(即各DBR)所获得的总扇区
数分别为327 680、614 399、675 840和409 599;
(8)退出WinHex。
综合步骤4、步骤6和步骤7,4个逻辑盘的DBR、DBR备份、总扇区数、容量
和文件系统如表2所示。
表2 磁盘1各逻辑盘的基本情况分区DBR所在扇区号DBR备份所在扇区号总扇
区数容量/MB文件系统H盘65 66465 670409 600200FAT32I盘475 264802
943327 680160NTFSJ盘802 944802 950614 400300FAT32K盘1 417 3442
093 183675 840330NTFS
注:NTFS_DBR中存储的总扇区数要比实际分区所占扇区数少1个扇区。
2.将MBR磁盘转换为GPT磁盘。
(1)在Windows 7操作系统下,使用Windows 7的虚拟磁盘管理功能附加D盘
根目录上的文件为磁盘1;
(2)将光标移动到“磁盘1 基本1 023 MB 联机”处,右击,从弹出的快捷菜单中
选择“转换成GPT磁盘(V)”。
至此,磁盘1由MBR磁盘转换为GPT磁盘。
3.重建4个逻辑盘GPT分区表。
(1)将光标移动到“磁盘1的992 MB 未分配”处,右击,从弹出的快捷菜单中选
择“新建简单卷(I)…”;
(2)出现“新建简单卷向导”第1个窗口,单击“下一步”按钮;
(3)出现“新建简单卷向导”第2个窗口—指定卷大小,在“简单卷大小(MB)(S):”
右侧的列表框中输入第1个逻辑盘的大小“200”,单击“下一步”按钮;
(4)出现“新建简单卷向导”第3个窗口—分配驱动器号和路径,在“分配以下驱
动器号(A):”右侧的列表框中选择“H”,单击“下一步”按钮;
(5)出现“新建简单卷向导”第4个窗口—格式化分区,选择“不要格式化这个卷
(D):”选项,单击“下一步”按钮;
(6)出现“新建简单卷向导”第5个窗口,单击“完成”按钮;
(7)重复步骤1~6,共计3次;在步骤3出现“新建简单卷向导”第2个窗口—
指定卷大小,在“简单卷大小(MB)(S):”右侧的列表框中依次输入第2个、第3个
和第4个逻辑盘的大小“160”、“300”和“330”;在出现“新建简单卷向导”
第3个窗口—分配驱动器号和路径,在“分配以下驱动器号(A):”右侧的列表框中
依次选择“I”、“J”和“K”。
至此,磁盘1中的4个GPT分区已经建立。
将光标移动到“磁盘1 基本1023 MB 联机”处,右击,从弹出的快捷菜单中选择
“分离VHD”。
4.通过各自的DBR备份恢复DBR。
由于4个逻辑盘的DBR均被破坏,所以4个逻辑盘的文件系统均为RAW,需要
通过各自的DBR备份来恢复,步骤如下:
(1)启动WinHex;
(2)使用WinHex的文件功能,打开D盘根目录上的文件,并映像为磁
盘;
(3)将65 670号扇区复制到65 664号扇区;将802 943号扇区复制到475 264
号扇区;将802 950号扇区复制到802 944号扇区;将2 093 183号扇区复制到
1 417 344号扇区;然后,存盘并退出WinHex。
至此,各逻辑盘的DBR已经通过DBR备份恢复成功。磁盘1总体布局如图2所
示。
通过磁盘管理附加磁盘1,在资源管理器中可以查看各逻辑盘的盘符,并且可以看
到各逻辑盘中的所有文件和文件夹。
6 通过重建MBR分区来恢复各逻辑盘中的数据
如果硬盘总容量小于2.2 TB,且分区总数小于或等于4个时,可以使用在硬盘0
号扇区建立对应MBR分区表的形式来恢复各逻辑盘中的数据。
由于磁盘1正好满足这一条件,所以可以通过在硬盘0号扇区建立4个MBR分
区表[10]。方法如下:
1.从表2中4个逻辑盘的DBR所在扇区号和总扇区数可以计算出磁盘1中H盘、
I盘、J盘和I盘在硬盘0号扇区的分区表,如表3所示。
表3 分区表序号盘符对应分区表1H盘00 0101 00 0C FE FF FF 80 00 01 00 00
40 06 002I盘00 0101 00 07 FE FF FF 80 40 07 00 00 00 05 003J盘00 0101
00 0C FE FF FF 80 40 0C 00 00 60 09 004K盘00 0101 00 07 FE FF FF 80 A0
15 00 00 50 0A 00
对4个分区表说明如下:
(1)由于H盘、I盘、J盘和K盘均不引导系统,各分区表中第1个字节的值为
“00”[11];
(2)目前硬盘的存取方式均为LBA,分区表中第2~4字节未定义,可以填充任意
值,这里填充“01 01 00” [12];
(3)由于H盘和J盘的文件系统为FAT32,所以,分区标志为“0C” [13];而I盘
和K盘的文件系统为NTFS,所以,分区标志为“07”[14];
(4)分区表中第6~8字节未定义,可以填充任意值,这里填充“FE FF FF”;
(5)分区表中第9~12字节为相对扇区,即各逻辑盘DBR所在扇区号;
(6)分区表中第13~16字节为总扇区数,即各逻辑盘所占扇区数。
2.将这4个分区表填入到硬盘0号扇区偏移0X01BE~0X01FD处,然后存盘并退
出WinHex。磁盘1总体布局如图4所示。
图4 恢复4个MBR分区后的磁盘1总体布局
通过磁盘管理附加磁盘1,在资源管理器中可以查看各逻辑盘的盘符,并且可以看
到各逻辑盘中的所有文件和文件夹。
7 结束语
综上所述,当GPT磁盘中的分区被删除,并将
GPT磁盘转换为MBR磁盘后,只要查找并获得各逻辑盘的DBR,通过DBR中的
总扇区数,计算出各逻辑盘的总容量;依次重建各逻辑盘,在建立各逻辑盘时,只
要不格式化各逻辑盘,最后通过各逻辑盘的DBR备份恢复各自的DBR,便可以恢
复GPT磁盘中各逻辑盘的全部数据;如果GPT磁盘总容量小于2.2 TB,且分区总
数小于4个时,也可以在硬盘0号扇区通过重建MBR的形式来恢复各逻辑盘中的
全部数。
参考文献:
【相关文献】
[1] 刘 伟.数据恢复技术深度揭秘[M].北京:电子工业出版社,2010:179.
[2] 杨 倩.数据恢复备份实训教程[M].北京:电子工业出版社,2016:92.
[3] 马 林.数据重现─文件系统原理精解与数据恢复最佳实践[M].北京:清华大学出版社,2009:84.
[4] 汪中夏,张京生,刘 伟.RAID数据恢复技术揭秘[M].北京:清华大学出版社,2010:150.
[5] 陈培德,吴建平,王丽清.重建NTFS的DBR及分区表的研究与实现[J].实验科学与技
术,2016,14(6):56-59.
[6] RUSSINOVICH M E,SOLOMON D A,LONESCU s internals[M].Beijing:Post &
Telecom Press,2009:938.
[7] CARRIER system forensic analysis[M].[s.l.]:Addison Wesley Professional,2005.
[8] 陈培德,吴建平,王丽清.NTFS文件系统实例详解[M].北京:国防工业出版社,2015:10.
[9] SOLOMAN D Windows NT[M].2nd gton,U.S.A:Microsoft
Corporation,1998:330.
[10] 戴士剑,涂彦晖.数据恢复技术[M].北京:电子工业出版社,2005:226.
[11] IVENS K,GARDINILE R s 200:the complete reference[M].Beijing:China
Machine Press,2000:532.
[12] 陈培德,吴建平,王丽清.Ghost后数据恢复的研究与实现[J].计算机技术与发展,2017,27(1):112-
116.
[13] 陈培德,吴建平,王丽清.重建分区表与FAT32_DBR研究与实现[J].计算机技术与发
展,2016,26(10):188-191.
[14] 刘乃琦,郭建东,张 可.系统与数据恢复技术[M].北京:电子科技大学出版社,2008:46.


发布评论