解决需要进行就地升级的 Azure 虚拟机 Windows 更新故障

Important

本文仅介绍Microsoft Azure 服务器和虚拟机(VM)的 Windows Server 升级过程。 若要升级未在 Azure VM 上运行的 Windows Server 实例,请参阅未 在 Azure 中运行 Windows Server 的 VM 就地升级

本文不介绍 Windows 客户端方案。

Important

在 Azure 中运行的虚拟机(VM)遇到 Windows 更新问题?

尝试诊断和解决 Azure VM 的 Windows 更新或 Windows OS 升级问题? 请尝试以下工具之一:

如果 VM 遇到性能问题,请先运行这些工具,然后再联系支持人员。

对于在 Azure 上运行的虚拟机(VM),某些 Windows 更新错误需要就地升级 OS 才能将服务堆栈还原到可以安装更新的正常状态。 其他选项(如 WinRE)可用于缓解此问题。 但是,除非 VM 连接到嵌套虚拟化环境,否则无法执行此类过程,如 在 Azure 中使用嵌套虚拟化对有故障的 Azure VM 进行故障排除中所述。 尽管进行了就地升级,但使用当前 OS 的安装介质重新安装系统。 本文提供了用于识别需要采取此操作的特定升级错误的步骤。

Prerequisites

确保具有执行就地升级的管理访问权限。

如何识别错误

若要标识 Windows 更新错误,请检查C:\Windows\Logs\CBSCBS.logCbsPersist_XXXXXXXXXXXXXX.log的文件路径或 CbsPersist_XXXXXXXXXXXXXX.cab 文件中是否存在以下错误条目之一。

错误代码 符号名称 描述/备注
0x8007000D ERROR_INVALID_DATA 数据无效。 通常由损坏的 Windows 更新元数据引起。
0x800705B9 ERROR_XML_PARSE_ERROR XML 分析错误。 可能与服务堆栈损坏相关。
0x800736B3 ERROR_SXS_ASSEMBLY_NOT_FOUND(未找到程序集) 找不到程序集。 通常由组件存储损坏引起的。
0x80073701 错误_SXS_ASSEMBLY_MISSING (组件缺失) 缺少组件。 服务或组件存储错误的典型情况。
0x80073712 ERROR_SXS_COMPONENT_STORE_CORRUPT(组件存储损坏) 组件存储已损坏。
0x800F080D CBS_E_MANIFEST_INVALID_ITEM CBS 清单无效。 指向组件损坏。
0x800F081F CBS_E_SOURCE_MISSING(源缺失) 缺少源文件。 Windows 找不到要完成更新的文件。
0x800F0830 CBS_E_IMAGE_UNSERVICEABLE (图像不可用) 图像无法使用。 通常需要修复或 IPU。
0x800F0831 CBS_E_存储损坏 更新包损坏(特别是在组件存储中)。
0x800F0900 CBS_E_XML_PARSER_FAILURE(CBS XML解析器错误) 泛型 XML 分析失败。 可能表示严重的服务问题。
0x800F0904 CBS_E_MORE_THAN_ONE_ACTIVE_EDITION 更新元数据中的配置无效。
0x800F0982 PSFX_E_MATCHING_COMPONENT_NOT_FOUND(匹配组件未找到) 通常与累积更新失败相关联。
0x800F0984 PSFX_E_MATCHING_BINARY_MISSING 存在匹配组件目录,但缺少二进制文件。
0x800F0985 PSFX_E_APPLY_REVERSE_DELTA_FAILED 可能与缺少清单或负载相关。
0x800F0986 PSFX_E_APPLY_FORWARD_DELTA_FAILED 通常需要对服务堆栈进行修复或对IPU进行处理。
0x800F0987 PSFX_E_NULL_DELTA_HYDRATION_FAILED(空增量配置失败) 包损坏或集成失败。
0x800F0988 PSFX_E_INVALID_DELTA_COMBINATION 可能与特定更新分支或增量补丁的问题相关。
0x800F0989 PSFX_E_REVERSE_DELTA_MISSING 在累积更新失败时出现。 IPU 可能是唯一的解决方法。
0x800F0922 CBS_E_INSTALLERS_FAILED 处理高级安装程序和泛型命令失败。
0x800F0805 CBS_E_INVALID_PACKAGE(无效的程序包) 包无效。 通常是下载或元数据损坏问题。
0x800F0991 PSFX_E_缺少有效负载文件 (Missing Payload File) 与更新排序或依赖项错误相关联。
0x800F0905 CBS_E_NO_ACTIVE_EDITION E_DO_INHERITANCE_CONTEXT_NEEDE
0x8007371B 事务关闭未完成错误 服务操作不完整或已中止。
0x80242016 WU_E_UH_POSTREBOOTUNEXPECTEDSTATE 完成重新启动后作后的更新状态是意外的。
0x800F0911 CBS_E_SOURCE_MODIFIED 包源是在上一个会话中修改或移动的,必须重新加载。
0x80071AB1 ERROR_LOG_GROWTH_FAILED 尝试在事务资源管理器的日志中创建空间失败。
Example of error 0x80073712 - ERROR_SXS_COMPONENT_STORE_CORRUPT

