APP下载

GPT磁盘克隆成MBR磁盘后数据恢复的研究

2020-05-22陈培德吴建平王一景朱辰龙

计算机技术与发展 2020年5期
关键词:扇区光标磁盘

陈培德,吴建平,王一景,邓 剑,朱辰龙

(云南大学 信息学院,云南 昆明 650223)

0 引 言

Ghost是目前使用得比较多的快速地在硬盘上安装操作系统、备份和恢复数据的一款工具软件[1],实现了多种硬盘分区格式的分区及硬盘数据的备份和还原功能[2]。

在微软视窗操作系统广为流传的基础上,为避开视窗操作系统原始完整安装的费时和重装系统后驱动应用程序再装的麻烦,许多软件安装人员把自己做好的干净系统用Ghost来备份和还原[3]。为易于操作,其流程被一键Ghost、一键还原精灵等进一步简化,它的易用很快得到了软件安装人员的喜爱[4]。将视窗操作系统Windows XP、Windows VISTA、Windows 7等软件与系统引导文件、硬盘分区工具等集成为一体,进一步进行配套,这样用户在需要重装系统时有效且简便地完成系统快速重装。

GPT是Globally Unique Identifier Partition Table的缩写,其含义是“全局唯一标识磁盘分区表”[5]。GPT的出现是为了替代旧式的MBR(master boot record)[6],主要解决了MBR分区表不支持容量大于2 TB的分区问题[7]。

如果用户的硬盘为GPT分区,即GPT磁盘,用户在使用Ghost软件安装系统时,由于操作不慎,会误将选择分区操作为选择整个硬盘[8];以至于安装系统后,只有一个分区,其分区的大小为整个硬盘的大小[8]。导致GPT磁盘中的各分区丢失,出现GPT磁盘中数据无法正常读取的现象。

针对这一情况,对Ghost后,GPT磁盘中的数据恢复进行了大量的实验,发现Ghost后大部分数据可以完整恢复。

1 实验环境与制作实验素材

1.1 实验环境

操作系统:Windows 7;

硬盘:虚拟硬盘;

工具软件:Ghost32 8.0;

数据分析及恢复工具:WinHex 15.08。

1.2 制作目标盘实验素材

步骤1:在Windows 7操作系统下,使用Windows 7的虚拟磁盘管理功能在D盘的根目录上建立一个名为abcd1.vhd的文件,文件大小为5 GB。

步骤2:将abcd1.vhd文件附加为虚拟磁盘1,转换成GPT磁盘;在磁盘1上依次建立5个分区,并分别对5个分区进行(快速)格式化操作,文件系统选择NTFS,磁盘1中5个分区依次对应5个逻辑盘情况如下:

(1)H盘,文件系统:NTFS,容量:800 MB;

(2)I盘,文件系统:NTFS,容量:1 000 MB;

(3)J盘,文件系统:NTFS,容量:1 200 MB;

(4)K盘,文件系统:NTFS,容量:1 000 MB;

(5)L盘,文件系统:NTFS,容量:1 085 MB。

步骤3:分别复制一定数量的文件夹和文件到这5个逻辑盘中。

至此,目标盘实验素材已制作完成。

1.3 制作源盘实验素材

步骤1:在Windows 7操作系统下,使用Windows 7的虚拟磁盘管理功能在D盘的根目录上建立一个名为abcd2.vhd的文件,文件大小为300 MB。

步骤2:将abcd2.vhd文件附加为虚拟磁盘2,转换成MBR磁盘;在磁盘2上依次建立1个分区,并对该分区进行(快速)格式化操作,文件系统选择NTFS,对应的盘符为M盘。

步骤3:复制一定数量的文件夹和文件到M个逻辑盘中。

步骤4:使用Ghost软件中的镜像功能将磁盘2镜像成为一个文件,文件名为abcd2.GHO,存储在D盘的根目录下。

至此,源盘实验素材已制作完成。

2 Ghost前磁盘1布局图

Ghost前,磁盘1的布局如图1所示,说明如下:

图1 Ghost前,磁盘1布局图

(1)磁盘1为GPT磁盘;而0号扇区存储的MBR分区表为“00 00 02 00 EE FF FF FF01 00 00 00FF FF FF FF”[9],从分区表可知,相对扇区为01(注:存储形式为01 00 00 00)[10],总扇区数为4 294 967 295(注:存储形式为FF FF FF FF)[10],分区标志为“EE”[11],即该分区是保护MBR[10]。

(2)1号扇区存储的是GPT头[12];2号扇区存储了4个GPT分区表,即微软保留、H盘、I盘、J盘;而3号扇区存储了2个GPT分区表,即K盘和L盘GPT分区表。

(3)通过2号扇区和3号存储的分区表可以定位微软保留GPT分区、H盘、I盘、J盘、K盘和L盘在GPT磁盘中的具体位置。

(4)10485727号扇区和10485728号扇区分别存储的是2号扇区和3号扇区的备份,10485729号扇区存储的是GPT头备份。

3 对磁盘1进行Ghost操作

