Menggunakan UEFI dengan QEMU

Cole Robinson, Caleb McKee, Petr Bokoc Versi F32 Last review: 2020-04-10

Instalasi Firmware

UEFI untuk VM QEMU/KVM berbasis x86 disebut OVMF (Open Virtual Machine Firmware). OVMF berasal dari EDK2 (EFI Development Kit), yang merupakan implementasi referensi UEFI.

Menginstal 'UEFI untuk QEMU' dari repositori Fedora

Sejak Juni 2016, OVMF tersedia di repositori Fedora. Anda hanya perlu memastikan paket edk2-ovmf RPM telah terinstal. Selain itu, paket ini kini menjadi dependensi dari paket lain, sehingga kemungkinan besar sudah terpasang di sistem Anda. Paket ini juga mencakup firmware untuk secureboot (OVMF_CODE.secboot.fd).

Menginstal 'UEFI untuk QEMU' versi nightly build

Gerd Hoffmann, pengembang Red Hat dan QEMU, memiliki repositori dnf di situs pribadinya yang menyediakan nightly build berbagai firmware QEMU/KVM, termasuk EDK2/OVMF.

Berikut cara mengunduh nightly build untuk arsitektur x86:

[…]# sudo dnf install dnf-plugins-core
[…]# sudo dnf config-manager addrepo --from-repofile=http://www.kraxel.org/repos/firmware.repo
[…]# sudo dnf install edk2.git-ovmf-x64

Perlu dicatat bahwa nightly build bersifat eksperimental dan mungkin terkadang mengalami kerusakan.

Opsional: Mengonfigurasi libvirtd untuk menampilkan dukungan UEFI

Libvirt perlu mengetahui pemetaan berkas konfigurasi UEFI→NVRAM agar dapat menampilkannya pada alat seperti virt-manager atau virt-install. Pada Fedora 22 dan versi yang lebih baru, paket libvirt sudah dikonfigurasi untuk mencari jalur nightly build ini, sehingga fitur ini dapat berfungsi langsung tanpa konfigurasi tambahan.

Namun, jika Anda ingin menggunakan berkas biner khusus, Anda perlu mengedit variabel nvram di /etc/libvirt/qemu.conf dan memulai ulang layanan libvirtd.

Membuat Mesin Virtual (VM)

virt-manager

Buat VM baru menggunakan virt-manager. Saat Anda sampai pada halaman terakhir di wizard 'New VM', lakukan langkah berikut:

  • Klik "Customize before install", kemudian pilih "Finish".

  • Pada tab "Overview", ubah kolom "Firmware" menjadi opsi "UEFI x86_64".

  • Klik "Begin Installation".

  • Layar boot yang muncul akan menggunakan perintah linuxefi untuk memulai proses instalasi. Anda dapat menjalankan efibootmgr di dalam sistem untuk memverifikasi bahwa Anda menjalankan sistem operasi berbasis UEFI.

virt-install

Tambahkan --boot uefi ke perintah virt-install Anda. Contoh:

sudo virt-install --name f20-uefi \
+   --ram 2048 --disk size=20 \
+   --boot uefi \
+   --location https://dl.fedoraproject.org/pub/fedora/linux/releases/22/Workstation/x86_64/os/
+

Menguji Secureboot di VM

Langkah-langkah berikut menjelaskan cara menguji dukungan Secureboot Fedora di dalam VM KVM. Panduan ini ditujukan untuk tim QA ataupun pengguna lain yang ingin menguji Secureboot. Konfigurasi ini memerlukan penggunaan UEFI, sehingga melanjutkan langkah-langkah sebelumnya.

Jalankan EnrollDefaultKeys.efi

(Sebelumnya, artikel ini merekomendasikan utilitas independen "LockDown_ms.efi").

Karena OVMF tidak disertai dengan kunci SecureBoot apa pun, kita perlu menginstalnya untuk meniru mesin UEFI bersertifikasi Microsoft. OVMF kini sudah menyertakan biner untuk menyiapkan kumpulan kunci default. Cara termudah adalah dengan menggunakan UefiShell.iso yang tersedia di /usr/share/edk2/ovmf/UefiShell.iso. Jalankan VM Anda dengan berkas tersebut sebagai image CD-ROM, lalu VM akan masuk ke shell UEFI. Pada prompt, masukkan perintah berikut:

  • Shell> fs0:

  • FS0:\> EnrollDefaultKeys.efi

  • FS0:\> reset

  • VM akan melakukan restart. Biarkan sistem boot ke Fedora seperti biasa, lalu login.

  • Anda akan melihat tulisan 'Secure boot enabled' di dmesg. Secureboot kini aktif untuk setiap boot berikutnya.

Menguji Secure Boot Fedora dari CD/DVD di VM

Setelah Anda memiliki VM yang dikonfigurasi dengan Secureboot seperti dijelaskan di atas, Anda dapat menggunakannya untuk menguji dukungan Secureboot pada media ISO.

  • Gunakan virt-manager untuk menautkan media ISO ke VM Anda.

  • Gunakan virt-manager untuk mengubah pengaturan boot VM agar boot dari CDROM.

  • Mulai VM.

  • Buka terminal di dalam VM, lalu verifikasi bahwa Secureboot aktif dengan memeriksa dmesg.

Catatan

Menggunakan UEFI dengan VM AArch64

Rilis Fedora untuk AArch64 hanya akan berjalan pada UEFI, sehingga memerlukan UEFI di dalam VM. Namun, langkah-langkahnya sedikit berbeda. Lihat halaman ini untuk dokumentasi lengkap: https://fedoraproject.org/wiki/Architectures/AArch64/Install_with_QEMU