要了解有关 QEMU 配置的更多信息,我想ubuntu20.10
直接在命令行上启动 VM,而不是使用虚拟管理器。
我已经读过将 libvirt xml 转换为 qemu 命令行,一种方法是查看/var/log/libvirt/qemu/ubuntu20.10.log
以检索调用的qemu-system-x86_64
命令。
例如,我通过 virt-manager 启动虚拟机,然后检查其日志:
LC_ALL=C \
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin \
HOME=/var/lib/libvirt/qemu/domain-11-ubuntu20.10 \
XDG_DATA_HOME=/var/lib/libvirt/qemu/domain-11-ubuntu20.10/.local/share \
XDG_CACHE_HOME=/var/lib/libvirt/qemu/domain-11-ubuntu20.10/.cache \
XDG_CONFIG_HOME=/var/lib/libvirt/qemu/domain-11-ubuntu20.10/.config \
QEMU_AUDIO_DRV=spice \
/usr/bin/qemu-system-x86_64 \
-name guest=ubuntu20.10,debug-threads=on \
-S \
-object secret,id=masterKey0,format=raw,file=/var/lib/libvirt/qemu/domain-11-ubuntu20.10/master-key.aes \
...
但调用会触发以下错误:
2021-03-11T21:38:13.041883Z qemu-system-x86_64:-对象秘密,id = masterKey0,format = raw,file = / var / lib / libvirt / qemu / domain-11-ubuntu20.10 / master-key .aes:
无法读取 /var/lib/libvirt/qemu/domain-11-ubuntu20.10/master-key.aes:无法打开文件“/var/lib/libvirt/qemu/domain-11-ubuntu20.10/master- key.aes”:没有这样的文件或目录
事实上,/var/lib/libvirt/qemu/domain-11-ubuntu20.10/
不存在。
为什么会记录明显错误的命令?如何通过 CLI 正确启动虚拟机?
更新:更多信息
该文件夹/var/lib/libvirt/qemu/domain-xx-ubuntu20.10/
似乎是在通过 virt-manager 启动虚拟机时临时创建的。停止虚拟机会导致该文件夹再次被删除(因此出现命令错误)。
我还尝试了链接帖子中的其他建议解决方案:
替代方案2
ps -fA | cat # copy qemu command while VM started via virt-manager
# problem is the same here with a temporary folder being referenced.
替代方案3
virsh domxml-to-native qemu-argv --domain ubuntu20.10
假定一个域文件夹/var/lib/libvirt/qemu/domain--1-ubuntu20.10
,但该文件夹不存在。命令输出:
LC_ALL=C PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin HOME=/var/lib/libvirt/qemu/domain--1-ubuntu20.10 XDG_DATA_HOME=/var/lib/libvirt/qemu/domain--1-ubuntu20.10/.local/share XDG_CACHE_HOME=/var/lib/libvirt/qemu/domain--1-ubuntu20.10/.cache XDG_CONFIG_HOME=/var/lib/libvirt/qemu/domain--1-ubuntu20.10/.config QEMU_AUDIO_DRV=spice /usr/bin/qemu-system-x86_64 -name guest=ubuntu20.10,debug-threads=on -object secret,id=masterKey0,format=raw,file=/var/lib/libvirt/qemu/domain--1-ubuntu20.10/master-key.aes ...
并在调用时按预期产生以下错误:
2021-03-12T09:34:03.794205Z qemu-system-x86_64:-对象秘密,id = masterKey0,format = raw,file = / var / lib / libvirt / qemu /domain--1-ubuntu20.10 / master- key.aes:无法读取/var/lib/libvirt/qemu/domain--1-ubuntu20.10/master-key.aes:无法打开文件“/var/lib/libvirt/qemu/domain--1- ubuntu20.10/master-key.aes”:没有这样的文件或目录
作为 QEMU/KVM/virt-manager 生态系统的新手,这让我很困惑。如果您需要更多信息,我会很乐意更新问题。
- Ubuntu 20.04(最新更新)
- 维尔什 6.0.0
- 虚拟管理器 2.2.1
- QEMU 模拟器版本 4.2.1 (Debian 1:4.2-3ubuntu6.14)
- 虚拟机有快照(如果重要的话)
答案1
如果我很好地理解了这个问题,我找到了一个适合我的解决方案https://www.garron.me/en/bits/start-stop-kvm-virtual-machine-command-line.html。这是我为应用建议所做的事情。我刚刚用虚拟管理器制作了一个虚拟机,并将其命名为“Xubuntu20.04”。它实际上已被 virsh 关闭并正确列出:
~$ virsh list --all
Id Name State
-------------------------------
- Xubuntu20.04 shut off
然后我用 virsh 启动它:
~$ virsh start Xubuntu20.04
Domain Xubuntu20.04 started
最后,我使用远程查看器设置了与虚拟机的连接。我使用远程查看器,因为它允许显示我为虚拟机设置的两个显示器。在本例中,我保留默认端口 5900,但当然您可以在方便时更改它:
~$ remote-viewer spice://localhost:5900
不要担心您将看到的输出,虚拟机实际上已启动:
(remote-viewer:15718): Gtk-WARNING **: 14:32:38.836: Theme parsing error: gtk.css:2:15: Unit is missing.
(remote-viewer:15718): GLib-GObject-WARNING **: 14:32:39.635: value "64" of type 'gint' is invalid or out of range for property 'desktop-width' of type 'gint'
(remote-viewer:15718): GLib-GObject-WARNING **: 14:32:39.635: value "64" of type 'gint' is invalid or out of range for property 'desktop-height' of type 'gint'
仅此而已,我希望这个提示可以对某人有所帮助。