一,安裝命令
以安裝ubuntu20.04為例
$ qemu-img create -f qcow2 ubuntu.qcow2 64G
$ virt-install \
--boot uefi \
--name ubuntu \
--vcpus 4 \
--cpu host-passthrough \
--ram 4096 \
--memballoon none \
--clock offset='localtime' \
--network network=default \
--graphics vnc,listen=0.0.0.0,port=5901 \
--video=qxl \
--disk ./ubuntu.qcow2 \
--cdrom=./ubuntu20.04.iso \
--boot cdrom,hd \
--input tablet
二,安裝自定義內核
出現以下錯誤
Loading Linux 5.10.54 ...
error: bad shim signature
該問題是由于SecureBoot引起,查看此時SecureBoot狀態為enabled
$ mokutil --sb-state
SecureBoot enabled
三,關閉secure boot
$ virsh edit ubuntu
<os firmware='efi'>
  <loader secure='yes'/>
  <firmware>
    <feature enabled='yes' name='secure-boot'/>
    <feature enabled='no' name='enrolled-keys'/>
  </firmware>
</os>
3.1 重新創建并啟動虛機
如果libvirt版本高于8.1.0, 直接使用virsh start $vm --reset-nvram即可。
8.1.0版本以下采用以下命令
$ virsh dumpxml ubuntu > ubuntu-with-nosecure.xml
$ virsh undefine --nvram ubuntu
$ virsh define ubuntu-with-nosecure.xml
$ virsh start ubuntu
虛機啟動后查看此時SecureBoot狀態,為disabled即可進行自定義內核安裝
$ mokutil --sb-state
SecureBoot disabled
Platform is in Setup Mode