Virtual machines are logical representations that are designed to mimic physical hardware. Consequently, VMs have...
many of the same attributes as a physical machine, including things like network ports, memory, and virtualized CPU instances. One aspect of a virtual server that is often completely overlooked however is its BIOS.
In a way, this is completely understandable. After all, it's usually possible to get a virtualized workload up and running without ever touching the VM BIOS. Besides, it's easy to assume that virtual servers either don't have a BIOS or that they simply use a pass through BIOS that leverages the physical server's BIOS. However, there are actually some BIOS settings that can be configured for VMs.
These settings depend on two main factors. The first of these factors is the hypervisor. Each hypervisor vendor chooses for itself the settings they want to expose.
The second factor is the VM generation. Different generations of VMs interact with the hardware in different ways, and the hypervisor therefore exposes different settings based on the VM generation.
Regardless of the hypervisor type and the VM generation, a VM's BIOS settings tend to be very minimal, especially when compared to that of a physical machine. To show you what I mean, let's take a look at a couple of examples.
Configuring BIOS settings in a VM
If you look at Figure A, you can see the BIOS settings that are exposed for a Generation 1 VM running on Microsoft's Hyper-V. These settings are accessible by opening the Hyper-V Manager, right clicking on the VM and choosing the Settings command from the shortcut menu, and then selecting the BIOS option from the VM's Settings screen.
As you can see in the figure above, the available BIOS settings are very minimal. The only thing that you can really do is to change the boot order.
Generation 2 VMs running on Hyper-V provide additional BIOS settings, but not many. You can see the available settings in Figure B.
One of the first things you might notice in the figure above is that unlike a Generation 1 VM, there is no BIOS container. To access these settings, you must right click in the VM within the Hyper-V Manager and then choose the Settings command from the shortcut menu. The BIOS settings (if you want to call them that) are available within the VM's firmware container.
Like the Generation 1 VM that you saw a moment ago, Generation 2 VMs allow you to change the boot order. Even so, the available boot devices are different from one VM generation to another. As you can see in the figure above, a Generation 2 VM can be booted from a file, a virtual DVD, a virtual hard disk or a network adapter. Generation 1 VMs can be booted from a virtual hard disk or a virtual DVD drive, but they support booting from a legacy network adapter or from a virtual floppy disk.
As you can see in the previous figure, Generation 2 VMs also provide a Secure Boot setting. This setting does not exist for Generation 1 VMs.
As previously mentioned, VM BIOS tends to be very modest in scope when compared with physical machines. Some of the settings found on a physical server's BIOS are silently passed to VMs, while others are exposed in slightly different ways. Let me give you a couple of examples.
A physical computer's BIOS allows you to configure the date and time. Obviously there is no date and time setting in the VM's BIOS, but that's because the VM doesn't need one. Some VMs simply inherit the date and time from the host operating system. Other VMs acquire the date and time through the Time Synchronization component of the Integration Services, as shown in Figure C.
A physical computer also uses its BIOS to configure the amount of memory that is installed, CPU clock speed, and a number of other hardware specific settings. VMs simply don't need these types of BIOS settings because virtual CPU and memory settings are configured as attributes of the VMs rather than being configured as separate BIOS settings.
As you can see, BIOS works very differently on a VM than it does on a physical computer. A VM BIOS is primarily a tool for changing the VM's boot order.
The best BIOS settings for virtualization
Improve server performance by tweaking BIOS settings
BIOS settings to save energy