在开始之前我想道歉——我知道这个问题之前已经被问过,我已经找到了一些线程。不幸的是,我对 Linux 非常陌生,我在试图浏览其他人的工作时迷失了方向。
我正在尝试在主机上创建虚拟机。我的主机有 RHEL7,我正在使用 RHEL6.4 制作 VM 我正在使用虚拟机管理器,并且我成功地从 ISO 引导而没有问题。到目前为止,一切都很好。
我现在正在尝试从主机建立与虚拟机的连接,但我很挣扎。我正在尝试使用 Hypervisor QEMU/KVM 添加连接,我的主机的主机名,用户名是我的用户名。最初,我收到一条失败消息,直到我安装了 openssh 和 oepnssh-askpass。现在它提示我输入密码,我输入。好的,按预期工作。
输入密码后,我收到一个弹出错误,内容为
虚拟机管理器连接失败无法连接libvirt qemu+ssh://me@myMachine
身份验证无效:没有可用于验证操作“org.libvirt.unix.manage”的 polkit 代理
验证“libvirtd”守护进程是否正在远程主机上运行。
我花了很多时间试图弄清楚这一点,我不知所措。我已经尝试更新 libvertpd.pid 文件,但是当我尝试运行 systemcl start/stop libvirt-bin 时,我收到一个警告,提示 Unit libvirt-bin.service 未加载。(老实说,我不确定应该或不应该做什么,我只是按照别人的指示,希望它最终能奏效。)
如果我尝试运行 libvirtd -d,我会收到一条错误消息:“无法获取 pidfile。请检查 /var/log/messages 或在不使用 --daemon 的情况下运行以获取更多信息。” 我已经导航到适当的文件夹并确认 libvirtd.pid 确实存在,并且在它应该挂在的地方。当我尝试检查消息部分时,没有来自今天的消息——只有 4 天前的消息。
我最好的猜测是我的 libvirtd 有问题,但我不知道是什么问题,也不知道如何诊断它。在试图找出问题/盲目遵循其他人的建议时,我安装了 firewalld、dmidecode、dnsmasq、libvirt、libvirt-python、libguestfs-tools 和 virt-install,但似乎都没有以任何方式改变问题. 我仍然遇到与以前相同的错误。
如果有人知道如何解决这个问题(并且可以握住我的手一点点导航到哪里和输入什么),我将非常感激。
如果您
virsh --connect qemu:///system
在 VM 主机上运行 libvirt CLI 客户端,它会提示您输入密码以管理系统 VM。该提示实际上是由策略工具包 (polkit) 代理完成的。当 virt-manager 以您的用户身份登录时,它会尝试做同样的事情,但是由于实际上没有终端可以询问您,所以它失败了。这就是您看到的奇怪错误。
解决方法相对简单:允许您的用户在没有密码的情况下管理虚拟机。您可以通过将您的用户添加到正确的组来执行此操作
libvirt
(RedHat 和 Debian/Ubuntu 都使用相同的组)。