步骤1:附加D盘根目录下的abcd1.vhd文件成为磁盘1,所产生的5个逻辑盘符分别为H盘、I盘、J盘、K和L盘。

步骤2:运行Ghost32 8.0,选择“Local→Disk→From →Image”,在弹出的窗口中选择D盘根目录下的abcd2.GHO文件,即源文件选择“abcd2.GHO”。

步骤3:在“Select local destination drive by clicking on the drive number”窗口中选择Drive2,即选择第2个物理硬盘,也就是abcd1.vhd文件附加后的虚拟磁盘1,单击“OK”按钮。

步骤4:大约6秒后,磁盘1中的5个逻辑盘被1个逻辑盘所取代,即磁盘1中只有1个逻辑盘,盘符为H:,大小为4.99 GB。

至此,实验素材已制作完成。

4 Ghost后磁盘1布局图

Ghost后,磁盘1的布局如图2所示,说明如下:

图2 Ghost后,磁盘1布局图

(1)磁盘1已经由GPT磁盘自动转换为MBR磁盘;而0号扇区存储的MBR分区表为“00 01 01 00 07 FE BF 8B3F 00 00 004D D3 9F 00”;从分区表可知,相对扇区为63(注:存储形式为3F 00 00 00),总扇区数为10 474 317(注:存储形式为4D D3 9F 00);分区标志为“07”[13],即该分区对应的文件系统是NTFS[14]。

(2)1号扇区存储的GPT头已被00填充,即GPT头已被破坏;2号扇区存储的4个GPT分区表和3号扇区存储的2个GPT分区表均完好无损地保存着。

(3)10 485 727号扇区存储的4个GPT分区表备份和10 485 728号扇区存储的2个GPT分区表备份均完好无损地保存着;而10 485 759号扇区存储的GPT头备份已被00填充,即GPT头备份已被破坏。

(4)由于0号扇区存储的保护MBR,1号扇区存储的GPT头,10 485 759号扇区存储的GPT头备份已经被破坏;所以,2号扇区和3号扇区存储的GPT分区表;10 485 727号扇区和10 485 728号扇区存储的GPT分区表备份已经不再起作用。

(5)Ghost后,从0号扇区的MBR分区表可知,新H盘的开始扇区号为63,而结束扇区为10 474 379,即被覆盖的区域为63号扇区~614 463号扇区;也就是说Ghost前,只有微软保留分区和H盘的部分扇区被覆盖,因为abcd2.GHO的实际大小为300 MB,占614 400个扇区。所以,I盘、J盘、K盘和L盘中存储的数据均未被覆盖;为成功恢复I盘、J盘、K盘和L盘中全部数据以及H盘中的部分数据带来了希望。

5 重建GPT分区的基本思路与方法

从图2可知,Ghost后,从614 464号扇区到10 485 759号扇区,除10 474 379号扇区被新H盘NTFS_DBR备份所覆盖,10 485 759号扇区被填充为00外,其余扇区的内容一般都完好无损地保留。

(1)将2号扇区和3号扇区以文件的形式备份。

(2)在磁盘管理中删除MBR分区。

(3)将MBR磁盘转换为GPT磁盘。

(4)通过备份的2号扇区和3号扇区恢复GPT分区表和GPT分区表备份。

(5)重新计算GPT头中对应GPT分区表的CRC校验和GPT头的CRC校验。

(6)重新计算GPT头备份中对应GPT分区表的CRC校验和GPT头的CRC校验。

6 重建GPT分区的操作步骤

步骤1:使用WinHex软件打开D盘根目录下的abcd1.vhd文件,并映像为磁盘。

步骤2:将光标移动到2号扇区的开始位置,定义块首;将光标移动到3号扇区的结束位置,定义块尾;单击“复制”按钮。

贫困地区基层组织弱化,部分地方执行人员由于自身素质不高,以一副领导视察的态势对待扶贫指导工作,执行力不够。部分审查与管理专项扶贫资金部门存在管理不严,自身内部督管不力,制度不健全的不良行政现象。在利益、权势驱动下少数地区政府为了追求短期政绩,不惜大量浪费和透支扶贫资源,有的还摊指标、造数字,使得扶贫开发的收效甚微。

步骤3:通过WinHex的文件菜单,新建一个VHD文件,文件大小为1 024字节,并将光标移动到新建文件的开始位置,单击“粘贴”按钮,将该文件存盘,文件为“2~3.vhd”。

步骤4:从2号扇区和3号扇区可以得到6个分区的开始扇区号和结束扇区号;将6个分区的开始扇区号和结束扇区号分别填入表1中。

步骤5:退出WinHex。

步骤6:使用计算机管理中的磁盘管理附加abcd1.vhd后成为磁盘1。

表1 Ghost后6个分区表的开始扇区号和结束扇区号

步骤7:删除磁盘1中H盘分区;将MBR磁盘转换为GPT磁盘。

至此,磁盘1中0号扇区已经变成保护的MBR,1号扇区的GPT头已建立;而2号扇区和3号扇区存储的6个GPT分区表已经被删除5个,只保留1个,即微软保留分区表;10 485 727号扇区和10 485 728号扇区存储的GPT分区表备份只保留1个,即微软保留分区表;而10 485 759号扇区存储的GPT头备份已建立。

