操作系统启动疑难解答 - Windows 更新安装容量

适用于:✔️ Windows VM

本文提供了相关步骤来解决 Azure 虚拟机 (VM) 中 Windows 更新 (KB) 收到错误且无响应的问题。

症状

使用启动诊断查看 VM 的屏幕截图时,会看到屏幕截图显示正在进行Windows 更新(KB),但出现错误代码失败:C01A001D。 下图显示了Windows 更新(KB)卡在消息“C01A001D应用更新操作 ##########(######)”消息:

错误代码的屏幕截图:应用Windows 更新时C01A001D。

原因

在这种情况下,操作系统 (OS) 无法完成 Windows 更新 (KB) 安装,因为无法在文件系统上创建核心文件。 根据此错误代码,操作系统无法将任何文件写入磁盘。

解决方案

流程概述

提示

如果 VM 有最近的备份,可以尝试 从备份 还原 VM 以修复启动问题。

  1. 创建并访问修复 VM。
  2. 磁盘上的可用空间。
  3. 启用串行控制台和内存转储收集。
  4. 重新生成 VM。

注意

遇到此错误时,来宾操作系统无法正常运行。 在脱机模式下进行故障排除来解决此问题。

创建并访问修复 VM

  1. 使用 VM 修复命令的步骤 1-3 来准备一个修复 VM。
  2. 使用远程桌面连接来连接到修复 VM。

释放磁盘上的空间

若要解决此问题:

  • 如果磁盘尚未达到最大大小 1 TB,请将其大小调整为 1 TB。
  • 执行磁盘清理。
  • 对驱动器进行碎片整理。
  1. 检查磁盘是否已满。 如果磁盘大小小于 1 TB,请使用 PowerShell 将其扩展到最大 1 TB。

  2. 如果磁盘已是 1 TB,则需要执行磁盘清理。

    1. 使用磁盘清理工具来释放空间。
  3. 完成大小调整和清理后,使用以下命令对驱动器进行碎片整理:

    defrag <LETTER ASSIGN TO THE OS DISK>: /u /x /g
    

碎片整理可能需要几个小时,具体取决于碎片级别。

启用串行控制台和内存转储收集

建议:在重新生成 VM 之前,请按照以下步骤启用串行控制台和内存转储收集:

  1. 以管理员身份打开提升的命令提示符会话。

  2. 使用 /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
    
  3. 验 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 反馈社区