GHOST | 恢复系统,MBR转到GPT后无法启动,黑屏报错?原理+解决方案来了!
GHOST | 恢复系统,MBR转到GPT后无法启动,黑屏报错?原理+解决方案来了!
老一辈技术员使用GHO备份恢复系统的时候,如果遇到MBR分区表上的系统恢复到GPT分区表的磁盘上时,会遇到两个坎:
- 无法启动计算机(也就是引导问题)
- 启动后黑屏狂闪报错
本文一一研究原理并解决这两个问题.
关于无法启动计算机
我在曾经的文章中写过无数次UEFI固件搭配GPT磁盘时,启动系统的要求:
GPT磁盘上必须有EFI(ESP)分区!
所谓EFI(ESP)分区,事实上就是文件系统为FAT32/FAT16的分区.
这种文件系统可以被UEFI固件识别.其他的文件系统UEFI固件并不能读取.所以硬盘上必须要有这种分区,供UEFI固件读取识别,从而启动系统.
那么如果你用的是UEFI固件,你的磁盘上没有EFI分区,也就是没有文件系统为FAT32/16的分区,那么打死也没法启动系统.
如果没有EFI分区,你可以直接创建一个.方法如下:
- 在PE中打开DiskGenius
- 选择那个GPT磁盘,在磁盘中任意选择一个分区,右键那个分区,点击
"拆分分区" - 在”分区后部的空间”中,输入
300MB即可,右侧选择建立新分区 - 点击”开始”

软件会自动分出来一个新的NTFS文件系统小分区.现在把它变成FAT32文件系统.
- 右键点击那个新的小分区
- 点击
格式化分区,文件系统选择FAT32 - 一路确定
这样我们就人为地制作出了一个UEFI固件可以识别读取的分区了.
接下来的操作就是常规的修复系统引导.
- 打开PE系统中的Dism++软件.
- 在上方,点击我们想要修复的系统.
- 点击
恢复功能→引导修复→更多 - 我们要保证启动文件写入的分区是我们刚刚创建的300MB小分区,所以在这里点击那个分区.(我的图片例子中是216MB大小的分区)

这样UEFI固件的引导就修复完成了.Windows系统可以正常引导.
但是不能正常启动!
启动后黑屏狂闪报错
重启计算机,可以正常的启动到Windows系统的登录界面,然后会报错:unknown hard error.(未知硬性错误)登录后,黑屏疯狂闪烁状态栏.
这是为什么?首先讲原理.
我们是把一个曾经正常运行的Windows系统备份为GHO,然后恢复到了另一块完全不同的硬盘上.这个Windows系统会记着他曾经呆过的那块硬盘.他是怎么记的呢?
他是通过在注册表里记录曾经硬盘的GUID,分区的GUID的方式记住的.
GUID是全局唯一标识符,通俗理解就是身份证号,具有唯一性,不可重复性.每一个硬盘,每一个分区都有独一无二的GUID.
所以,当你把这个Windows恢复到新的硬盘上后,Windows发现,它记录的GUID和他现在身处的硬盘的GUID不一致.
所以Windows会这样想:既然现在的硬盘分区中没有之前记录的C盘的GUID,那么说明现在的硬盘分区里没有C盘.这时会发生一个鬼畜的事情:
Windows启动后,没有任何一个分区是C盘.
所以,Windows会黑屏,因为文件资源管理器根本找不到他自己在哪里.Windows疯狂的启动文件资源管理器,explorer.exe疯狂的崩溃.于是,启动后黑屏狂闪报错.
怎么办?
那就把Windows注册表里记录的那些GUID删除了就好了.
我们再次进入PE系统.
在PE系统中打开”注册表编辑器”.这时,注册表编辑器显示的是PE系统的注册表,我们需要编辑的是目前没有启动的那个Windows系统的注册表,而不是PE的注册表.
所以,我们需要挂载Windows系统注册表.
方法:
- 首先单击PE系统注册表编辑器中,某一个注册表根键(例如点击
HKEY_LOCAL_MACHINE) - 点击左上角”
文件→加载配置单元“

- 选择Windows系统的注册表文件
- 选择
D:\Windows\system32\config\system这个文件 - 请注意:上面路径里的D盘,需要替换为Windows系统盘实际在PE中显示的盘符.
- 选择
- 然后,随意输入一个名字,比如
1111,确定就可以了.
删除注册表中的GUID信息:
- 双击
1111,然后点击MountedDevices这一项,你可以在右侧看见很多注册表键. - 除了最上面第一个键(默认),把右侧的所有注册表键全部删除.
- 再次点击选中
1111 - 点击左上角
"文件→卸载配置单元"
操作结束.
这样在重启电脑后就可以正常使用Windows系统了.
以上注册表修改方法对MBR到GPT,GPT到MBR分区表均有效.