Virt-Manager 无法连接到图形控制台

Virt-Manager 无法连接到图形控制台

从昨天开始,我无法virt-manager再使用 GUI 查看任何正在运行的虚拟机 (QEMU/KVM)。当我尝试在其内置查看器中查看虚拟机的屏幕时,我收到以下错误消息:

连接到图形控制台时出错:
内部错误:无法执行 QEMU 命令“getfd”:
没有通过 SCM_RIGHTS 提供文件描述符

这适用于我的所有虚拟机。

我仍然可以正确查看并与我的虚拟机交互virt-viewer,只是virt-manager内置查看器坏了。

这里出了什么问题?我该如何修复?

编辑:我刚刚发现我正在使用来自 archive.getdeb.net repo 的virt-manager版本。1:1.4.0-1~getdeb1

答案1

在尝试将最新的 virt-manager 1.4.0 合并到 Ubuntu 时,我遇到了同样的问题。这似乎不是 virt-manager 中的错误,只是它向虚拟机发送显示数据的方式发生了变化。

我打开了一个错误,以向 libvirt 添加必要的权限,这是定义 apparmor 配置文件的地方 -https://bugs.launchpad.net/ubuntu/+source/libvirt/+bug/1668681

要在不禁用安全附加的情况下解决此问题,请执行以下操作:

# allow connect with openGraphicsFD to work
unix (send, receive) type=stream addr=none peer=(label=/usr/sbin/libvirtd),

到文件/etc/apparmor.d/abstractions/libvirt-qemu但不在 qemu-bridge-helper 部分。(因此就在“owner @{PROC}/0-9*/fd/ r,”之后)

然后使用 重新加载配置文件sudo systemctl reload apparmor

尽管如此,我始终建议使用我们档案中的软件包来获得最佳支持。

答案2

就我而言,是 apparmour 阻止了访问。apparmour magic 配置文件生成器似乎没有正常工作。我的解决方法如下。

启动 KVM 实例并收到错误后,我执行了以下操作:

$sudo apparmour_status

其中列出了导致问题的配置文件,

libvirt-<some long key> 

然后我将 apparmour 配置文件设置为抱怨而不是强制执行:

$sudo aa-complain /etc/apparmor.d/libvirt/libvirt-<some long key>

现在我不再收到错误。希望这个冲突能得到解决。

答案3

libvirt我无法重现该问题,但10 月 5 日 有更新:

libvirt-bin-1.3.1-1ubuntu10.2已升级为libvirt-bin-1.3.1-1ubuntu10.3
libvirt0-1.3.1-1ubuntu10.2已升级为libvirt01.3.1-1ubuntu10.3

如果您没有更改任何设置或其他内容,则很可能在升级过程中出现了问题。完全删除所有virt-manager相关软件包并重新安装它们。

sudo apt purge libvirt-bin libvirt-glib libvirt0 virt-manager virt-viewer virtinst  
sudo apt install libvirt-bin libvirt-glib libvirt0 virt-manager virt-viewer virtinst  

重新启动主机操作系统 - 现在一切都应该像以前一样正常工作。

答案4

似乎是virt-manager版本中的一个错误1:1.4.0-1~getdeb1中的一个错误http://getdeb.net

再次将软件包降级到官方存储库(1:1.3.2-3ubuntu1.16.04.2来自xenial-updates)提供的最新版本即可解决此问题。

更新:版本1:1.4.0-1~getdeb2尚未修复该问题。

相关内容