解决 Windows 10 更新错误代码 0x80004005 0x000000b7

我的Windows 10现在的版本是1809, 需要更新到1909。第一次尝试, 我下载使用”易升”工具, 到了某个步骤的时候它提示我”无法使用安装程序在U盘上安装Windows”。经过搜索, 我发现参考资料[1]的方法有效, 将HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control下的PortableOperatingSystem字段改为0即可(原来是1)。之后我又试了很多次, 每次都是到最后会弹出”安装失败”的提示并退出。这个时候, 我发现”设置”中”Windows更新”出现了更新的提示, 在这里更新, 更新流程看似成功完成了, 并出现重启的提示。然而, 点击重启后, 我发现系统没有任何变化。再次打开”Windows更新”页面, 提示错误代码0x80004005。

经过搜索, 我得知上述更新的错误日志在C:\$WINDOWS.~BT\Sources\Panther\setuperr.log, 查阅日志发现里面和0x80004005有关的错误信息如下:

(...)
2020-03-15 14:23:47, Error                 SP     Error setting OS Switch Rollback checkpoint[gle=0x00000006]
2020-03-15 14:23:47, Error                 SP     Operation failed: Update Boot Code. Error: 0x80004005[gle=0x000000b7]
2020-03-15 14:23:47, Error                 SP     ExecuteOperations: Failed execution phase Finalize. Error: 0x80004005
2020-03-15 14:23:47, Error                 MOUPG  MoSetupPlatform: Finalize reported failure!
2020-03-15 14:23:47, Error                 MOUPG  MoSetupPlatform: Using action error code: [0x80004005]
(...)

看起来是更新引导信息的时候失败了。经过十分努力的搜索, 我发现了参考资料[2], 似乎是类似的问题。总结其中给出的最终解决方法为:

  1. 设法进入Windows恢复模式。可以做一个恢复U盘, 或者利用Windows 10安装光盘/U盘。
  2. 在恢复模式中打开命令行。
  3. 使用如下图所示的命令, 使用diskpart挂载启动分区, 命令中的分区号6需要换为list vol命令获得的相应启动分区号。启动分区一般数百MB大, FAT32格式。假设挂载盘符为F, 应当可以看见里面有EFI文件夹。输入”F:”切换到该盘。
  4. 执行ren EFI\Microsoft\Boot\BCD BCD.old来移走原来的启动文件, 便于彻底重建。后面都成功之后, 可以删除BCD.old文件。
  5. 执行bootrec /rebuildbcd, 按提示操作(输入Y)来重建BCD文件。
  6. 关闭命令行, 重启系统, 再次尝试下载安装更新应该就可以成功了。

该方法对我有效, 特此记录。

经过搜索和思考, 我感觉之前失败的原因可能是我用傲梅(AOMEI)分区助手克隆了硬盘, 由于它在克隆前需要启动到WinPE环境, 为此需要修改启动信息。然而, 修改后的启动信息Windows更新不能识别或正确处理, 于是报上述错误。

参考资料:

[1] https://answers.microsoft.com/en-us/windows/forum/all/windows-10-thinks-my-hd-is-a-usb-drive/23b70a79-66fe-4499-b0a0-ee86b636c470

[2] https://www.sysnative.com/forums/threads/tried-everything-windows-10-just-wont-install-updates.21013/page-2

另外, 发现了知乎上一篇神奇的文章https://zhuanlan.zhihu.com/p/85344048

发表评论

注意 - 你可以用以下 HTML tags and attributes:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

:wink: :twisted: :roll: :oops: :mrgreen: :lol: :idea: :evil: :cry: :arrow: :?: :-| :-x :-o :-P :-D :-? :) :( :!: 8-O 8)

本文链接:https://twd2.me/archives/14185QrCode