步骤8:分离磁盘1,使用WinHex软件打开D盘根目录下的abcd1.vhd文件,并映像为磁盘。

步骤9:使用WinHex软件打开2~3.vhd文件,全选,单击“复制”按钮;将光标移动至abcd1.vhd文件的2号扇区开始位置,单击“粘贴”按钮;将光标移动至abcd1.vhd文件的10 485 727号扇区开始位置,单击“粘贴”按钮,最后单击“保存”按钮,即通过2~3.vhd文件来恢复abcd1.vhd中的GPT分区表和GPT分区表备份,关闭2~3.vhd文件。

步骤10:将光标移动1号扇区,即GPT头所在扇区号,可以查看到扇区偏移0X58~0X5B处的GPT分区表CRC32校验和为“4378B542”,注:存储形式为“42 B5 78 43”;如图3所示。

图3 1号扇区的GPT头

步骤11:将光标移动2号扇区开始位置,定义块首;将光标移动到33号扇区的末尾定义块尾,“工具”→“比较Hash值(M)...”→“CRC32(32Bit)”,可以计算出6个分区表的CRC32校验值为“78BBC529”;注:存储形式为“29 C5 BB 78”。

步骤12:将1号扇区偏移0X58~0X5B处的GPT分区表CRC32校验和“4378B542”修改为“78BBC529”,注:存储形式为“29 C5 BB 78”。

步骤13:将1号扇区偏移0X10~0X13处的GPT头CRC32校验和“12755BF7”修改为“00000000”。

步骤14:将光标移动1号扇区开始位置,定义块首;将光标移动到1号扇区偏移0X5B处定义块尾,“工具”→“比较Hash值(M)...”→“CRC32(32Bit)”,可以计算出这92个字节的CRC32校验值为“FB7F2E0C”;注:存储形式为“0C 2E 7F FB”,然后存盘。

至此,1号扇区的GPT头已成功恢复。

步骤15:将光标移动到10 485 759号扇区,如图4所示,将偏移0X58~0X5B处的GPT分区表CRC32校验和“4378B542”修改为“78BBC529”,注:存储形式为“29 C5 BB 78”。

图4 10 485 759号扇区的GPT头备份

步骤16:将10 485 759号扇区偏移0X10~0X13处的GPT头CRC32校验和“68C48CEB”修改为“00000000”。

步骤17:将光标移动10 485 759号扇区开始位置,定义块首;将光标移动到10 485 759号扇区偏移0X5B处定义块尾,“工具”→“比较Hash值(M)...”→“CRC32(32Bit)”,可以计算出这92个字节的CRC32校验值为“81CEF910”,注:存储形式为“10 F9 CE 81”,然后存盘。

至此,10 485 759号扇区的GPT头备份已成功恢复。

综上所述,Ghost前的GPT分区表、GPT分区表备份、GPT头和GPT头备份已成功恢复。

步骤18:使用WinHex软件重新打开abcd1.vhd文件并映像为磁盘,Partition2~Partition5、Partition1的开始扇区号,如图5所示。

图5 磁盘1中各GPT分区情况

从图5可知,Partition2的开始扇区号为67 584,而结束扇区号为1 705 983,将67 584号扇区以文件的形式保存,将1 705 983号扇区复制到67 584号扇区,即通过H盘的NTFS_DBR备份恢复NTFS_DBR,然后存盘并退出WinHex。

步骤19:通过计算机管理中的磁盘管理附加abcd1.vhd文件为磁盘1,到资源管理器中可以看到I盘、J盘、K盘和L盘中的全部文件和文件夹,但是由于H盘前面的数据被覆盖,无法正常读取,H盘的文件系统为RAW[15],单击盘符时,出现“磁盘未格式化”提示[16]。

步骤20:在DOS下,使用“CHKDSK H:/F/I”[17]自动修复被破坏的NTFS_文件系统,大约3分钟后,H盘的文件系统已成功修复完成。

至此,H盘中的大部分文件已成功恢复,但是被覆盖的文件无法恢复。

7 结束语

针对GPT磁盘被Ghost后,提出了恢复GPT分区的基本思路、方法与步骤;该方法的难点在于计算GPT头前92字节CRC校验和GPT分区表的CRC校验;未覆盖的逻辑盘中的数据可以成功恢复[18],但被覆盖的数据无法恢复。如果硬盘总容量小于2 TB且分区数量小于或者等于4个时,也可以通过在硬盘0号扇区建立MBR[19]分区表的形式来恢复。

猜你喜欢

扇区光标磁盘
MBR磁盘转换为GPT磁盘的研究与实现
分阶段调整增加扇区通行能力策略
它的好 它的坏 详解动态磁盘
重建GPT分区与NTFS_DBR的研究
解决Windows磁盘签名冲突
U盘故障排除经验谈
Windows系统下动态磁盘卷的分析与研究
克隆硬盘很简单
陈光标吃剩饭倒了谁的胃口
陈光标:巴菲特先生,我要裸捐!