Black Screen after rebooting Windows Virtual Machine with EFI
search cancel

Black Screen after rebooting Windows Virtual Machine with EFI

book

Article ID: 318711

calendar_today

Updated On:

Products

VMware vSphere ESXi

Issue/Introduction

The VM's EFI firmware fails to boot into Windows, resulting in a black console. vmware.log shows only the EFI ROM version after CPU reset, but not the BIOS-UUID.

Example:

/vmfs/volumes/datastore_name/vm_name/vmware.log

YYYY-MM-DDTHH:MM:SS In(05) vcpu-0 - CPU reset: hard (mode Emulation)
...
YYYY-MM-DDTHH:MM:SS In(05) vcpu-0 - Guest: EFI ROM version: VMW71.00V.18227214.B64.2106252220 (64-bit RELEASE)
YYYY-MM-DDTHH:MM:SS In(05) vcpu-0 - BIOS-UUID is ## ## ## ## ## ## ## ##-## ## ## ## ## ## ## ##
   <===  Will be Missing when issue occurs

This issue happens intermittently. A VM reset invoked from the vCenter GUI results in the Windows operating system performing a standard startup sequence, without prompting for or entering recovery options.

Environment

VMware vSphere ESXi 7.0.1
VMware vSphere ESXi 8.0.0
VMware vSphere ESXi 7.0.2

Cause

A deadlock occurrs intermittently in VMware Virtual Machine Monitor (VMM) at boot time when the following conditions meet:

  • Guest OS is 64-bit Windows and uses EFI firmware
  • VM is configured with more than one vCPU
  • VM was started on ESXi 7.0U2 or 7.0 U3

Resolution

This issue is resolved in ESXi 8.0 GA build number 20513097


Workaround:

To work around the issue, please follow any one of the two procedures mentioned below:

Option1: Upgrade the VM virtual hardware version to 14 or newer. Refer to Upgrading a virtual machine to the latest hardware version (multiple versions)

Option2: Add the following configuration parameters to vm_name.vmx file.

 chipset.smramLock = "TRUE"
 cpu.canDisableSMM = "TRUE"
 
Refer to the below steps to add the configuration parameters to a Virtual Machine (VM) using the vSphere Client /ESXi GUI.

  1. Log in to the vCenter Server using vSphere Client with a user having privilege to edit VM.
  2. Locate and select the desired virtual machine.
  3. Power off the virtual machine.
  4. Right-click the virtual machine and choose "Edit Settings" (or select the VM and click the "Edit Settings" button).
  5. In the "Edit Settings" dialog box, navigate to the "VM Options" tab.
  6. Under the "Advanced" section within the "VM Options" tab, locate and click the "Configuration Parameters" button.
  7. In the "Configuration Parameters" window, click the "Add Row" button.
  8. In the newly added row:
    • In the "Name" column, enter: chipset.smramLock
    • In the "Value" column, enter: TRUE
  9. Click "Add Row" again for the second parameter.
  10. In this new row:
    • In the "Name" column, enter: cpu.canDisableSMM
    • In the "Value" column, enter: TRUE
  11. Click "OK" to close the "Configuration Parameters" window.
  12. Finally, click "OK" on the "Edit Settings" dialog box to apply the changes to the virtual machine's configuration.


There is no functional or performance issue associated with setting these options.