Skip to content

Commit f862213

Browse files
authored
Merge pull request #109183 from v-miegge/v-miegge/troubleshooting-guide-windows-boot-manager-menu
CI 115924/927 - Created files, images, TOC entries
2 parents 90ee97e + 97c2f49 commit f862213

File tree

5 files changed

+284
-0
lines changed

5 files changed

+284
-0
lines changed
25.8 KB
Loading
39 KB
Loading

articles/virtual-machines/troubleshooting/toc.yml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,8 @@
7474
href: troubleshoot-common-blue-screen-error.md
7575
- name: Checking file system errors
7676
href: troubleshoot-check-disk-boot-error.md
77+
- name: Critical process disabled
78+
href: troubleshoot-guide-critical-process-died.md
7779
- name: Critical service failed
7880
href: troubleshoot-critical-service-failed-boot-error.md
7981
- name: Not a bootable disk
@@ -84,6 +86,8 @@
8486
href: troubleshoot-stuck-updating-boot-error.md
8587
- name: VM startup is stuck
8688
href: troubleshoot-vm-boot-configure-update.md
89+
- name: VM cannot boot due to windows boot manager
90+
href: troubleshoot-guide-windows-boot-manager-menu.md
8791
- name: Cannot connect to my VM
8892
items:
8993
- name: RDP
Lines changed: 127 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,127 @@
1+
---
2+
title: Windows stop error - #0x000000EF "critical process died"
3+
description:
4+
services: virtual-machines-windows
5+
documentationcenter: ''
6+
author: v-miegge
7+
manager: dcscontentpm
8+
editor: ''
9+
tags: azure-resource-manager
10+
ms.assetid: 5b3ed56a-5a11-4ff9-9ee8-76aea4a5689b
11+
ms.service: virtual-machines-windows
12+
ms.workload: infrastructure-services
13+
ms.tgt_pltfrm: na
14+
ms.topic: troubleshooting
15+
ms.date: 03/26/2020
16+
ms.author: v-mibufo
17+
18+
---
19+
20+
# Windows Stop Error - #0x000000EF "Critical Process Died"
21+
22+
This article provides steps to resolve issues where a critical process dies during boot in an Azure VM.
23+
24+
## Symptom
25+
26+
When you use [Boot diagnostics](https://docs.microsoft.com/azure/virtual-machines/troubleshooting/boot-diagnostics) to view the screenshot of the VM, you will see that the screenshot displays the error *#0x000000EF* with the message *Critical Process Died*.
27+
28+
!["Your PC ran into a problem and needs to restart. We're just collecting some error info, and then you can restart. (##% complete) If you'd like to know more, you can search online later for this error: 0x000000EF"](media/troubleshoot-guide-critical-process-died/1.jpg)
29+
30+
## Cause
31+
32+
Usually, this is due to a critical system process failing during boot. You can read more about critical process issues at "[Bug Check 0xEF: CRITICAL_PROCESS_DIED](https://docs.microsoft.com/windows-hardware/drivers/debugger/bug-check-0xef--critical-process-died)".
33+
34+
## Solution
35+
36+
### Process Overview:
37+
38+
1. Create and Access a Repair VM.
39+
2. Fix any OS Corruption.
40+
3. **Recommended**: Before you rebuild the VM, enable serial console and memory dump collection.
41+
4. Rebuild the VM.
42+
43+
> [!NOTE]
44+
> When encountering this boot error, the Guest OS is not operational. You will be troubleshooting in Offline mode to resolve this issue.
45+
46+
### Create and Access a Repair VM
47+
48+
1. Use [steps 1-3 of the VM Repair Commands](https://docs.microsoft.com/azure/virtual-machines/troubleshooting/repair-windows-vm-using-azure-virtual-machine-repair-commands) to prepare a Repair VM.
49+
2. Using Remote Desktop Connection connect to the Repair VM.
50+
51+
### Fix any OS Corruption
52+
53+
1. Open an elevated command prompt.
54+
2. Run the following System File Checker (SFC) command:
55+
56+
`sfc /scannow /offbootdir=<BOOT DISK DRIVE>:\ /offwindir=<BROKEN DISK DRIVE>:\windows`
57+
58+
* Where < BOOT DISK DRIVE > is the boot volume of the Repair VM (typically "C:") and < BROKEN DISK DRIVE > will be the drive letter for the attached disk from the broken VM. Replace the greater than / less than symbols as well as the text contained within them, e.g. "< text here >", with the appropriate letter.
59+
60+
3. Next, use [step 5 of the VM Repair Commands](https://docs.microsoft.com/azure/virtual-machines/troubleshooting/repair-windows-vm-using-azure-virtual-machine-repair-commands#repair-process-example) to reassemble the VM and see if it boots.
61+
4. If the VM is still not booting, then continue to collect the memory dump file.
62+
63+
### Collect the Memory Dump File
64+
65+
If the issue persists after running SFC, analysis of a memory dump file will be required to determine the cause of the issue. To collect the memory dump file, follow these steps:
66+
67+
### Attach the OS disk to a new Repair VM
68+
69+
1. Use [steps 1-3 of the VM Repair Commands](https://docs.microsoft.com/azure/virtual-machines/troubleshooting/repair-windows-vm-using-azure-virtual-machine-repair-commands) to prepare a new Repair VM.
70+
2. Using Remote Desktop Connection connect to the Repair VM.
71+
72+
### Locate the dump file and submit a support ticket
73+
74+
3. On the repair VM, go to windows folder in the attached OS disk. If the driver letter that is assigned to the attached OS disk is *F*, you need to go to *F:\Windows*.
75+
4. Locate the *memory.dmp* file, and then [submit a support ticket](https://portal.azure.com/?#blade/Microsoft_Azure_Support/HelpAndSupportBlade) with the memory dump file.
76+
77+
> [!NOTE]
78+
> If you cannot find the dump file, complete the below steps to enable memory dump collection and Serial Console, then return to this section and repeat the steps in the task above to collect the memory dump file.
79+
80+
### Recommended: Before you rebuild the VM, enable serial console and memory dump collection
81+
82+
To enable memory dump collection and Serial Console, run the following script:
83+
84+
1. Open an elevated command prompt session (Run as administrator).
85+
2. Run the following commands:
86+
87+
Enable Serial Console
88+
89+
`bcdedit /store <VOLUME LETTER WHERE THE BCD FOLDER IS>:\boot\bcd /ems {<BOOT LOADER IDENTIFIER>} ON`
90+
91+
`bcdedit /store <VOLUME LETTER WHERE THE BCD FOLDER IS>:\boot\bcd /emssettings EMSPORT:1 EMSBAUDRATE:115200`
92+
93+
Replace any greater than or less than symbols as well as the text within them, e.g. "< text here >".
94+
95+
3. Verify that the free space on the OS disk is as much as the memory size (RAM) on the VM.
96+
97+
If there's not enough space on the OS disk, you should change the location where the memory dump file will be created and refer that to any data disk attached to the VM that has enough free space. To change the location, replace "%SystemRoot%" with the drive letter (for example, "F:") of the data disk in the below commands.
98+
99+
#### Suggested configuration to enable OS Dump
100+
101+
**Load Broken OS Disk**:
102+
103+
`REG LOAD HKLM\BROKENSYSTEM <VOLUME LETTER OF BROKEN OS DISK>:\windows\system32\config\SYSTEM`
104+
105+
**Enable on ControlSet001:**
106+
107+
`REG ADD "HKLM\BROKENSYSTEM\ControlSet001\Control\CrashControl" /v CrashDumpEnabled /t REG_DWORD /d 1 /f`
108+
109+
`REG ADD "HKLM\BROKENSYSTEM\ControlSet001\Control\CrashControl" /v DumpFile /t REG_EXPAND_SZ /d "%SystemRoot%\MEMORY.DMP" /f`
110+
111+
`REG ADD "HKLM\BROKENSYSTEM\ControlSet001\Control\CrashControl" /v NMICrashDump /t REG_DWORD /d 1 /f`
112+
113+
**Enable on ControlSet002:**
114+
115+
`REG ADD "HKLM\BROKENSYSTEM\ControlSet002\Control\CrashControl" /v CrashDumpEnabled /t REG_DWORD /d 1 /f`
116+
117+
`REG ADD "HKLM\BROKENSYSTEM\ControlSet002\Control\CrashControl" /v DumpFile /t REG_EXPAND_SZ /d "%SystemRoot%\MEMORY.DMP" /f`
118+
119+
`REG ADD "HKLM\BROKENSYSTEM\ControlSet002\Control\CrashControl" /v NMICrashDump /t REG_DWORD /d 1 /f`
120+
121+
**Unload Broken OS Disk:**
122+
123+
`REG UNLOAD HKLM\BROKENSYSTEM`
124+
125+
### Rebuild the Original VM
126+
127+
Use [step 5 of the VM Repair Commands](https://docs.microsoft.com/azure/virtual-machines/troubleshooting/repair-windows-vm-using-azure-virtual-machine-repair-commands#repair-process-example) to reassemble the VM.
Lines changed: 153 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,153 @@
1+
---
2+
title: Windows virtual machine cannot boot due to windows boot manager
3+
description: This article provides steps to resolve issues where Windows Boot Manager prevents the booting of an Azure Virtual Machine.
4+
services: virtual-machines-windows
5+
documentationcenter: ''
6+
author: v-miegge
7+
manager: dcscontentpm
8+
editor: ''
9+
tags: azure-resource-manager
10+
ms.assetid: a97393c3-351d-4324-867d-9329e31b3598
11+
ms.service: virtual-machines-windows
12+
ms.workload: infrastructure-services
13+
ms.tgt_pltfrm: na
14+
ms.topic: troubleshooting
15+
ms.date: 03/26/2020
16+
ms.author: v-mibufo
17+
18+
---
19+
20+
# Windows VM cannot boot due to Windows Boot Manager
21+
22+
This article provides steps to resolve issues where Windows Boot Manager prevents the booting of an Azure Virtual Machine (VM).
23+
24+
## Symptom
25+
26+
The VM is stuck waiting upon a user prompt and doesn't boot unless manually instructed to.
27+
28+
When you use [Boot diagnostics](https://docs.microsoft.com/azure/virtual-machines/troubleshooting/boot-diagnostics) to view the screenshot of the VM, you'll see that the screenshot displays the Windows Boot Manager with the message *Choose an operating system to start, or press TAB to select a tool:*.
29+
30+
Figure 1
31+
32+
![Windows Boot Manager stating "Choose an operating system to start, or press TAB to select a tool:"](media/troubleshoot-guide-windows-boot-manager-menu/1.jpg)
33+
34+
## Cause
35+
36+
The error is due to a BCD flag *displaybootmenu* in the Windows Boot Manager. When the flag is enabled, Windows Boot Manager prompts the user, during the booting process, to select which loader they wish to run, causing a boot delay. In Azure, this feature can add to the time it takes to boot a VM.
37+
38+
## Solution
39+
40+
Process Overview:
41+
42+
1. Configure for Faster Boot Time using Serial Console.
43+
2. Create and Access a Repair VM.
44+
3. Configure for Faster Boot Time on a Repair VM.
45+
4. **Recommended**: Before you rebuild the VM, enable serial console and memory dump collection.
46+
5. Rebuild the VM.
47+
48+
### Configure for Faster Boot Time using Serial Console
49+
50+
If you have access to serial console, there are two ways you can achieve faster boot times. Either decrease the *displaybootmenu* wait time, or remove the flag altogether.
51+
52+
1. Follow directions to access [Azure Serial Console for Windows](https://docs.microsoft.com/azure/virtual-machines/troubleshooting/serial-console-windows) to gain access to the text-based console.
53+
54+
> [!NOTE]
55+
> If you're unable to access serial console, skip ahead to [Create and Access a Repair VM](#create-and-access-a-repair-vm).
56+
57+
2. **Option A**: Reduce Waiting Time
58+
59+
a. Waiting time is set at 30 seconds by default but can be changed to a faster time (e.g. 5 seconds).
60+
61+
b. Use the following command in serial console to adjust the timeout value:
62+
63+
`bcdedit /set {bootmgr} timeout 5`
64+
65+
3. **Option B**: Remove the BCD Flag
66+
67+
a. To prevent the Display Boot Menu prompt altogether, enter the following command:
68+
69+
`bcdedit /deletevalue {bootmgr} displaybootmenu`
70+
71+
> [!NOTE]
72+
> If you were unable to use serial console to configure a faster boot time in the steps above, you can instead continue with the following steps. You'll now be troubleshooting in offline mode to resolve this issue.
73+
74+
### Create and Access a Repair VM
75+
76+
1. Use [steps 1-3 of the VM Repair Commands](https://docs.microsoft.com/azure/virtual-machines/troubleshooting/repair-windows-vm-using-azure-virtual-machine-repair-commands) to prepare a Repair VM.
77+
2. Use Remote Desktop Connection connect to the Repair VM.
78+
79+
### Configure for Faster Boot Time on a Repair VM
80+
81+
1. Open an elevated command prompt.
82+
2. Enter the following to enable DisplayBootMenu:
83+
84+
Use this command for **Generation 1 VMs**:
85+
86+
`bcdedit /store <VOLUME LETTER WHERE THE BCD FOLDER IS>:\boot\bcd /set {bootmgr} displaybootmenu yes`
87+
88+
Use this command for **Generation 2 VMs**:
89+
90+
`bcdedit /store <VOLUME LETTER OF EFI SYSTEM PARTITION>:EFI\Microsoft\boot\bcd /set {bootmgr} displaybootmenu yes`
91+
92+
Replace any greater than or less than symbols as well as the text within them, e.g. "< text here >".
93+
94+
3. Change the timeout value to 5 seconds:
95+
96+
Use this command for **Generation 1 VMs**:
97+
98+
`bcdedit /store <VOLUME LETTER WHERE THE BCD FOLDER IS>:\boot\bcd /set {bootmgr} timeout 5`
99+
100+
Use this command for **Generation 2 VMs**:
101+
102+
`bcdedit /store <VOLUME LETTER OF EFI SYSTEM PARTITION>:EFI\Microsoft\boot\bcd /set {bootmgr} timeout 5`
103+
104+
Replace any greater than or less than symbols as well as the text within them, e.g. "< text here >".
105+
106+
### Recommended: Before you rebuild the VM, enable serial console and memory dump collection
107+
108+
To enable memory dump collection and Serial Console, run the following script:
109+
110+
1. Open an elevated command prompt session (Run as administrator).
111+
2. Run the following commands:
112+
113+
Enable Serial Console
114+
115+
`bcdedit /store <VOLUME LETTER WHERE THE BCD FOLDER IS>:\boot\bcd /ems {<BOOT LOADER IDENTIFIER>} ON`
116+
117+
`bcdedit /store <VOLUME LETTER WHERE THE BCD FOLDER IS>:\boot\bcd /emssettings EMSPORT:1 EMSBAUDRATE:115200`
118+
119+
Replace any greater than or less than symbols as well as the text within them, e.g. "< text here >".
120+
121+
3. Verify that the free space on the OS disk is as much as the memory size (RAM) on the VM.
122+
123+
If there's not enough space on the OS disk, you should change the location where the memory dump file will be created and refer that to any data disk attached to the VM that has enough free space. To change the location, replace "%SystemRoot%" with the drive letter (for example, "F:") of the data disk in the below commands.
124+
125+
#### Suggested configuration to enable OS Dump
126+
127+
**Load Broken OS Disk**:
128+
129+
`REG LOAD HKLM\BROKENSYSTEM <VOLUME LETTER OF BROKEN OS DISK>:\windows\system32\config\SYSTEM`
130+
131+
**Enable on ControlSet001:**
132+
133+
`REG ADD "HKLM\BROKENSYSTEM\ControlSet001\Control\CrashControl" /v CrashDumpEnabled /t REG_DWORD /d 1 /f`
134+
135+
`REG ADD "HKLM\BROKENSYSTEM\ControlSet001\Control\CrashControl" /v DumpFile /t REG_EXPAND_SZ /d "%SystemRoot%\MEMORY.DMP" /f`
136+
137+
`REG ADD "HKLM\BROKENSYSTEM\ControlSet001\Control\CrashControl" /v NMICrashDump /t REG_DWORD /d 1 /f`
138+
139+
**Enable on ControlSet002:**
140+
141+
`REG ADD "HKLM\BROKENSYSTEM\ControlSet002\Control\CrashControl" /v CrashDumpEnabled /t REG_DWORD /d 1 /f`
142+
143+
`REG ADD "HKLM\BROKENSYSTEM\ControlSet002\Control\CrashControl" /v DumpFile /t REG_EXPAND_SZ /d "%SystemRoot%\MEMORY.DMP" /f`
144+
145+
`REG ADD "HKLM\BROKENSYSTEM\ControlSet002\Control\CrashControl" /v NMICrashDump /t REG_DWORD /d 1 /f`
146+
147+
**Unload Broken OS Disk:**
148+
149+
`REG UNLOAD HKLM\BROKENSYSTEM`
150+
151+
### Rebuild the Original VM
152+
153+
Use [step 5 of the VM Repair Commands](https://docs.microsoft.com/azure/virtual-machines/troubleshooting/repair-windows-vm-using-azure-virtual-machine-repair-commands#repair-process-example) to reassemble the VM.

0 commit comments

Comments
 (0)