qemu:CPU 型号“主机”需要 KVM 或 HVF,但 kvm-ok 没问题

jul*_*432 5 linux virtualization kvm qemu

问题 我尝试使用以下配置运行 qcow 映像:

:~$ sudo ~/Downloads/qemu-7.1.0/bin/debug/native/x86_64-softmmu/qemu-system-x86_64 
-L -enable-kvm -cpu host -s -kernel bzImage -m 2048
-hda rootfs.qcow2-append "root=/dev/sda rw
nokaslr" -net nic,model=virtio -net user,hostfwd=tcp::5555-:22
Run Code Online (Sandbox Code Playgroud)

错误信息:

qemu-system-x86_64: CPU model 'host' requires KVM or HVF
Run Code Online (Sandbox Code Playgroud)

但 kvm 应该没问题:

:~$ kvm-ok
INFO: /dev/kvm exists
KVM acceleration can be used

Run Code Online (Sandbox Code Playgroud)

我做了什么:

我想在 7.1.0 版本中使用 qemu,并使用 tar 存档按照wiki安装它。

# Switch to the QEMU root directory.
cd qemu
# Prepare a native debug build.
mkdir -p bin/debug/native
cd bin/debug/native
# Configure QEMU and start the build.
../../../configure --enable-debug
make
# Return to the QEMU root directory.
cd ../../..
Run Code Online (Sandbox Code Playgroud)

wiki 上的简单测试效果很好。

bin/debug/native/x86_64-softmmu/qemu-system-x86_64 -L pc-bios
Run Code Online (Sandbox Code Playgroud)

Pet*_*ell 5

“-L”选项需要一个参数(BIOS 和其他二进制文件的路径),但您没有给它一个参数。因此,QEMU 的命令行解析器认为您要求它查找名为“-enable-kvm”的目录,并且您根本没有提供“-enable-kvm”作为选项。所以它在 TCG 中运行,其中“-cpu host”无效。

您需要修复命令行:要么正确指定 -L 选项,要么如果不需要它,则将其删除。

您在“-append”之前还缺少一个空格。

如果您从教程中获得此命令行,请仔细重新检查并确保其完全正确,包括要添加的所有必要部分以及所有空格和标点符号都匹配。