我使用安装指南将 Arch Linux 安装到 KVM 虚拟机中。安装成功,因为重新启动后,我启动了我的全新安装。问题是在我关闭后,我无法再启动到我的新系统。
这是我的 qemu 启动脚本。如果我取消注释 iso 文件,我可以重新启动到 arch iso 并 chroot 进入新安装,据我所知,一切看起来都很好。
cp /usr/share/OVMF/OVMF_VARS.fd /tmp/my_vars_arch.fd
qemu-system-x86_64 \
-name $vmname,process=$vmname \
-machine type=q35,accel=kvm \
-cpu host,topoext \
-smp 12,sockets=1,cores=6,threads=2 \
-m 32G \
-vga qxl \
-spice port=5930,disable-ticketing=on \
-device vfio-pci,host=43:00.0,multifunction=on \
-device vfio-pci,host=43:00.1 \
-device vfio-pci,host=0b:00.3 \
-rtc clock=host,base=localtime \
-serial none \
-parallel none \
-drive if=pflash,format=raw,readonly,file=/usr/share/OVMF/OVMF_CODE.fd \
-drive if=pflash,format=raw,file=/tmp/my_vars_arch.fd \
-boot order=dc \
-drive file=/dev/NVME-TANK/ext4-zvol,format=raw,if=virtio \
#-drive file=/home/boss/ISOs/archlinux-2022.03.01-x86_64.iso,index=1,media=cdrom \
-nic bridge,br=br0,model=virtio-net-pci
编辑:通过指南安装 Arch 后,我根据这些说明安装了 efibootmgr 和 bootloader
我为 OVMF 固件指定的路径很好,因为它们适用于其他 VM。
我可以按照这些说明再次直接启动系统,但我仍然不确定我需要检查或执行哪些操作才能在默认情况下发生这种情况。我想我安装了 grub 并通过grub.cfg
以下方式正确创建:
grub-install --target=x86_64-efi --bootloader-id=grub_uefi --recheck
接着
grub-mkconfig -o /boot/grub/grub.cfg
我在chroot进入系统后重新运行了上面两个命令,看起来还可以吧?
我错过了什么?
另一个细节,不确定是否相关:如果我注释掉我所有的直通设备,我会得到一个不同的屏幕:
还有一个:我使用最小的 live iso 安装了 Manjaro,同样的事情发生了!重新启动进入新安装,但关闭后,启动到 uefi shell。
验证您是否已生成 fstab 文件。
阅读有关 Initramfs 的部分,如果需要调整和重新生成。
https://wiki.archlinux.org/title/installation_guide#Fstab
https://wiki.archlinux.org/title/QEMU#VM_does_not_boot_when_using_a_Secure_Boot_enabled_OVMF
这就是问题所在,将这些标志添加到 ISO 解决了它。看评论。