如何在远程 Ubuntu/Debian Linux 服务器上 运行 没有 libvirt 的无头 qemu?

How to run headless qemu without libvirt on a remote Ubuntu/Debian Linux server?

我尝试了什么?

qemu-system-x86_64 -hda hdd.img -m 1G -net nic, macaddr=MACADDR -net bridge,br=BRIDGE -enable-kvm -nographic -daemonize

qemu-system-x86_64 -hda hdd.img -m 1G -net nic, macaddr=MACADDR -net bridge,br=BRIDGE -enable-kvm -display none -daemonize

qemu-system-x86_64 -hda hdd.img -m 1G -net nic, macaddr=MACADDR -net bridge,br=BRIDGE -enable-kvm -nographic -serial mon:stdio -append 'console=ttyS0'

MACADDR 和 BRIDGE 在我的系统中定义。

我使用了 -display none -daemonize 但失败并出现错误

qemu-system-x86_64: -nographic cannot be used with -daemonize

我也试过 -nographic -serial mon:stdio -append 'console=ttyS0' 但也失败了错误:

Failed to initialize module: /usr/lib/x86_64-linux-gnu/qemu/block-iscsi.so
Note: only modules from the same build can be loaded.
Failed to initialize module: /usr/lib/x86_64-linux-gnu/qemu/block-curl.so
Note: only modules from the same build can be loaded.
Failed to initialize module: /usr/lib/x86_64-linux-gnu/qemu/block-rbd.so
Note: only modules from the same build can be loaded.
Failed to initialize module: /usr/lib/x86_64-linux-gnu/qemu/block-dmg.so
Note: only modules from the same build can be loaded.

所以我的问题是

如何在远程 Linux 服务器上 运行 没有 libvirt 的无头 qemu?

提前致谢。

这不是您问题的完整答案,但我可以看到一些可能会引导您朝着正确方向前进的事情。

首先,尝试 运行 QEMU,但不要让它无头,也不要守护它。 “无法初始化模块”问题表明 qemu-system-x86_64 二进制文件与它尝试加载的动态加载模块不匹配。这与运行ning headless无关,所以你可以单独修复它。

其次,您应该停止尝试使用“-nographic”。这是一个“方便”的选项,可以同时做很多事情:它把串行端口和监视器放在控制台上,它禁用显示输出,它不给来宾一个图形设备,等等。你最好使用多个单独的选项来完成你想要的单独的事情。 (例如,“-display none”表示“不要放置 GUI window”)。

第三,你应该弄清楚你希望你的控制台输出去哪里:“-serial mon:stdio”意味着你想将串口发送到你的终端,但是“-daemonize”意味着你不不想向您的终端发送任何内容。如果您同时执行这两项操作,QEMU 不会报错,但它们并没有真正的意义。