接上文换硬盘。换完硬盘之后,顺手把之前装的Windows 8一起复制过来了,当作大号的PE使用,甚至还能放办公,打游戏。结果修复完引导(EasyBCD选择在当前系统下的盘符,不会修改系统挂载的盘符),一开机,发现锁屏界面是有的,但是壁纸不见了。输入密码登录,卡在“正在准备Windows”,即使不登录,想使用系统关机键关机,程序都会报错,连关机按钮都见不到。

然后在网上找,听到别人说可能是系统配置的问题,有不少人在系统备份前会主动将系统设置到sysprep模式下,在该模式中,系统会检测当前硬件,且根据现有的硬件生成合适的配置文件。然而,我遇到了两个问题:第一,该模式只能在系统内部进入,所以需要先把硬件配置完全改回原来的样子才能启动;第二,这种方法不一定成功,且失败后果很严重,尤其是当作为双系统安装在非C盘的时候,之前的配置文件会全部丢掉,无法回到原样。因为不愿浪费更多的时间在那块SMR硬盘上,只好作罢。

后来开始考虑是不是可能是根分区(借用Linux术语,这里指Windows系统所在分区)挂载出错的问题,因为Linux的GRUB配置出错的时候也会这样,系统一部分功能是正常的(因为已经加载到了内存),但是剩下的完全不可用。

然后就去查了一下Windows存不存在类似于盘符到分区UUID的缓存表一类的,结果还真找到了(https://docs.microsoft.com/en-us/troubleshoot/windows-server/backup-and-storage/restore-system-boot-drive-letter)。

经过测试,解决这个问题的方法是,在任意一个可以在当前硬件配置条件下启动的系统中(比如新装的系统或者迁移的Windows 10),挂载Windows 8的SYSTEM注册表,修改其中对应的每个分区在HKLM\SYSTEM\MountedDevices中的那串二进制标识,从当前系统的值直接全选,对应覆盖复制过去就行了。

然而Windows 10可以自动在新硬件环境上自动适配分区标识,猜测可能的原因是,这个功能在Windows 10才被添加进系统的启动流程中,而Windows 8开发的时候并没有。(然而Win8能自动适配外围设备已经很强了)

标签: none

添加新评论