概要
本文介绍如何在受支持的 Windows Server、Windows 客户端和 Azure 虚拟机上更新失败时修复 Windows 更新错误 0x800719E4 (ERROR_LOG_FULL) 。 其中介绍了常见原因,例如完整或损坏的事务日志、虚影网络适配器或驱动程序,以及配置错误的更新业务流程,并提供还原成功的 Windows 更新作的分步指南。
症状
尝试安装 Windows 更新时,安装失败并返回错误代码 0x800719E4 (ERROR_LOG_FULL)。 更新可能显示为安装。 但是,在安装结束时计算机重启后,安装会回滚。 Windows 更新历史记录可能会列出重复的失败安装。
出现此问题时,系统日志和 Component-Based 服务(CBS)日志可能包含以下任何错误消息:
Failed uninstalling driver updates [HRESULT = 0x800719e4 - ERROR_LOG_FULL]Startup: Failed while processing non-critical driver operations queuepatch not applicable或patch not reflecting after restart0x80070002 (ERROR_FILE_NOT_FOUND)0x800f0991 (PSFX_E_MISSING_PAYLOAD_FILE)0x800f0982 (PSFX_E_MATCHING_COMPONENT_NOT_FOUND)0x800F0920 (CBS_E_HANG_DETECTED)
原因
通常,此问题发生在累积更新或驱动程序相关的更新的安装或卸载期间。 此问题有多种可能的原因:
- 事务日志耗尽、损坏或清理不当。 \Windows\System32\Config\TxR 中的 Windows 事务日志(.blf 文件和 .regtrans-ms 文件)已满或损坏,然后阻止更新进程。 事务日志的清理不当可能会导致进一步的系统损坏和启动失败。
- “虚影”网络适配器或驱动程序。 在 Azure 中,频繁解除分配和重新分配的虚拟机可能会在系统注册表中累积“虚影”或隐藏的设备条目,这些条目虽然留在注册表中,但不再实际存在于硬件中。 在 Mellanox 设备中观察到此行为。 发生此行为时,驱动程序更新队列会增大大小,日志最终会溢出。
- 配置错误的更新编排。 更新编排的错误设置(例如不使用 客户托管 选项)可能会导致更新失败。
决议
重要
- 如果受影响的计算机是无法正确重启或无法使用 SSH 访问的 Windows VM,请确保可以使用 Azure 串行控制台访问 VM。
- 在解决此问题之前,请备份操作系统的磁盘。 有关 VM 此过程的信息,请参阅 “关于 Azure 虚拟机还原”。
- 使用管理权限运行这些步骤中提供的所有命令和脚本。
步骤 1:检查系统运行状况
若要检查系统运行状况并进行必要的修复,请打开管理命令提示符窗口,然后运行以下命令:
DISM /Online /Cleanup-Image /RestoreHealth
SFC /SCANNOW
检查输出中的错误或损坏。 如果这些命令进行修复,请重试安装更新。
步骤 2:清理事务日志
重要
清理事务错误日志可能会导致发生更多问题。
执行以下步骤:
-
如果受影响的计算机是无法启动的 VM,请创建救援 VM。 然后将操作系统磁盘从受影响的虚拟机移到救援虚拟机。
-
在救援 VM 或受影响的物理计算机上,打开管理命令提示符窗口,然后将工作目录更改为 <drive>:\Windows\System32\Config\TxR。
-
若要从事务日志文件中删除系统和隐藏属性,请运行以下命令:
attrib -h -s * -
若要删除事务日志文件,请运行以下命令:
del *.blf del *.regtrans-ms -
如果您使用救援 VM,请将操作系统磁盘移回到原始 VM。
-
启动 VM(或重启物理计算机),然后重试安装更新。
步骤 3:检查是否存在虚影网络适配器或驱动程序
有关此问题的详细信息,请参阅 Azure VM Ghosted NIC 验证和清理工具。
注释
累积虚影网络适配器或驱动程序的计算机可能继续以这种方式运行。 请考虑定期检查此问题,作为定期维护的一部分。
- 下载以下脚本:
-
若要检测任何虚影网络适配器或驱动程序,请打开管理 Windows PowerShell 命令提示符窗口,然后运行以下命令:
Set-ExecutionPolicy Bypass -Force .\Windows_GhostedNIC_Detection.ps1 -
如果脚本检测到虚影网络适配器或驱动程序,请运行以下命令:
Set-ExecutionPolicy Bypass -Force .\Windows_GhostedNIC_Removal.ps1 -
如果受影响的计算机具有 Mellanox 适配器或驱动程序,请运行以下命令:
Get-PnpDevice | Where-Object { $_.FriendlyName -like "*Mellanox*" } pnputil /remove-device <InstanceID>注释
在此命令中, <InstanceID> 表示设备的实例 ID 号。
-
重新启动计算机,然后重试安装更新。
数据收集
如果问题仍然存在,请考虑联系Microsoft支持部门。 在联系 Microsoft 支持人员以获取帮助之前,请使用故障排除脚本(TSS)诊断脚本收集数据,如 收集数据以分析和解决 Windows 维护、更新和按需功能中的问题 中所述。 将此信息附加到支持请求。