Windows 停止错误 - #0x000000EF“关键进程已死亡”

本文提供的步骤可解决在 Azure VM 中启动期间关键进程死亡的问题。

症状

使用 启动诊断 查看 VM 的屏幕截图时,会看到屏幕截图显示错误 #0x000000EF 并显示消息 “严重进程死亡”。

屏幕截图显示你的电脑遇到问题,需要重启。我们只是收集一些错误信息,然后你可以重启。

原因

通常,这是由于启动期间关键系统进程失败所致。 有关关键进程问题的详细信息,请参阅“Bug 检查0xEF:CRITICAL_PROCESS_DIED”。

解决方案

进程概述

提示

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

  1. 创建和访问修复 VM。
  2. 修复任何 OS 损坏。
  3. 建议:在重新生成 VM 之前,请启用串行控制台和内存转储收集。
  4. 重新生成 VM。

注意

遇到此启动错误时,来宾 OS 无法正常运行。 你将在脱机模式下进行故障排除以解决此问题。

创建和访问修复 VM

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

修复任何 OS 损坏

  1. 打开提升的命令提示符。

  2. (SFC) 命令运行以下系统文件检查器:

    sfc /scannow /offbootdir=<BOOT DISK DRIVE>:\ /offwindir=<BROKEN DISK DRIVE>:\windows

    • 其中 <BOOT DISK DRIVE> 是损坏的 VM 的启动分区,是 <BROKEN DISK DRIVE> 损坏 VM 的 OS 分区。 将大于/小于符号及其中包含的文本(例如“此处>的文本”<)替换为相应的字母。
  3. 接下来,使用 VM 修复命令的步骤 5 重新组合 VM 并查看它是否启动。

  4. 如果 VM 仍未启动,请继续收集内存转储文件。

收集内存转储文件

如果在运行 SFC 后问题仍然存在,则需要分析内存转储文件以确定问题的原因。 若要收集内存转储文件,请执行以下步骤:

将 OS 磁盘附加到新的修复 VM

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

找到转储文件并提交支持票证

  1. 在修复 VM 上,转到附加的 OS 磁盘中的 windows 文件夹。 如果分配给附加 OS 磁盘的驱动程序号为 F,则需要转到 F:\Windows

  2. 找到 memory.dmp 文件,然后使用内存转储文件 提交支持票证

    注意

    如果找不到转储文件,请完成以下步骤以启用内存转储收集和串行控制台,然后返回到此部分并重复上述任务中的步骤以收集内存转储文件。

若要启用串行控制台和内存转储收集,请执行以下步骤:

  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 反馈社区提交产品反馈。