Aktivieren der UEFI-Unterstützung in KVM-Virtualisierung

Es gibt zwei Arten von Firmware auf Computer-Motherboards:

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

Was ist BIOS?

Das BIOS wird beim Hochfahren des Computers geladen, um die Hardware zu initialisieren und zu testen. Es verwendet den POST (Power On Self Test), um sicherzustellen, dass die Hardwarekonfiguration gültig ist und ordnungsgemäß funktioniert. Dann sucht es nach dem MBR (Master Boot Records), in dem das Boot-Gerät gespeichert ist, und verwendet diesen, um den Bootloader, dann den Kernel und schließlich das Betriebssystem zu starten.

Alle diese Boot-Prozesse im BIOS werden „Legacy Boot“ genannt. Im Folgenden findest du eine einfache Erklärung des Boot-Prozesses im BIOS.

BIOS > MBR > Bootloader > Kernel > Operating System

BIOS gilt als alte und veraltete Firmware, obwohl es immer Menschen geben wird, die es benutzen. Das BIOS hat für heutige Computer und moderne PCs nur eine begrenzte Funktionalität. Es muss auf einem 16-Bit-Prozessor laufen und hat nur 1 MB Speicherplatz für die Ausführung. Außerdem initialisiert es mehrere Geräte auf einmal, was den Bootvorgang verlangsamt.

Der Firmware-Ersatz für das BIOS ist UEFI, das auf modernen Motherboards verfügbar ist.

Was ist UEFI?

UEFI oder Unified Extensible Firmware Interface wird als Firmware-Ersatz für BIOS angesehen. Es bietet mehr Funktionen als das BIOS und ist auf den heutigen Motherboards und modernen PCs verfügbar.

Obwohl es als Ersatz für das BIOS gilt, funktioniert UEFI anders und hat ein anderes Konzept als das BIOS. UEFI speichert alle Informationen über die Initialisierung und den Start in der .efi-Datei, die auf der ESP-Partition (EFI System Partition) gespeichert ist. und die ESP speichert auch die Bootloader-Programme für das auf dem Computer installierte Betriebssystem.

UEFI verwendet GPT zum Speichern aller Informationen über die Partitionen anstelle von MBR. Nachfolgend eine einfache Erklärung, wie das Betriebssystem unter UEFI bootet.

UEFI > GPT/ESP > Kernel > Operating System

Nachfolgend sind einige bemerkenswerte UEFI-Funktionen aufgeführt, die im herkömmlichen BIOS nicht verfügbar sind:

  • Schneller booten
  • Kann mehr als 2 TB oder Festplatten verwalten (was in der heutigen Zeit eine große Sache ist)
  • Unterstützt mehr als 4 Partitionen mit GUID-Partitionstabelle
  • Unterstützt sicheres Booten
  • Unterstützt moderne 64-Bit-Firmware-Geräte
  • Hat eine einfache grafische Benutzeroberfläche
  • etc.

Firmware für KVM-Virtualisierung

Standardmäßig verwendet die KVM-Virtualisierung BIOS als Standard-Firmware für virtuelle Gastmaschinen. Um die UEFI-Unterstützung für KVM zu aktivieren, musst du das OVMF-Paket (Open Virtual Machine Firmware) auf deinem Host-System installieren.

Das OVMF-Projekt ist Teil der tianocore-Firmware von Intel für die virtuelle Maschine qemu.

Voraussetzungen

In dieser Anleitung erfährst du, wie du die UEFI-Unterstützung für die virtuelle KVM-Maschine aktivierst. Du wirst das OVMF-Paket auf dem Host-Rechner installieren und die virtuelle Maschine mit UEFI-Firmware einrichten.

Bevor du anfängst, musst du sicherstellen, dass du einen Rechner mit KVM-Virtualisierung auf ihm installiert hast.

Im Folgenden findest du eine Anleitung für die Installation der KVM-Virtualisierung unter Arch Linux.

Installation des OVMF-Pakets

Als erstes musst du dich auf dem KVM-Hostserver anmelden und die Pakete installieren. Standardmäßig sind die ovmf-Pakete in den meisten Linux-Distributionen wie Debian, Ubuntu, CentOS usw. verfügbar.

1. Installiere ovmf auf Debian-basierten Systemen mit dem Befehl apt (siehe unten).

