Schakel UEFI ondersteuning in KVM virtualisatie in

Er zijn twee soorten firmware op computermoederborden:

  1. BIOS of Basic Input Output System
  2. UEFI of Unified Extensible Firmware Interface

Wat is BIOS?

BIOS wordt geladen bij het opstarten van de computer om de werking van de hardware te initialiseren en te testen. Het gebruikt POST of Power On Self Test om te controleren of de hardware configuratie geldig is en goed werkt, zoekt dan de MBR (Master Boot Records) die het opstartapparaat opsloeg, en gebruikt die om de bootloader te starten, dan de kernel, en dan het Operating System.

Al deze opstartprocessen op BIOS worden ‘Legacy Boot’ genoemd, hieronder volgt een eenvoudige uitleg van het opstartproces op BIOS.

BIOS > MBR > Bootloader > Kernel > Operating System

BIOS beschouw je als oude en verouderde firmware, hoewel er altijd mensen zullen zijn die het gebruiken. BIOS heeft beperkte functionaliteit voor hedendaagse computers en moderne PC’s, het moet draaien op een 16-bit processor met slechts 1 MB ruimte om in uit te voeren. Ook initialiseert het meerdere hardware tegelijk, wat het opstartproces trager maakt.

De firmware vervanging voor BIOS is UEFI, dat op moderne moederborden beschikbaar is.

Wat is UEFI?

UEFI of Unified Extensible Firmware Interface wordt beschouwd als de firmware vervanger voor BIOS. Het heeft meer mogelijkheden en functionaliteit die op BIOS beperkt zijn, en het is beschikbaar op hedendaagse moederborden en moderne PC’s.

Hoewel het als een vervanging voor BIOS beschouwd wordt, werkt UEFI anders en heeft het een concept dat tegengesteld is aan dat van BIOS. UEFI slaat alle informatie over initialisatie en opstarten op in het .efi bestand, dat op de ESP (EFI System Partition) partitie staat. en de ESP bewaart ook de bootloader programma’s voor het op de computer ge├»nstalleerde besturingssysteem.

De UEFI gebruikt GPT voor het opslaan van alle informatie over partities, in plaats van MBR. En hieronder eenvoudige uitleg over hoe het besturingssysteem op UEFI opstart.

UEFI > GPT/ESP > Kernel > Operating System

Hieronder staan enkele opvallende UEFI functies die niet op traditionele BIOS beschikbaar zijn:

  • Start sneller op
  • Kan meer dan 2TB of schijf aan (wat in de huidige omgeving heel wat is)
  • Ondersteunt meer dan 4 partities met GUID partitietabel
  • Ondersteunt veilig opstarten
  • Ondersteunt 64-bit moderne firmware apparaten
  • Heeft een eenvoudige grafische gebruikersinterface
  • enz.

Firmware op KVM virtualisatie

Standaard gebruikt de KVM virtualisatie BIOS als standaard firmware voor virtuele gastmachines. Om UEFI ondersteuning op KVM in te schakelen, moet je het OVMF (Open Virtual Machine Firmware) pakket op je host systeem installeren.

Het OVMF project is onderdeel van intel’s tianocore firmware voor de qemu virtuele machine.

Vereisten

In deze gids leer je hoe je UEFI ondersteuning op de KVM virtuele machine kunt inschakelen. Je zult het OVMF pakket op de host machine installeren en de virtuele machine instellen met UEFI firmware.

Voor je begint moet je zeker zijn dat je een machine hebt waarop KVM virtualisatie is geïnstalleerd.

Hieronder staat een gids voor de installatie van KVM virtualisatie op Arch Linux.

Installatie van het OVMF pakket

Eerst moet je je aanmelden op de KVM host server en de pakketten installeren. Standaard zijn de ovmf pakketten beschikbaar in de meeste repositories van Linux distributies, zoals Debian, Ubuntu, CentOS, enz.

1. Installeer ovmf op de Debian-gebaseerde systemen met het apt commando zoals hieronder.

