ການນຳໃຊ້ UEFI ກັບ QEMU

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

ການຕິດຕັ້ງເຟີມແວ

UEFI ສຳລັບ x86 QEMU/KVM VMs ແມ່ນມີຊື່ວ່າ OVMF (Open Virtual Machine Firmware). ມັນມາຈາກ EDK2 (EFI Development Kit), ເຊິ່ງເປັນການຈັດຕັ້ງປະຕິບັດອ້າງອີງຂອງ UEFI.

ການຕິດຕັ້ງ 'UEFI ສຳລັບ QEMU' ຈາກຄັງເກັບ Fedora

ຕັ້ງແຕ່ເດືອນມິຖຸນາ 2016, OVMF ແມ່ນມີໃຫ້ຢູ່ໃນຄັງເກັບຂອງ Fedora. ສິ່ງທີ່ທ່ານຕ້ອງຕິດຕັ້ງແມ່ນ RPM edk2-ovmf. ນອກຈາກນັ້ນ, ຕອນນີ້ມັນຄວນຈະເປັນສ່ວນປະກອບທີ່ຈຳເປັນຂອງແພັກເກດ, ດັ່ງນັ້ນທ່ານອາດຈະຕິດຕັ້ງມັນໄວ້ແລ້ວ. ນີ້ລວມມີເຟີມແວສຳລັບ secureboot (OVMF_CODE.secboot.fd)

ການຕິດຕັ້ງ 'UEFI ສຳລັບ QEMU' ລຸ້ນພັດທະນາລາຍວັນ (nightly builds)

Gerd Hoffmann, ພະນັກງານຂອງ Red Hat ແລະ ນັກພັດທະນາ QEMU, ມີຄັງເກັບ dnf ຢູ່ໃນເວັບໄຊສ່ວນຕົວຂອງລາວ ເຊິ່ງໃຫ້ບໍລິການລຸ້ນພັດທະນາລາຍວັນຂອງເຟີມແວ QEMU/KVM ທັງໝົດ, ລວມທັງ EDK2/OVMF.

ນີ້ແມ່ນວິທີດາວໂຫຼດລຸ້ນພັດທະນາລາຍວັນສຳລັບ 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

ໝາຍເຫດ, ເຫຼົ່ານີ້ແມ່ນລຸ້ນພັດທະນາລາຍວັນ, ແລະ ອາດຈະມີຂໍ້ຜິດພາດໃນບາງຄັ້ງ.

ຕັ້ງຄ່າ libvirtd ເພື່ອປະກາດການຮອງຮັບ UEFI (ເລືອກໄດ້)

Libvirt ຈຳເປັນຕ້ອງຮູ້ກ່ຽວກັບການຈັບຄູ່ໄຟລ໌ຕັ້ງຄ່າ UEFI→NVRAM, ເພື່ອໃຫ້ມັນສາມາດປະກາດໃຫ້ເຄື່ອງມືຕ່າງໆ ເຊັ່ນ virt-manager/virt-install ຮັບຮູ້. ໃນ Fedora 22 ແລະ ລຸ້ນໃໝ່ກວ່າ, ແພັກເກດ libvirt ຖືກຕັ້ງຄ່າໃຫ້ຊອກຫາເສັ້ນທາງຂອງລຸ້ນພັດທະນາລາຍວັນ, ດັ່ງນັ້ນມັນຈະສາມາດໃຊ້ງານໄດ້ທັນທີ.

ຢ່າງໃດກໍຕາມ, ຖ້າທ່ານຕ້ອງການໃຊ້ໄຟລ໌ binary ທີ່ກຳນົດເອງ, ທ່ານຈະຕ້ອງແກ້ໄຂຕົວປ່ຽນ nvram ໃນ /etc/libvirt/qemu.conf ແລະ ເລີ່ມຕົ້ນ libvirtd ໃໝ່.

ການສ້າງ VM

virt-manager

ສ້າງ VM ໃໝ່ໃນ virt-manager. ເມື່ອທ່ານໄປຮອດໜ້າສຸດທ້າຍຂອງຕົວຊ່ວຍ 'New VM', ໃຫ້ເຮັດດັ່ງນີ້:

  • ຄລິກ "Customize before install", ແລ້ວເລືອກ "Finish"

  • ໃນໜ້າຈໍ "Overview", ໃຫ້ປ່ຽນຊ່ອງ "Firmware" ເພື່ອເລືອກຕົວເລືອກ "UEFI x86_64".

  • ຄລິກ "Begin Installation"

  • ໜ້າຈໍບູດທີ່ທ່ານເຫັນຄວນໃຊ້ຄຳສັ່ງ linuxefi ເພື່ອບູດຕົວຕິດຕັ້ງ, ແລະ ທ່ານຄວນຈະສາມາດລັນ efibootmgr ພາຍໃນລະບົບນັ້ນ, ເພື່ອກວດສອບວ່າທ່ານກຳລັງໃຊ້ລະບົບປະຕິບັດການ UEFI ຢູ່.

virt-install