sudo apt install ovmf

2. Für RHEL-basierte Systeme wie CentOS/Fedora musst du das Paket „edk2-ovmf“ mit dem DNF/Yum-Befehl wie unten beschrieben installieren.

sudo dnf install edk2-ovmf

or

sudo yum install edk2-ovmf

3. Für Arch Linux-basierte Systeme wie Manjaro kannst du den unten stehenden pacman-Befehl verwenden.

sudo pacman -S edk2-ovmf

Die UEFI-Unterstützung für die KVM-Virtualisierung ist nun aktiviert. Jetzt können wir neue virtuelle Maschinen erstellen.

Aktiviere UEFI auf der virtuellen Maschine

Es gibt mehrere Möglichkeiten, eine virtuelle Maschine mit der KVM-Virtualisierung zu erstellen. Du kannst den Befehlszeilenmodus (mit dem Befehl virt-install ) oder eine grafische Anwendung wie den„Virtual Machine Manager“ verwenden.

Virtuelle Maschine mit virt-install erstellen

1. Um eine virtuelle Maschine mit UEFI-Firmware über die Befehlszeile„virt-install“ zu erstellen, füge die Option„–boot uefi“ zu den Befehlsoptionen hinzu.

Im Folgenden siehst du ein Beispiel, in dem du mit dem Befehl virt-install eine neue virtuelle Maschine„Artix“ mit UEFI-Firmware erstellst.

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

Jetzt bootest du deine virtuelle Maschine.

Wenn du die UEFI-Einstellungen eingibst, siehst du die folgenden Screenshots.

Unten siehst du einen Screenshot der interaktiven UEFI-Shell auf der virtuellen KVM-Maschine.

Interaktive UEFI-Shell

Und unten ist der Screenshot der OVMF-Einstellungen auf der virtuellen UEFI-KVM-Maschine

OVMF UEFI Menü Einstellungen

Virtuelle Maschine mit dem Virtual Machine Manager erstellen

Die Anwendung Virtual Machine Manager bietet eine grafische Oberfläche für die Verwaltung der KVM-Virtualisierung.

Wenn du neu in der KVM-Virtualisierung bist, empfiehlt es sich, den virt-manager (Virtual Machine Manager) für die Einrichtung deiner Virtualisierungsumgebung zu verwenden.

Um eine virtuelle Maschine mit UEFI-Firmware-Unterstützung mit der virt-manager-Anwendung zu erstellen, musst du sie während der Erstellung der virtuellen Maschine selbst konfigurieren.

1. Wenn du eine virtuelle Maschine mit virt-manager erstellst, siehst du im letzten Fenster das unten abgebildete Bestätigungsfenster.

Virtuelle Maschine mit Virt Manager erstellen

Du musst die Option„Konfiguration vor der Installation anpassen“ ankreuzen und dann auf die Schaltfläche„Fertig stellen“ klicken.

2. Im neuen Fenster klickst du auf das Menü„Übersicht“ und gehst zum Abschnitt„Hypervisor-Details„.

Wähle bei der Option „Firmware“ die Option„UEFI x86_64: ...“ und klicke dann auf die Schaltfläche„Übernehmen„.

Aktiviere UEFI auf KVM

Klicke nun auf die Schaltfläche„Installation beginnen„, um die Installation der virtuellen Maschine zu starten.

3. Während des Startvorgangs der virtuellen Maschine siehst du den TianoCore Boot-Splash wie unten abgebildet.

Tianocore UEFI Boot splash

4. Danach siehst du dein Betriebssystem wie unten abgebildet.

Booten einer virtuellen Maschine mit UEFI

Jetzt hast du die virtuelle Maschine erfolgreich auf der KVM-Virtualisierung erstellt und die virtuelle Maschine verwendet jetzt die UEFI-Firmware anstelle des Standard-BIOS.

Fazit

Herzlichen Glückwunsch! Du hast gelernt, wie du die UEFI-Unterstützung für die KVM-Virtualisierung aktivierst. Außerdem hast du gelernt, wie du eine virtuelle Maschine sowohl mit der Befehlszeile virt-install als auch mit der grafischen Anwendung virt-manager einrichtest und die UEFI-Firmware auf der virtuellen Maschine aktivierst.

Das könnte dich auch interessieren …