Windows10系统迁移后无法更新

问题

系统是Windows 10。电脑原本有一块机械硬盘。后来为了提高性能,想加装一块固态硬盘,作为系统盘。但是不想重装系统,免得各种软件要重新装。

于是就使用了分区助手进行硬盘迁移。将机械硬盘上的C盘完整地复制到固态硬盘上。然后在BIOS里设为从新的固态硬盘启动,就可以将固态硬盘作为新的系统盘使用了。

不过带来的问题就是发现Windows 10的功能更新没法安装了,始终显示错误或者无法安装。而且错误不明。

原因

排查了很久,根据网上的各种帖子推测,无法安装更新的原因是Windows恢复功能(Windows Recovery)被禁用了。而更新时会使用这个功能。如何确认是recovery没有启用呢?可以用管理员运行命令提示符(cmd),执行以下指令,来查看是否启用。

reagentc /info

以下是我处理好之后的结果。

Windows10系统迁移后无法更新

解决

因为进行了系统迁移,原有的recovery还在旧的机械硬盘上。无法在系统中直接启用recovery,会报错或无效果。

(1)获得恢复镜像

如果要启用Windows recovery,需要重新指定恢复镜像Winre.wim。

要获得Winre.wim,一些帖子说可以从Windows完整镜像中提取。不过根据我的尝试,从最新版本的镜像中提取已经比较麻烦了,因为似乎微软更换了相关文件的打包方式。

另一种方法是从原有硬盘的恢复分区中获得。由于恢复分区是没有盘符的,也就是没有C、D、E盘这样的标志,没法直接访问。可以通过DiskGenius等硬盘工具软件访问,找到恢复分区recovery下面的recovery文件夹,的如下图所示。
Windows10系统迁移后无法更新

这个文件夹下有一个子文件夹叫WindowsRE。图中没有,是因为我处理好之后,这个子文件夹自动消失了。把recovery分区:\Recovery\WindowsRE下的三个文件,特别是Winre.wim复制出来,这样就获得了相关文件。如下图所示。
Windows10系统迁移后无法更新

(2)指定恢复镜像

系统盘的根目录下建立一个文件夹,叫做Recovery,再在它里面建立一个子文件夹叫WindowsRE。注意,由于这些文件夹可能本身是存在的,并且是隐藏的,因此如果新建时报错,那么不用急,去文件夹选项中勾选“显示隐藏的文件”,然后取消勾选“隐藏系统保护的文件”。这样就能显示原有的文件夹了。

将刚才获得的三个文件复制到c:\Recovery\WindowsRE中。

然后用管理员运行命令提示符(cmd),执行以下指令。

reagentc /setreimage /path c:\Recovery\WindowsRE
reagentc /enable

如果执行成功,那么查看一下现在的状态:

reagentc /info

如果显示是enabled的状态,那么恭喜你,问题已经解决了。但是可能并没有这么顺利。我操作的时候,发现前面的指令执行成功了,但是再次查看状态的时候,还是显示disabled。而如果再次执行reagentc /enable,就会提示:reagentc.exe 无法更新引导配置数据

引导配置数据(BCD)跟系统启动有关,具体我也不懂。但是大概意思是说,因为系统中还残留有之前的信息(毕竟是整个系统盘复制嘛),所以这个BCD对不上了。

(3)修复BCD

下载easyBCD软件可以用来修复BCD,注意一定要下载2.3版本的,低了不行,高版本我不清楚。下载了之后打开软件,恢复BCD配置。

注意!慎重操作!因为恢复BCD会删除所有启动项,导致计算机没法启动。因此操作之后千万不要关机重启!
Windows10系统迁移后无法更新

然后再重新添加引导项
Windows10系统迁移后无法更新

添加完成后,可以打开Windows自带的“系统配置”工具(在开始菜单或小娜搜索),查看引导项。
Windows10系统迁移后无法更新

注意!确认没问题之后,再重启。

(4)启用recovery

然后,再次用管理员运行命令提示符(cmd),执行以下指令。

reagentc /setreimage /path c:\Recovery\WindowsRE
reagentc /enable

如果还是提示reagentc.exe 无法更新引导配置数据。那么在命令行执行bcdedit /enum /v来查看引导项的guid。
Windows10系统迁移后无法更新

然后将这个guid复制一下。复制方法:命令行界面点鼠标右键,选择“标记”,然后用鼠标左键按住拖动选择文本。选择好后,按下回车复制。

之后,执行以下指令,注意有大括号

reagentc /enable /osguid {刚才复制的id}

执行成功之后,再用reagentc /info查看。

这个时候,应该显示是enabled了。那么Windows 10就可以更新了。

======================================================

另外:
如果使用路径c:\Recovery\WindowsRE有问题,也可以使用c:\Windows\System32\Recovery。操作之前,文件夹中原本就有的同名文件可以替换,没有关系。

Windows10系统迁移后无法更新

上一篇:从未来看 C#


下一篇:WPF DataContext与Binding的关系