Qemu 表现得非常奇怪,好像它是 32 位的

Qemu behaving very weirdly as if it were 32 bits

所以我正在使用 arch wiki 从头开始​​制作这个多启动 pendrive,我想在 qemu 中测试它。我安装的 grub 是 efi 64 位所以我自然 运行

qemu-system-x86_64 -m 512 -enable-kvm -usb -device usb-host,hostbus=1,hostaddr=7

但引导加载程序显示错误:/grub/i386-pc/normal.mod not found 当然是这样。因为 i386-pc 是用于 32 位安装的!!!这些文件在 /boot/grub/x86_64-efi 文件夹中!!!我尝试了所有可能的谷歌搜索,但我的情况没有任何结果。我下载了符号链接以查看 qemu-system-x86_64 是否实际上是另一个伪装的二进制文件,但事实并非如此。有人可以帮忙吗?

用于 UBUNTU:

$ sudo qemu-system-x86_64 -m MEMORY_IN_BYTES -enable-kvm -cpu host -hda /dev/sdX
-drive if=pflash,format=raw,readonly,file=/usr/share/OVMF/OVMF_CODE.fd 
-drive if=pflash,format=raw,file=/.../my_uefi_vars.fd

查看其他操作系统以及如何将文件复制到 my_uefi_vars.fd: https://wiki.archlinux.org/title/Unified_Extensible_Firmware_Interface#OVMF_for_virtual_machines

如果出现类似“UEFI QEMU DVD-ROM QM00003 Not Found”的问题,请修复启动顺序: https://pve.proxmox.com/wiki/OVMF/UEFI_Boot_Entries

来自 reddit 的 plushkatze 和 r3dk0w 的致谢。

编辑:补充说明。这与 efi 的固件有关,如果您从 qemu 运行 它必须从文件加载到上面命令的 -drives 中。例如,对于虚拟框,您还必须使用命令切换到 efi 固件,以更改 vdmk 文件以使用它启动。