我有 qemu-system-x86_64 的参数,它将 unix 套接字作为接口附加到 VM 中:
qemu-system-x86_64
-chardev socket,id=char1,path=/tmp/sock0,server \
-netdev type=vhost-user,id=hostnet1,chardev=char1 \
-device virtio-net-pci,netdev=hostnet1,id=net1,mac=52:54:00:00:00:14
我如何将此接口连接到由 virt-install 创建的 KVM 虚拟机?
答案1
这个问题问得好,我不明白为什么只有 4 票,没有答案。我也有同样的情况,所以我看到的情况如下:我认为在某个时候,这是有效的:https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/6/html/virtualization_administration_guide/sub-sect-domain_commands-converting_qemu_arguments_to_domain_xml- 但是我刚刚尝试过并且它不起作用因为它会说:错误:连接驱动程序不支持该函数:virConnectDomainXMLFromNative。该错误的解释是(https://libvirt.org/drvqemu.html#import-and-export-of-libvirt-domain-xml-configs):
virsh domxml-from-native 提供了一种使用 libvirt Domain XML 将现有的 QEMU 参数集转换为客户机描述的方法……
注意:此操作从 5.5.0 开始被删除,并将返回错误。
在 5.5.0 的发行说明中,他们写道:
qemu:删除对 virDomainQemuAttach 和 virConnectDomainXMLFromNative API 的支持
上述 API 的 qemu 实现已被删除,API 现在会返回错误。该实现已过时很长时间,无法与现代 QEMU 命令行(无论是从 libvirt 还是其他方式生成的)配合使用。
基于此,我认为如果不降级到 libvirt v5.4.0 (2019-06-03),几乎不可能进行“自动转换”。所以这一定是答案。如果这不是一个可接受的解决方案,您可能想像我一样做:我最终手动运行 virt-manager 5 步骤“创建新虚拟机”、“导入现有磁盘映像”,并选择一些我认为与作为命令行参数传递给 qemu-system-x86_64 的参数相似的值。这两种方法都不是好的解决方案,但不幸的是,我没有看到其他方法(因为如果可能的话,我也希望最新版本具有该功能)。