适用于:✔️ Windows VM
本文提供了解决在 Azure VM 中启动期间关键进程死亡的问题的步骤。
症状
使用 启动诊断 查看 VM 的屏幕截图时,会看到屏幕截图显示错误 #0x000000EF 消息 “严重进程死亡”。
原因
通常,这是因为在启动期间关键系统进程失败。 有关关键进程问题的详细信息,请参阅“Bug 检查0xEF:CRITICAL_PROCESS_DIED”。
解决方案
流程概述
提示
如果 VM 有最近的备份,可以尝试 从备份 还原 VM 以修复启动问题。
- 创建和访问修复 VM。
- 修复任何 OS 损坏。
- 建议:在重新生成 VM 之前,请启用串行控制台和内存转储收集。
- 重新生成 VM。
注意
遇到此启动错误时,来宾 OS 无法运行。 你将在脱机模式下进行故障排除,以解决此问题。
创建并访问修复 VM
- 使用 VM 修复命令的步骤 1-3 来准备一个修复 VM。
- 使用远程桌面连接来连接到修复 VM。
修复任何 OS 损坏
打开权限提升的命令提示符。
运行以下系统文件检查器(SFC)命令:
sfc /scannow /offbootdir=<BOOT DISK DRIVE>:\ /offwindir=<BROKEN DISK DRIVE>:\windows
- 断开的 VM 的启动分区所在的
<BROKEN DISK DRIVE>
位置<BOOT DISK DRIVE>
是断开的 VM 的 OS 分区。 将大于/小于符号以及包含的文本替换为相应的字母,例如“< 此处 >的文本”。
- 断开的 VM 的启动分区所在的
接下来,使用 VM 修复命令 的步骤 5 重新组合 VM,并查看 VM 是否已启动。
如果 VM 仍未启动,请继续收集内存转储文件。
收集内存转储文件
如果问题在运行 SFC 后仍然存在,则需要分析内存转储文件来确定问题的原因。 若要收集内存转储文件,请执行以下步骤:
步骤 1:找到转储文件并提交支持票证
第 1 部分:将 OS 磁盘附加到恢复 VM
创建受影响 VM 的 OS 磁盘的快照以创建备份。 有关详细信息,请参阅 创建虚拟硬盘的快照。
使用远程桌面协议(RDP)远程连接到恢复 VM。
如果受影响的 VM 的 OS 磁盘已加密,请关闭加密,然后再转到下一步。 有关详细信息,请参阅 解密加密的 OS 磁盘。
第 2 部分:找到转储文件并提交支持票证
在恢复 VM 上,转到 附加 OS 磁盘上的 Windows 文件夹。 例如,如果分配给附加 OS 磁盘的驱动器号为 F,请转到 F:\Windows。
找到Memory.dmp文件,然后提交支持票证并附加转储文件。
如果找不到转储文件,请转到后续步骤以启用转储日志和串行控制台,然后重现问题。
步骤 2:启用转储日志和串行控制台
重要
此部分(或称方法或任务)介绍了修改注册表的步骤。 但是,注册表修改不当可能会出现严重问题。 因此,按以下步骤操作时请务必谨慎。 出于防范目的,请在修改之前备份注册表,以便在出现问题时还原注册表。 有关如何备份和还原注册表的详细信息,请参阅:如何备份和还原 Windows 中的注册表。
若要启用转储日志和串行控制台,请执行以下步骤:
以管理员身份打开提升的命令提示符会话。
使用 /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 之前,请启用串行控制台和内存转储收集
若要启用串行控制台和内存转储收集,请执行以下步骤:
以管理员身份打开提升的命令提示符会话。
使用 /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 反馈社区。