2025-02-27 08:58:35, Error                 CSI    0000000a@2025/2/27:11:58:35.891 (F) Attempting to mark store corrupt with category [l:21 ml:22]'CorruptComponentValue'[gle=0x80004005]
2025-02-27 08:58:35, Error                 CSI    0000000b (F) STATUS_SXS_COMPONENT_STORE_CORRUPT #62038# from CCSDirectTransaction::OperateEnding at index 0 of 1 operations, disposition 0[gle=0xd015001a]
2025-02-27 08:58:35, Error                 CSI    0000000c (F) HRESULT_FROM_WIN32(14098) #61875# from Windows::ServicingAPI::CCSITransaction::ICSITransaction2_AddComponents(Flags = 1, a = @0x29dd79f20d0, mp = @0x29dd79f28d0, disp = 0)[gle=0x80073712]
2025-02-27 08:58:35, Info                  CBS    Failed to add one or more deployment [HRESULT = 0x80073712 - ERROR_SXS_COMPONENT_STORE_CORRUPT]
2025-02-27 08:58:35, Info                  CBS    Failed to bulk stage deployment manifest and pin deployment for package:Wrapper-DDDA51604A99B1668F4E7D804F8F81E7558D0FEB4EA0DE087D6BF2DE607411F0~31bf3856ad364e35~amd64~~10.0.20348.3081 [HRESULT = 0x80073712 - ERROR_SXS_COMPONENT_STORE_CORRUPT]
2025-02-27 08:58:35, Info                  CBS    CommitPackagesState: Started persisting state of packages
2025-02-27 08:58:35, Info                  CBS    CommitPackagesState: Completed persisting state of packages
2025-02-27 08:58:35, Info                  CSI    0000000d@2025/2/27:11:58:35.891 CSI Transaction @0x29dd717d150 destroyed
2025-02-27 08:58:35, Info                  CBS    Perf: Resolve chain complete.
2025-02-27 08:58:35, Info                  CBS    Failed to resolve execution chain. [HRESULT = 0x80073712 - ERROR_SXS_COMPONENT_STORE_CORRUPT]
2025-02-27 08:58:35, Error                 CBS    Failed to process single phase execution. [HRESULT = 0x80073712 - ERROR_SXS_COMPONENT_STORE_CORRUPT]
2025-02-27 08:58:35, Info                  CBS    WER: Generating failure report for package: Package_for_ServicingStack_3081~31bf3856ad364e35~amd64~~20348.3081.1.1, status: 0x80073712, failure source: Resolve, start state: Installed, target state: Installed, client id: WindowsUpdateAgent
2025-02-27 08:58:35, Info                  CBS    Not able to query DisableWerReporting flag.  Assuming not set... [HRESULT = 0x80070002 - ERROR_FILE_NOT_FOUND]

Cause

Azure VM 在 Windows 服务堆栈中遇到内部损坏。 此堆栈负责管理更新和系统组件。 当由于缺少文件、无效配置或损坏的元数据而损坏时,Windows 将无法再正确应用更新或服务作系统。

Important

在 Azure 中运行的虚拟机(VM)遇到 Windows 更新问题?

尝试诊断和解决 Azure VM 的 Windows 更新或 Windows OS 升级问题? 请尝试以下工具之一:

如果 VM 遇到性能问题,请先运行这些工具,然后再联系支持人员。

Azure VM 的解决方法

若要解决此问题,建议在 Azure VM 中就地升级 Windows Server。 此过程会重新安装 OS,同时保留数据、应用和设置。

故障排除说明

  1. 查看先决条件:

    1. 请确保对 VM 具有管理访问权限。
    2. 验证 VM 是否在 Azure 上运行。
  2. 备份 VM。 使用 Azure 备份或拍摄快照,以确保可以根据需要还原 VM。

  3. 查看以下日志了解已知的错误代码:

    • CBS.log
    • CbsPersist_*.log
    • CbsPersist_*.cab
  4. 请按照在 Azure 中运行 Windows Server 的 VM 的就地升级指南操作。

  5. 运行升级:

    1. 在提升的命令提示符下,切换到存有 ISO 的驱动器 drive with ISO
    2. 输入 setup.exe /auto upgrade /dynamicupdate 禁用。
    3. 出现提示时,选择“ 保留个人文件和应用”。
    4. 若要完成升级,请按照屏幕上的说明进行作。
  6. 升级后检查

    1. 验证系统功能。
    2. 根据需要重新应用任何自定义配置或策略。
    3. 重新启用任何服务(例如 Azure 备份监视代理)(如果它们已暂停)。

References

  1. 未在 Azure 中运行 Windows Server 的 VM 就地升级
  2. 使用 Azure 中的嵌套虚拟化排查故障 Azure VM
  3. Azure 中运行 Windows Server 的 VM 的就地升级