sudo apt install ovmf

2. En voor RHEL gebaseerde systemen zoals CentOS/Fedora moet je het pakket ‘edk2-ovmf’ installeren met het DNF/Yum commando zoals hieronder.

sudo dnf install edk2-ovmf

or

sudo yum install edk2-ovmf

3. Voor Arch Linux gebaseerde systemen zoals Manjaro, kun je het onderstaande pacman commando gebruiken.

sudo pacman -S edk2-ovmf

En de UEFI ondersteuning op de KVM virtualisatie is ingeschakeld. Laten we nu nieuwe virtuele machines maken.

Schakel UEFI in op de virtuele machine

Er zijn meerdere manieren om een virtuele machine op KVM virtualisatie te maken. Je kunt de command-line mode gebruiken (met het virt-install commando), of met de grafische toepassing zoals“virtual machine manager“.

Virtuele machine maken met virt-install

1. Om een virtuele machine met UEFI firmware te maken met de commando-regel‘virt-install‘, voeg je de optie‘–boot uefi‘ toe op de commando-opties.

Hieronder staat een voorbeeld van het gebruik van het virt-install commando voor het maken van een nieuwe virtuele machine‘Artix‘ met UEFI firmware.

sudo virt-install --name=Artix \
--os-type=Linux \
--os-variant=archlinux \
--vcpu=2 \
--ram=1024 \
--disk path=/var/lib/libvirt/images/Artix.img,size=15 \
--graphics spice \
--cdrom=/home/user/Desktop/artix-base-openrc-20210726-x86_64.iso \
--network network=default \
--boot uefi

Nu start je op naar je virtuele machine.

En als je op de UEFI instellingen intikt, krijg je hieronder enkele schermafbeeldingen.

Hieronder is het screenshot van de UEFI Interactive Shell op de KVM virtuele machine.

UEFI interactieve shell

En hieronder is de schermafdruk van OVMF Instellingen op de UEFI KVM virtuele machine

OVMF UEFI menu instellingen

Virtuele machine maken met Virtual Machine Manager

De toepassing Virtuele Machine Manager biedt een grafische interface voor het beheren van KVM virtualisatie.

Als je nieuw bent met KVM virtualisatie, is het aan te bevelen de virt-manager (virtual machine manager) te gebruiken voor het opzetten van je virtualisatie omgeving.

Om een virtuele machine met UEFI firmware ondersteuning te maken met de virt-manager toepassing, moet je deze instellen tijdens het maken van de virtuele machine zelf.

1. In het laatste venster bij het aanmaken van een virtuele machine met virt-manager zie je het bevestigingsvenster zoals hieronder.

Maak virtua machine met virt manager

Je moet de optie‘Customize configuration before install’ aanvinken, en dan op de knop‘Finish‘ klikken.

2. Klik in het nieuwe venster op het menu‘Overview‘ en ga naar de sectie‘Hypervisor details‘.

Kies bij de optie Firmware‘UEFI x86_64: ... ‘, en klik dan op de knop‘Apply‘.

Schakel UEFI in op KVM

Klik nu op de knop‘Begin Installation‘ om de installatie van de virtuele machine te starten.

3. Bij het opstartproces van de virtuele machine zie je de TianoCore boot splash zoals hieronder.

Tianocore UEFI Boot splash

4. Daarna zie je je besturingssysteem als hieronder.

Virtuele machine opstarten met UEFI

Nu heb je met succes de virtuele machine op de KVM virtualisatie gemaakt, en de virtuele machine gebruikt nu de UEFI firmware in plaats van standaard BIOS.

Conclusie

Gefeliciteerd! Je hebt geleerd hoe je de UEFI ondersteuning op de KVM virtualisatie kunt inschakelen. Ook heb je geleerd hoe je zowel met virt-install command-line als met virt-manager grafische toepassing een virtuele machine kunt opzetten en de UEFI firmware op de virtuele machine kunt inschakelen.