KB5034441安装失败,正在安装0%,不能继续更新
KB5034441:适用于 Windows 10 版本 21H2 和 22H2 的 Windows 恢复环境更新:2024 年 1 月 9 日
KB5034441这个补丁是管Windows 恢复环境更新的,也就是给WindowsRE分区打补丁。
这个补丁今天折腾我一整天,究其原因是大家的RE恢复分区空间不足260M以上,导致更新出现异常。(下图是我后期截图的,恢复分区680MB,大家仅供参考)
这个问题的解决方法:https://www.bilibili.com/read/cv29384882/
此博主的操作流程梳理:
1、关闭 WinRE功能 :运行 reagentc /disable
2、选择disk盘符:sel disk 0
3、识别系统盘,选择sel part 3
分区(系统盘)
4、运行 shrink desired=250 minimum=250
挪出part 3的250MB的空间,
5、识别WinRE分区,然后sel part 4
选择WinRE 分区,运行 delete partition override,删除 WinRE 分区,
6、然后重新创建一个part4空间,运行 create partition primary id=de94BBA4-06d1-4d40-a16a-bfd50179d6ac
7、隐藏盘符:gpt attributes =0x8000000000000001
8、格式化分区并标识为Windows RE tools,运行 format quick fs=ntfs label=”Windows RE tools”
9、确认已创建 WinRE 分区,运行 list vol
10、退出 diskpart,请运行 exit
11、重新启用 WinRE,请运行 reagentc /enable
这是微软官方的解读:部署Windows RE
UEFI:
使用 ID:PARTITION_MSFT_RECOVERY_GUID
(de94bba4-06d1-4d40-a16a-bfd50179d6ac) 将分区定义为恢复分区。
使用 GPT 属性:0x8000000000000001
使用两个属性的组合隐藏驱动器号并将其标记为必需:GPT_BASIC_DATA_ATTRIBUTE_NO_DRIVE_LETTER
和 GPT_ATTRIBUTE_PLATFORM_REQUIRED
。
而我的Windows RE磁盘空间充足680MB,所以就直接删除重建了一遍,少了挪移250M的操作。
查看代码
C:\WINDOWS\system32>diskpart
Microsoft DiskPart 版本 10.0.19041.3636
Copyright (C) Microsoft Corporation.
在计算机上: *************
DISKPART> list disk
磁盘 ### 状态 大小 可用 Dyn Gpt
-------- ------------- ------- ------- --- ---
磁盘 0 联机 476 GB 1024 KB *
DISKPART> sel disk 0
磁盘 0 现在是所选磁盘。
DISKPART> list part
分区 ### 类型 大小 偏移量
------------- ---------------- ------- -------
分区 1 系统 260 MB 1024 KB
分区 2 保留 16 MB 261 MB
分区 3 主要 200 GB 277 MB
分区 4 主要 275 GB 200 GB
分区 5 恢复 680 MB 476 GB
DISKPART> sel part 5
分区 5 现在是所选分区。
DISKPART> delete partition override
DiskPart 成功地删除了所选分区。
DISKPART> create partition primary id=de94BBA4-06d1-4d40-a16a-bfd50179d6ac
DiskPart 成功地创建了指定分区。
DISKPART> gpt attributes =0x8000000000000001
DiskPart 成功地将属性分配给选择的 GPT 分区。
DISKPART> format quick fs=ntfs label="Windows RE tools"
100 百分比已完成
DiskPart 成功格式化该卷。
DISKPART> list vol
卷 ### LTR 标签 FS 类型 大小 状态 信息
---------- --- ----------- ----- ---------- ------- --------- --------
卷 0 C Windows NTFS 磁盘分区 200 GB 正常 启动
卷 1 D NTFS 磁盘分区 275 GB 正常
卷 2 SYSTEM FAT32 磁盘分区 260 MB 正常 系统
* 卷 3 Windows RE NTFS 磁盘分区 680 MB 正常 已隐藏
DISKPART> exit
退出 DiskPart...
C:\WINDOWS\system32>reagentc /enable
REAGENTC.EXE: 操作成功。
在解决方案的最后一步,你可能会遇到这个问题:尝试使用reagentc/ennable命令时,提示未找到Windows RE映像。
尝试使用reagentc/ennable命令时,提示未找到Windows RE映像。
解决方案在这里:https://www.abackup.com/easybackup-tutorials/windows-re-image-was-not-found-666.html
然而你可能还会遇到这个问题:如何从微软原版ISO镜像中获取WinRE.wim映像:
下载你的Win10系统(我的是Win10 22h2系统)——右键——用资源管理器打开这个win10.iso镜像
这时,你的iso镜像就直接被Win10系统直接加载为你的新硬盘,比如我的就是E盘
1、WinRE.wim映像位于原版ISO镜像的install.wim中,比如我的具体路径为:E:\sources\install.wim
可以使用7z文件压缩工具(winrar不可以),直接从install.wim中提取而不必“解压”install.wim。
打开后,可以在这个路径下找到WinRE的恢复文件——Winre.wim文件
E:\sources\install.wim\1\Windows\System32\Recovery\
然后解压到C:\Recovery\WindowsRE
你可能也会遇到没有权限的这样的情况,这怎么办?没办法,我是把它提取到其他路径下的,然后用U盘到PE下把这个文件拷贝过去的
如果你压根没有C:\Recovery\WindowsRE这个路径,可以用md创建这个路径:
1、打开“开始”菜单,搜索“cmd”或者“命令提示符”,右键点击“命令提示符”并选择“以管理员身份运行”。
2、在打开的命令提示符窗口中输入以下命令:
md "C:\Recovery\WindowsRE"
需要注意的是,C:\Recovery\WindowsRE
这个路径通常是系统保留的恢复环境目录,它包含了 Windows 恢复环境(Windows Recovery Environment, WinRE)的文件,这是用于修复操作系统问题的工具集。
同理:C:\Recovery\WindowsRE
这个路径如果有了WinRE.wim
文件,就可以执行reagentc/ennable
命令了
解决了这个问题,再解决更新问题就小意思了:(上面提到的问题,你可能会跳过其中的一部分,甚至都不会遇到,别担心,我都提到了)
再次执行Windows更新,你就可以将KB5034441跟新成功了。如图:
执行更新前,建议先尝试此步,重置更新缓存:
1. 启动【开始】菜单,输入【cmd】,右键点击【命令提示符】,选择以【管理员身份】运行
2. 依次逐一输入下面命令,关停服务:(可小心复制贴上)
这条命令用来停止“Windows Update”服务。"wuauserv"是Windows Update服务的名称。这个服务负责处理Windows系统的自动更新,包括检查、下载和安装更新。
net stop wuauserv
这条命令用来停止“Background Intelligent Transfer Service(BITS)”。BITS服务负责在后台传输文件,例如,当用户下载大文件或Windows正在下载更新时,BITS会被使用到。它被设计为在系统资源紧张时降低其活动水平,以便不影响其他应用程序的性能。
net stop bits
3. 打开【资源浏览器】,前往【C:\Windows\SoftwareDistribution】,或者运行
%windir%/softwaredistribution
4. 删除【SoftwareDistribution】文件夹里的DataStore和Download文件夹,你也可以选择全部删除,后面有提到其他文件夹的功能。
5. 如果无法删除,您可以重启电脑后,再次尝试删除
6. 管理员运行cmd,依次逐一输入下面命令,重启服务: (可小心复制贴上)
net start wuauserv
net start bits
原理:
-
更新下载和安装问题:因为更新文件和数据不再存在,Windows Update 在检查更新时可能需要重新下载所有之前已下载但未安装的更新。
-
更新历史记录丢失:
DataStore
数据库包含了已安装更新的记录,删除它意味着 Windows Update 将失去关于已安装更新的某些信息。不过,这通常不会影响实际的更新状态,即已安装的更新仍然会保持在系统上。
扩展阅读:C:\Windows\SoftwareDistribution
各文件夹的功能介绍
-
DataStore - 这个文件夹用于存储Windows Update服务的数据库。这个数据库记录了关于系统更新的所有信息,包括已安装的更新、正在下载的更新、更新的历史记录以及更新的状态信息。换句话说,DataStore就像是Windows Update服务的“记忆”,它保存了所有与更新有关的数据,使得Windows Update能够知道哪些更新已经安装过,哪些是新的,以及哪些需要下载和安装。
-
Download - 这个文件夹则是Windows Update服务用于存储从微软服务器下载的更新文件的地方。每当Windows Update检查到有新的更新时,它会将这些更新文件下载到
Download
文件夹中。一旦下载完成,这些文件将被用于安装更新。该文件夹中可能还会包含更新的临时文件、更新包、更新的元数据以及其他与下载过程相关的文件。 -
SIH (Setup Installation History) - 这个文件夹包含了Windows Update安装历史的记录。每当一个更新被成功安装或安装失败时,相关信息都会被记录在SIH文件夹中的日志文件里。这些记录对于故障排除和审计特别有用,因为它们提供了更新安装情况的详细视图,包括更新的ID、安装时间、结果代码等。
-
SLS (Source Location Service) - SLS文件夹包含了Windows Update服务在本地硬盘上存储的更新源文件的元数据。这些元数据帮助Windows Update服务快速查找和识别可用的更新文件。SLS还用于跟踪哪些更新文件已经被复制到本地缓存,这样可以加速未来的更新安装过程,减少对微软服务器的依赖。
-
PostRebootEventCache.V2 这是一个与Windows Update流程相关的文件夹,它的主要作用是在系统重启之后继续处理那些在重启前已经开始但尚未完成的更新操作。
当Windows Update服务需要安装重大更新,尤其是那些需要系统重启的更新时,它会在重启前准备一些必要的信息和状态,存储在
PostRebootEventCache.V2
文件夹中。这些信息包括更新的状态、已下载的更新文件位置、以及更新所需的任何额外参数。在系统重启后,Windows Update服务会读取
PostRebootEventCache.V2
中的信息,继续执行重启前的更新流程,如完成更新的安装、清理临时文件、更新注册表等。这样可以确保即使在系统重启后,更新过程也能顺利进行至完成。 - ReportingEvents.log 是一个日志文件,记录了 Windows Update 报告代理 (WUA Reporting Agent) 的事件和活动。WUA Reporting Agent 负责收集关于系统更新状态的信息,并将其发送给 Microsoft 的更新服务器,以帮助 Microsoft 分析更新的部署情况,以及识别可能存在的问题。
ReportingEvents.log
中的日志条目可以包含以下信息:- 更新检查请求的时间戳
- 请求的更新类型(例如,安全更新、非安全更新)
- 发送到 Microsoft 服务器的报告数据摘要
- 任何遇到的错误或警告
- 与报告过程相关的调试信息