ເພີ່ມ --boot uefi ໃສ່ໃນຄຳສັ່ງ virt-install ຂອງທ່ານ. ຕົວຢ່າງ:

$ 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/
+

ການທົດສອບ Secureboot ໃນ VM

ຂັ້ນຕອນເຫຼົ່ານີ້ອະທິບາຍວິທີການທົດສອບການຮອງຮັບ Fedora Secureboot ພາຍໃນ KVM VM. ກຸ່ມເປົ້າໝາຍແມ່ນທີມງານ QA ທີ່ຕ້ອງການທົດສອບ secureboot, ແລະ ຜູ້ທີ່ສົນໃຈອື່ນໆ. ນີ້ຮຽກຮ້ອງໃຫ້ມີການຕັ້ງຄ່າ VM ເພື່ອໃຊ້ UEFI, ໂດຍອີງໃສ່ຂັ້ນຕອນ UEFI ກ່ອນໜ້ານີ້.

ລັນ EnrollDefaultKeys.efi

(ກ່ອນໜ້ານີ້ ບົດຄວາມນີ້ໄດ້ແນະນຳເຄື່ອງມືອິດສະຫຼະ "LockDown_ms.efi".)

ເນື່ອງຈາກ OVMF ບໍ່ໄດ້ມາພ້ອມກັບຄີ SecureBoot ໃດໆທີ່ຕິດຕັ້ງໄວ້, ພວກເຮົາຈຳເປັນຕ້ອງຕິດຕັ້ງບາງຢ່າງເພື່ອຈຳລອງສິ່ງທີ່ເຄື່ອງ UEFI ທີ່ໄດ້ຮັບການຮັບຮອງຈາກ MS ຈະມີມາໃຫ້. ຕອນນີ້ OVMF ມາພ້ອມກັບໄຟລ໌ binary ທີ່ຈຳເປັນໃນການຕັ້ງຄ່າຊຸດຄີເລີ່ມຕົ້ນ. ວິທີທີ່ງ່າຍທີ່ສຸດແມ່ນການໃຊ້ UefiShell.iso ເຊິ່ງມີຢູ່ໃນ /usr/share/edk2/ovmf/UefiShell.iso. ບູດ VM ຂອງທ່ານດ້ວຍສິ່ງນີ້ເປັນໄຟລ໌ CD-ROM ແລະ ມັນຄວນຈະບູດເຂົ້າສູ່ UEFI shell. ທີ່ໜ້າຈໍຮັບຄຳສັ່ງ

  • Shell> fs0:

  • FS0:\> EnrollDefaultKeys.efi

  • FS0:\> reset

  • VM ຈະເລີ່ມຕົ້ນໃໝ່. ປ່ອຍໃຫ້ມັນບູດເຂົ້າສູ່ Fedora ຕາມປົກກະຕິ. ເຂົ້າສູ່ລະບົບ

  • ທ່ານຄວນເຫັນຂໍ້ຄວາມ 'Secure boot enabled' ໃນ dmesg. ຕອນນີ້ Secureboot ຈະຖືກເປີດໃຊ້ງານສຳລັບການບູດທຸກໆຄັ້ງຕໍ່ໄປ.

ການທົດສອບ Secure Boot ຂອງ Fedora CD/DVD ໃນ VM

ເມື່ອທ່ານມີ VM ທີ່ຕັ້ງຄ່າ secureboot ຕາມທີ່ໄດ້ອະທິບາຍໄວ້ຂ້າງເທິງແລ້ວ, ມັນງ່າຍທີ່ຈະໃຊ້ສິ່ງນີ້ເພື່ອທົດສອບການຮອງຮັບ secureboot ຂອງສື່ ISO.

  • ໃຊ້ virt-manager ເພື່ອເຊື່ອມຕໍ່ສື່ ISO ເຂົ້າກັບ VM ຂອງທ່ານ

  • ໃຊ້ virt-manager ເພື່ອປ່ຽນການຕັ້ງຄ່າການບູດຂອງ VM ໃຫ້ບູດຈາກ CDROM

  • ເລີ່ມຕົ້ນ VM

  • ສະຫຼັບໄປໃຊ້ເທີມິນອລພາຍໃນ VM, ກວດສອບວ່າ Secureboot ຖືກເປີດໃຊ້ງານຫຼືບໍ່ ໂດຍການກວດສອບ dmesg

ໝາຍເຫດ

ການນຳໃຊ້ UEFI ກັບ AArch64 VMs

ລຸ້ນ AArch64 ຂອງ Fedora ຈະເຮັດວຽກໄດ້ໃນ UEFI ເທົ່ານັ້ນ, ດັ່ງນັ້ນຈຶ່ງຕ້ອງມີ UEFI ພາຍໃນ VM. ຢ່າງໃດກໍຕາມ, ຂັ້ນຕອນແມ່ນແຕກຕ່າງກັນເລັກນ້ອຍ. ເບິ່ງໜ້ານີ້ສຳລັບເອກະສານຄົບຖ້ວນ: https://fedoraproject.org/wiki/Architectures/AArch64/Install_with_QEMU