无法连接到libvirt在虚拟机管理器中。

是否有一份手册可用,涵盖了在装有图形用户界面的 Ubuntu 工作站上安装 Virtual Machine Manager 的无 GUI 虚拟机服务器的正确设置?两者都是 12.04 版本。

我收到以下错误信息:

unable to connect to libvirt
Verify that
-The libvirt-bin package is installed
-The libvirt daemon has been started
-you are a member of the libvirtd group

the package is installed
for some reason starting the daemon seems to crash

libvirtd start
info:  libvirt version 0.9.8
error: virExecWithHook:328 : cannot find 'pm-is-supported' in path: No such file or directory
also
qemucapsInit:856: Failed to get host power management capabilities

所以我猜我没有正确设置服务器。我找到的所有手册都没有提到“虚拟机管理器”。我只选择了用SSH远程连接的软件包和服务器安装中的“虚拟机服务器”。
所以我想找一个涵盖这个组合的手册,或者只涵盖在同一台机器上同时具有两者的GUI机器,但这对于系统性能作为虚拟化程序来说并不真正有帮助。

这可能是一个与AppArmor相关的问题。请查看/var/log/kern.log文件。您是否找到提到libvirt-binDENIED条目? - qbi
4个回答

首先,确保您的硬件支持虚拟化技术。
egrep '(vmx|svm)' /proc/cpuinfo

如果这个不输出一些数据,那么你的硬件不支持虚拟化,就无法使用KVM。(注意:机器的BIOS/UEFI中也必须启用硬件虚拟化。通常情况下,默认情况下它是启用的。你需要检查一下。)
sudo apt-get update && sudo apt-get install kvm libvirt-bin virtinst bridge-utils

这样你就能得到所需的软件包。
sudo adduser `id -un` libvirtd

这将使您成为必需的群体,以进行虚拟化。注意:如果您正在运行GUI,并且希望运行virt-manager,则必须注销并重新登录才能使其生效!
sudo virsh -c qemu:///system list

这将为您提供系统上的(当前为空)虚拟机列表。
 Id Name                 State
----------------------------------

你现在可以使用virt-manager来通过图形界面管理虚拟机,或者使用virsh通过命令行管理虚拟机。如果你需要帮助使用virsh创建和管理虚拟机,请单独提问 - 这个问题会比较复杂。:)
如果你想在远程工作站上使用运行的virt-manager,请注意你需要从该工作站上具有可用的SSH访问服务器。只要你具备这个条件,并且你正在SSH登录的用户已经像上面所示添加到libvirt-bin组中,它就会“自动工作” - 你可以在远程机器上的virt-manager中设置连接为“SSH类型”,然后指定用户名和IP地址,它会在连接时提示你输入密码(除非你已经设置了无密码公钥认证,那么它将使用该认证方式)。

我遇到了同样的问题。
为了解决它,打开终端并输入:
sudo virt-manager

然后输入您的密码,图形用户界面应该立即打开。

希望这对您有所帮助!


你没有提到你使用的虚拟化平台是什么。
我对libvirt没有经验,但和你一样,我也需要一个虚拟机管理器。这是我解决问题的方法。
我正在使用Virtualbox,目前版本是4.2。这个版本安装了一个叫做vboxweb-service的服务,启动时激活这个服务后,再加上apache web服务器和phpvirtualbox,我现在有了一个完全功能的虚拟机管理器,即使我不在办公室也可以使用。
不幸的是,用于自动启动和关闭虚拟机的virtualbox脚本并不完全可靠,所以我创建了一个包含一些在线找到的代码的脚本,虽然速度有点慢,但能够完成工作,直到vboxautostart-service被完善为止。
按照这个指南:如何自动启动虚拟机,当然还有phpvirtualbox的指南。

  1. 用户是libvirtd的成员。
  2. 最终用户没有对套接字拥有权限。例如:
  3. srwxrwx--- 1 root libvirt 0 Apr 16 10:53 /var/run/libvirt/libvirt-sock
    
  4. 组是libvirt。
  5. 将用户添加到libvirt组中,例如:
  6. sudo adduser frank libvirt
    
  7. 退出并重新登录。