A.19.9. 当 libvirtd 已启动时,没有演示客户机虚拟机
- 症状
- libvirt 守护进程成功启动,但没有显示客户机虚拟机。
# virsh list --all Id Name State ----------------------------------------------------
- 正在调查
- 此问题有多种可能的原因。执行这些测试有助于确定此情况的原因:
- 验证 KVM 内核模块
- 确定在内核中插入 KVM 内核模块:
# lsmod | grep kvm kvm_intel 121346 0 kvm 328927 1 kvm_intel
如果您使用 AMD 机器,请验证在内核中使用类似命令 lsmod | grepkvm_amd
内核模块是否已插入到内核中。如果模块不存在,请使用 modprobe <modulename> 命令插入它们。注意虽然这比较常见,但 KVM 虚拟化支持可能会被编译到内核中。在这种情况下,不需要模块。 - 验证虚拟化扩展
- 验证主机上是否支持并启用虚拟化扩展:
# egrep "(vmx|svm)" /proc/cpuinfo flags : fpu vme de pse tsc ... svm ... skinit wdt npt lbrv svm_lock nrip_save flags : fpu vme de pse tsc ... svm ... skinit wdt npt lbrv svm_lock nrip_save
在 BIOS 设置中启用硬件固件配置中的虚拟化扩展。详情请查看您的硬件文档。 - 验证客户端 URI 配置
- 验证客户端的 URI 是否已按预期配置:
# virsh uri vbox:///system
例如,此消息显示 URI 已连接到 VirtualBox 管理程序,而不是 QEMU,并显示了设置为连接到 QEMU 管理程序的 URI 的配置错误。如果 URI 正确连接到 QEMU,则会显示相同的信息:# virsh uri qemu:///system
当存在其他虚拟机监控程序时,默认情况下 libvirt 可能进行通信时会出现这种情况。
- 解决方案
- 执行这些测试后,使用以下命令查看客户端虚拟机列表:
# virsh list --all