适用于:✔️ Windows VM
本文提供了相关步骤来解决 Azure 虚拟机 (VM) 中 Windows 更新 (KB) 收到错误且无响应的问题。
症状
使用启动诊断查看 VM 的屏幕截图时,会看到屏幕截图显示正在进行Windows 更新(KB),但出现错误代码失败:C01A001D。 下图显示了Windows 更新(KB)卡在消息“C01A001D应用更新操作 ##########(######)”消息:
原因
在这种情况下,操作系统 (OS) 无法完成 Windows 更新 (KB) 安装,因为无法在文件系统上创建核心文件。 根据此错误代码,操作系统无法将任何文件写入磁盘。
解决方案
流程概述
提示
如果 VM 有最近的备份,可以尝试 从备份 还原 VM 以修复启动问题。
- 创建并访问修复 VM。
- 磁盘上的可用空间。
- 启用串行控制台和内存转储收集。
- 重新生成 VM。
注意
遇到此错误时,来宾操作系统无法正常运行。 在脱机模式下进行故障排除来解决此问题。
创建并访问修复 VM
- 使用 VM 修复命令的步骤 1-3 来准备一个修复 VM。
- 使用远程桌面连接来连接到修复 VM。
释放磁盘上的空间
若要解决此问题:
- 如果磁盘尚未达到最大大小 1 TB,请将其大小调整为 1 TB。
- 执行磁盘清理。
- 对驱动器进行碎片整理。
检查磁盘是否已满。 如果磁盘大小小于 1 TB,请使用 PowerShell 将其扩展到最大 1 TB。
如果磁盘已是 1 TB,则需要执行磁盘清理。
- 使用磁盘清理工具来释放空间。
完成大小调整和清理后,使用以下命令对驱动器进行碎片整理:
defrag <LETTER ASSIGN TO THE OS DISK>: /u /x /g
碎片整理可能需要几个小时,具体取决于碎片级别。
启用串行控制台和内存转储收集
建议:在重新生成 VM 之前,请按照以下步骤启用串行控制台和内存转储收集:
以管理员身份打开提升的命令提示符会话。
使用 /ems 和 /emssettings 选项运行以下 BCDEdit 命令:
启用串行控制台:
bcdedit /store <volume-letter-containing-the-bcd-folder>:\boot\bcd /ems {<boot-loader-identifier>} ON bcdedit /store <volume-letter-containing-the-bcd-folder>:\boot\bcd /emssettings EMSPORT:1 EMSBAUDRATE:115200
验 OS 磁盘上的可用空间是否大于 VM 上的内存大小 (RAM)。
如果 OS 磁盘上没有足够的空间,请更改创建内存转储文件的位置,并将该位置引用附加到 VM 且有足够的可用空间的任何数据磁盘。 若要更改位置,请替换为
%SystemRoot%
数据磁盘的驱动器号,如F:
以下命令中的驱动器号。若要启用 OS 转储文件,请运行以下 加载、 添加和 卸载 命令,以使用 reg 工具实现建议的配置:
从损坏的 OS 磁盘加载注册表配置单元:
reg load HKLM\<broken-system> <volume-letter-of-broken-os-disk>:\windows\system32\config\SYSTEM
在 ControlSet001 上启用:
reg add "HKLM\<broken-system>\ControlSet001\Control\CrashControl" /v CrashDumpEnabled /t REG_DWORD /d 1 /f reg add "HKLM\<broken-system>\ControlSet001\Control\CrashControl" /v DumpFile /t REG_EXPAND_SZ /d "%SystemRoot%\MEMORY.DMP" /f reg add "HKLM\<broken-system>\ControlSet001\Control\CrashControl" /v NMICrashDump /t REG_DWORD /d 1 /f
在 ControlSet002 上启用:
reg add "HKLM\<broken-system>\ControlSet002\Control\CrashControl" /v CrashDumpEnabled /t REG_DWORD /d 1 /f reg add "HKLM\<broken-system>\ControlSet002\Control\CrashControl" /v DumpFile /t REG_EXPAND_SZ /d "%SystemRoot%\MEMORY.DMP" /f reg add "HKLM\<broken-system>\ControlSet002\Control\CrashControl" /v NMICrashDump /t REG_DWORD /d 1 /f
卸载损坏的 OS 磁盘:
reg unload HKLM\<broken-system>
重新生成 VM
使用 VM 修复命令的步骤 5 重新生成 VM。
联系我们寻求帮助
如果你有任何疑问或需要帮助,请创建支持请求或联系 Azure 社区支持。 你还可以将产品反馈提交到 Azure 反馈社区。