Due to Microsoft's requirement of Unified Extensible Firmware Interface (UEFI) instead of BIOS firmware for computers certified for Windows 8 and later, UEFI is now supported in nearly all new computers. Although UEFI isn't supported by all operating systems, it is becoming more and more popular.
Today we'll discuss UEFI support of the popular virtual machine (VM) platforms and how to enable UEFI for your virtual machines. However, keep in mind that you can't switch a virtual machine with an installed operating system from BIOS firmware to UEFI. That will cause the operating system to fail to boot. You need to enable UEFI and then install an operating system with UEFI.
Just like with modern computers, you can temporarily switch back to BIOS firmware — for instance, to load a live bootable operating system that doesn't support UEFI. Let's take a closer look at how to enable UEFI on specific VM platforms.
VMware Player and Workstation
The virtual machine products offered by VMware support UEFI, but BIOS firmware is enabled by default. Furthermore, the VMware products do not provide an option in the GUI for enabling UEFI.
UEFI support must be enabled by manually editing the .VMX file or by using a third-party tool like VM Tweaker.
To manually edit the .VMX file, simply open with a text editor and add the following line and then save:
firmware = "efi"
That's it — now that particular VM should run with UEFI.
VirtualBox by default uses the BIOS firmware for virtual machines. It supports EFI too, but unfortunately does not support booting UEFI-based system volumes, which includes Windows 8 in UEFI mode. However, if you'd still like to test or use EFI with other operating systems, enabling EFI support is easy. Open the VM settings, select System, and on the Motherboard tab, select Enable EFI (special OSes only).
Hyper-V in Windows Server 2012 R2
Among the many new and changed features of Hyper-V in Windows Server 2012 R2, Microsoft introduced UEFI support. Virtual machines can be created with Generation 1 support, which uses BIOS firmware, or Generation 2, which enables UEFI and Secure Boot.
After a virtual machine is created you cannot change its specified Generation, but you can optionally disable the Secure Boot support, which may actually be required to run Linux operating systems.
There aren't really any special settings to enable UEFI support in Hyper-V. When creating virtual machines you're asked which Generation you'd like to enable — you must choose Generation 2 for UEFI and Secure Boot support.
Virtual machines created with Generation 2 also bring other new functionality, such as PXE boot via a standard network adapter or booting from a SCSI virtual hard disk or virtual DVD. Generation 1 implements the virtual machine like previous versions of Hyper-V and is still useful for when using legacy devices and operating systems.
Eric Geier is a freelance tech writer — keep up with his writings on Facebook. He's also the founder of NoWiresSecurity, a cloud-based Wi-Fi security service, and On Spot Techs, an on-site computer services company.