我在配备 AMD A8-4555M CPU 的 HP Pavilion Touch 14-N009LA 上使用内核 3.12.21 AMD64 运行适用于 AMD64 的 Gentoo Linux。我的桌面环境是KDE 4.12.5。我已经安装了 KVM、libvirtd、polkit 和 virt-manager。但是,当我打开 virt-manager 时,出现以下错误,并且无法对虚拟机执行任何操作:
Unable to connect to libvirt.
authentication failed: polkit: Error getting authority: Error initializing authority: Could not connect: No such file or directory
详细输出在这里:
Unable to connect to libvirt.
authentication failed: polkit: Error getting authority: Error initializing authority: Could not connect: No such file or directory
Libvirt URI is: qemu:///system
Traceback (most recent call last):
File "/usr/share/virt-manager/virtManager/connection.py", line 1002, in _open_thread
self.vmm = self._try_open()
File "/usr/share/virt-manager/virtManager/connection.py", line 984, in _try_open
flags)
File "/usr/lib64/python2.7/site-packages/libvirt.py", line 105, in openAuth
if ret is None:raise libvirtError('virConnectOpenAuth() failed')
libvirtError: authentication failed: polkit: Error getting authority: Error initializing authority: Could not connect: No such file or directory
谷歌搜索后,我发现了以下提示来尝试使其发挥作用,以下是它们的操作方法:
- 确保 polkit 身份验证代理正在运行。我检查了一下,它确实正在运行:
黑色@rockshooter ~ $ ps -ef | grep 波尔基特 黑色 5039 1 0 04:31 ? 00:00:00 /usr/lib64/kde4/libexec/polkit-kde-authentication-agent-1
- 创建一个名为 kvm 的组,向其中添加我的用户 ID,然后创建 polkit 规则来对 kvm 组中希望管理虚拟机的用户进行身份验证。我这样做了,但没有成功:
root@rockshooter /etc/polkit-1/rules.d # cat 50-default.rules polkit.addRule(函数(动作,主题){ if (action.id == "org.libvirt.unix.manage" && subject.isInGroup("kvm")) { 返回 polkit.Result.YES; } }); root@rockshooter /etc/polkit-1/rules.d # grep kvm /etc/group kvm:x:78:qemu,黑色
- 从命令行连接到虚拟机管理程序(使用
virsh
)。我得到完全相同的错误。
black@rockshooter ~ $ virsh --connect qemu:///system 错误:无法连接到虚拟机管理程序 错误:身份验证失败:polkit:获取权限时出错:初始化权限时出错:无法连接:没有这样的文件或目录
答案1
您的系统策略阻止管理本地虚拟化系统。您应该使用su
来运行virt-manager
以及virsh --connect qemu:///system
任何其他与虚拟化相关的任务。