我正在尝试创建一个脚本来简化流程,通过它我可以创建一个半虚拟化虚拟机。当我的脚本到达创建虚拟机的部分时,它会冻结,因为它显然试图删除 GPU(根据 dmesg NVRM: Attempting to remove device 0000:0a:00.0 with non-zero usage count!
)。我尝试通过使用 来解决此问题virt-install --print-xml=1
,将其输出解析为一个文件,然后在 中引用该文件virsh create
,但出现了同样的问题。我也尝试过virt-install --noautoconsole --no-install=yes
,但也没有效果。virt-install -p
导致错误说我需要使用 xen,但我使用 kvm 并且根据我的理解(如果我错了,请纠正我 kvm 用于半虚拟化,而 xen 用于完全虚拟化)。该错误似乎导致 libvirtd 冻结,因为不可能终止命令/重新启动 libvirtd,然后使用类似命令sudo virsh list --all
(这将导致冻结)。只有重新启动电脑才能解决该问题
答案1
我不会将此标记为已解决问题,但该问题有一个解决方法:
virt-install --print-xml $commands >"/etc/libvirt/qemu/$vm_name\.xml"
xmlstartlet ...
virsh define "/etc/libvirt/qemu/$vm_name\.xml"
通过使用 virsh Define 代替,它不会启动虚拟机
另外,如果您编辑 xml 文件之后重新运行virsh define $xml_file
然而,我认为这并不能充分回答问题,因为这是一种解决方法,并且必须有一个标志来禁止在安装时运行虚拟机