[[Vorlage(Getestet, focal)]] {{{#!vorlage Wissen [:virt-manager: Virt-Manager] [:Terminal: Terminal] }}} [[Inhaltsverzeichnis()]] Dieser Artikel beschreibt die Nutzung von [wikipedia:Unified_Extensible_Firmware_Interface: UEFI] und {*}[https://ubuntu.com/core/features/secure-boot Secure Boot] {en} mittels Virt-Manager[1]. Der Computer, auf dem Virt-Manager ausgeführt wird, muss dabei selbst nicht über UEFI oder Secure Boot verfügen. = Installation = Die Bereitstellung der UEFI- und Secure-Boot-Firmware-Dateien erfolgt über das Paket '''ovmf''', das normalerweise zusammen mit dem Paket '''virt-manager''' installiert wird. Dies lässt sich wie folgt im Terminal[2] prüfen: {{{#!vorlage Befehl dpkg -l | grep ovmf }}} Sollte das Paket wider Erwarten doch nicht installiert sein, kann man das nachholen: {{{#!vorlage Paketinstallation ovmf, UEFI-Firmware für x86_64-VMs }}} = UEFI und Secure Boot aktivieren = Man kann UEFI und Secure Boot über das GUI nur beim Erstellen einer virtuellen Maschine aktivieren. Dazu geht man wie folgt vor: 1. Virtuelle Maschine wie in [:virt-manager/#Neue-virtuelle-Maschine-einrichten: Virt-Manager] beschrieben einrichten, dabei aber am Ende den Haken bei ''"Konfiguration bearbeiten vor der Installation"'' setzen. 1. Im Konfigurationsfenster wählt man unter ''"Übersicht"'' => ''"Firmware"'' dann ''"OVMF_CODE.ms.fd"''. Dies entspricht einer UEFI-Firmware mit "Secure Boot"-Unterstützung, welche den Key von Microsoft enthält und somit einem üblichem UEFI entspricht. Bitte auch die [https://sources.debian.org/src/edk2/2020.05-3~bpo+1/debian/README.Debian/ Erläuterungen] {en} zu den OVMF-Dateien beachten! 1. Anschließend wählt man ''"Anwenden"'' und ''"Installieren"'', woraufhin das zuvor gewählte Installations-Medium im UEFI-Modus mit aktiviertem Secure Boot gestartet wird. {{{#!vorlage Tabelle [[Bild(01_vm_konfig-anpassen_ubuntu_20.04.3.png, x240)]] [[Bild(02_firmware-ovmf_code-ms_ubuntu_20.04.3.png, x240)]] [[Bild(03_anwenden-installieren_ubuntu_20.04.3.png, x240)]] }}} = UEFI-Firmware-Setup aufrufen = Das UEFI-Firmware-Setup der virtuellen Maschine kann man auf folgende Arten erreichen: == Ubuntu-Installationsmedium == Startet man die virtuelle Maschine mit eingebundenem Ubuntu-Installations-Image, erscheint zu Beginn der Grub-Bildschirm, in dem man die Option ''"UEFI Firmware Settings"'' wählt. [[Bild(04_grub_firmwaresettings_ubuntu_20.04.3.png, align=center, 440)]] == UEFI-Firmware-Setup aus Ubuntu heraus aufrufen == Man kann das UEFI-Firmware-Setup auch für den nächsten Neustart aus Ubuntu heraus aufrufen. Dazu lässt man sich zunächst die Boot-Einträge mittels [:efibootmgr:] auflisten: {{{#!vorlage befehl sudo efibootmgr }}} Darauf sollte man eine ähnliche Ausgabe wie die folgende erhalten: {{{ BootCurrent: 0003 Timeout: 0 seconds BootOrder: 0003,0000,0002 Boot0000* UiApp Boot0002* EFI Internal Shell Boot0003* UEFI QEMU DVD-ROM QM00001 }}} Das UEFI-Firmware-Setup wird in der Liste durch den Eintrag ``UiApp`` repräsentiert, hier im Beispiel also der Boot-Eintrag mit der Nummer ``(000)0``. Nun setzt man den Eintrag für den nächsten Start auf den Eintrag mit der Nummer ``0``: {{{#!vorlage befehl sudo efibootmgr -n 0 }}} Dies wird mit einer Ausgabe ähnlich der folgenden bestätigt: {{{ [mark]BootNext: 0000[/mark] BootCurrent: 0003 Timeout: 0 seconds BootOrder: 0003,0000,0002 Boot0000* UiApp Boot0002* EFI Internal Shell Boot0003* UEFI QEMU DVD-ROM QM00001 }}} Der Eintrag ``BootNext: 0000`` ist gesetzt worden. Damit wird beim nächsten Start des Systems - und nur einmalig bei diesem - das UEFI-Firmware-Setup aufgerufen. == Secure Boot aktivieren und deaktivieren == Innerhalb des Firmware-Setups ändert man die Einstellung für Secure Boot folgendermaßen: 1. ''"Device Manager"'' 1. ''"Secure Boot Configuration"'' 1. ''"Attempt Secure Boot"'' wählen und mit der Leertaste [[Vorlage(Tasten, leer)]] Secure Boot aktivieren oder deaktivieren. {{{#!vorlage Tabelle [[Bild(06_uefi_select_device_manager_ubuntu_20.04.3.png, x240)]] [[Bild(07_uefi_dm_select_secure_boot_ubuntu_20.04.3.png, x240)]] [[Bild(08_uefi_sb_enable-disable_sb_ubuntu_20.04.3.png, x240)]] }}} = UEFI- und Secure-Boot-Status innerhalb von Ubuntu = Innerhalb von Ubuntu kann man den Status von Secure Boot mit den folgenden Befehlen anzeigen: * '''UEFI''':{{{#!vorlage befehl [ -d /sys/firmware/efi ] && echo UEFI || echo CSM }}} * '''Secure Boot''':{{{#!vorlage befehl sudo dmesg | grep secureboot }}} = UEFI-Shell = Innerhalb von Virt-Manager landet man häufiger auch unerwartet z.B. bei einem Neustart in der UEFI-Shell: [[Bild(09_uefi_shell_ubuntu_20.04.3.png, align=center, 440)]] In einer solchen Situation kann man die UEFI-Shell auf verschiedene Arten verlassen: * aus der Shell in das Firmware-Setup:{{{#!vorlage befehl exit }}} * Reset mit folgendem Neustart:{{{#!vorlage befehl reset }}} * Runterfahren und Ausschalten:{{{#!vorlage befehl reset -s }}} = Links = == intern == * [:virt-manager:] - Alles zum Virt-Manager * [:EFI_Bootmanagement:] - Übersichtsartikel zu allen Themen rund um das Thema UEFI hier im Wiki * [:efibootmgr:] - UEFI-Boot-Einträge bearbeiten == extern == * {*} [https://ubuntu.com/core/features/secure-boot Secure Boot] {en} - Secure Boot erklärt auf ubuntu.com * [https://wiki.debian.org/SecureBoot/VirtualMachine#virt-manager] {en} - Nutzung von Secure Boot mittels Virt-Manager im Debian-Wiki * [https://ostechnix.com/enable-uefi-support-for-kvm-virtual-machines-in-linux/] {en} - UEFI zusammen mit KVM-basierenden virtuellen Maschinen nutzen * [https://linuxhint.com/use-uefi-interactive-shell-and-its-common-commands/] {en} - Nutzung der UEFI-Shell, die wichtigsten Kommandos erklärt * [https://sources.debian.org/src/edk2/2020.05-3~bpo+1/debian/README.Debian/] {en} - Erläuterungen speziell zu den unterschiedlichen OVMF-Dateien * [https://sources.debian.org/src/edk2/2020.11-2/OvmfPkg/README/] {en} - Erläuterungen zum OVMF-Projekt insgesamt * [https://sourceforge.net/projects/efi-shell/files/documents/ShellCommandManual.pdf/download] {dl} {en} - UEFI Shell Kommando-Referenz-Handbuch von Intel # tag: Emulation und Virtualisierung