我使用以下命令将 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 固件指定的路径很好,因为它们适用于其他虚拟机。
我可以通过以下方式再次直接启动进入系统这些说明,但我仍然不确定我需要检查或做什么才能默认发生这种情况。我想我安装了 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。
答案1
验证您是否已生成 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 中解决了它。看评论。