Archive for March 2021

BIOS and UEFI

What does the BIOS do?

The BIOS (Basic Input Output Operating System) is the first piece of software which runs and carries out the following tasks.

  1. Performing POST – (Power-On Self-Test) in this phase the BIOS checks if the components installed on the motherboard are functioning
  2. Basic I/O checks -This checks the peripherals such as the keyboard, the monitor and serial ports can operate to perform basic tasks.
  3. Booting – The BIOS tries to boot from the devices connected (SSDs, HDDs, PXE, whatever) in order to provide an Operating System) to operate the computer.

It can also be a low level management tool providing some ability to tweak system features and settings

What is UEFI?

UEFI stands for Unifed Extensible Firmware Interface. UEFI was released in 2007 to provide a successor to BIOS to overcome limitations. Before this computers used the BIOS (Basic Input Output Operating System). Most UEFI firmware implementations provide support for legacy BIOS services.

UEFI Advantages over BIOS

  • 32-bit/64/bit architecture rather than 16-bit
  • CPU independent architecture
  • Ability to use large disk partitions over 2TB. UEFI’s theoretical size limit for bootable drives is more than nine zettabytes, while BIOS can only boot from drives 2TB or smaller.
  • Flexible pre-OS environment, including network capability, GUI, multi language
  • Expanded BIOS with a GUI and mouse ability
  • UEFI Secure Boot feature, which employs digital signatures to verify the integrity of low-level code like boot loaders and operating system files before execution. If validation fails, Secure Boot halts execution of the compromised bits to stop any potential attack in its tracks. Secure Boot was added in version 2.2 of the UEFI specification
  •  UEFI does not use the Master Boot Record (MBR) scheme to store the low-level bits that bootstrap the operating system. Under the MBR, these key bits reside in the first segment of the disk, and any corruption or damage to that area stops the operating system from loading. Instead, UEFI uses the GUID Partition Table (GPT) scheme and stores initialization code in an .efi file found in a hidden partition. GPT also stores redundant copies of this code and uses cyclic redundancy checks to detect changes or corruption of the data
  • C / C++ language used instead of assembly language
  • Backwards compatibility with MBR hard drives

UEFI Specification

This can be found at the link – https://uefi.org/specifications

Considerations

When building Windows 10 or Windows Server 2016 VM’s, it is recommended you build them with EFI firmware enabled. Moving from traditional BIOS/MBR to EFI (UEFI) firmware afterwards introduces some challenges later on down the line and can cause machines not to boot.

UEFI still cannot be used for auto deploying vSphere ESXi hosts but this may change in the future.