Important
本文仅介绍Microsoft Azure 服务器和虚拟机(VM)的 Windows Server 升级过程。 若要升级未在 Azure VM 上运行的 Windows Server 实例,请参阅未 在 Azure 中运行 Windows Server 的 VM 就地升级。
本文不介绍 Windows 客户端方案。
Important
在 Azure 中运行的虚拟机(VM)遇到 Windows 更新问题?
尝试诊断和解决 Azure VM 的 Windows 更新或 Windows OS 升级问题? 请尝试以下工具之一:
- Azure VM Windows 更新错误检测工具 用于诊断特定的 Windows 更新错误。
- Azure VM Windows 更新重置工具 ,用于重置 Windows 服务堆栈。
- Azure VM Windows OS 升级评估工具 用于验证 OS 升级路径和任何已知问题。
如果 VM 遇到性能问题,请先运行这些工具,然后再联系支持人员。
对于在 Azure 上运行的虚拟机(VM),某些 Windows 更新错误需要就地升级 OS 才能将服务堆栈还原到可以安装更新的正常状态。 其他选项(如 WinRE)可用于缓解此问题。 但是,除非 VM 连接到嵌套虚拟化环境,否则无法执行此类过程,如 在 Azure 中使用嵌套虚拟化对有故障的 Azure VM 进行故障排除中所述。 尽管进行了就地升级,但使用当前 OS 的安装介质重新安装系统。 本文提供了用于识别需要采取此操作的特定升级错误的步骤。
Prerequisites
确保具有执行就地升级的管理访问权限。
如何识别错误
若要标识 Windows 更新错误,请检查C:\Windows\Logs\CBSCBS.log、CbsPersist_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 升级问题? 请尝试以下工具之一:
- Azure VM Windows 更新错误检测工具 用于诊断特定的 Windows 更新错误。
- Azure VM Windows 更新重置工具 ,用于重置 Windows 服务堆栈。
- Azure VM Windows OS 升级评估工具 用于验证 OS 升级路径和任何已知问题。
如果 VM 遇到性能问题,请先运行这些工具,然后再联系支持人员。
Azure VM 的解决方法
若要解决此问题,建议在 Azure VM 中就地升级 Windows Server。 此过程会重新安装 OS,同时保留数据、应用和设置。
故障排除说明
查看先决条件:
- 请确保对 VM 具有管理访问权限。
- 验证 VM 是否在 Azure 上运行。
备份 VM。 使用 Azure 备份或拍摄快照,以确保可以根据需要还原 VM。
查看以下日志了解已知的错误代码:
CBS.logCbsPersist_*.logCbsPersist_*.cab
运行升级:
- 在提升的命令提示符下,切换到存有 ISO 的驱动器 drive with ISO。
- 输入 setup.exe /auto upgrade /dynamicupdate 禁用。
- 出现提示时,选择“ 保留个人文件和应用”。
- 若要完成升级,请按照屏幕上的说明进行作。
升级后检查
- 验证系统功能。
- 根据需要重新应用任何自定义配置或策略。
- 重新启用任何服务(例如 Azure 备份 或 监视代理)(如果它们已暂停)。