Error【0004】:virt-manager打开报错

1. 报错

1.1 错误背景

欲通过命令行,执行virt-manager名,来打开图像界面,执行命令报错。

1.1 错误提示

报错信息:
raise gtk_error
RuntimeError: could not open display

1.2 错误图示

2. 分析

根据报错提示,很明显能够定位为无法打开显示界面。
对于任何C/S模型出现问题,可以从以下三个层次定位问题:

  1. 服务端
  2. 传输过程
  3. 客户端

同时,因为打开的是图形界面,因此必须要求远端已经安装了图形库。这便是根据应用类型来更加细致地定位问题。

服务端指的是:

  • 没有安装相关软件包
  • 没有开启相关服务

传输过程指的是:

  • ssh协议未开启X11转发功能
  • 防火墙限制了转发
  • 其他安全策略限制了转发

客户端指的是:

  • xshell没有开启接受转发功能
  • 本地没有显示图像的软件

3. 定位

定位问题,从客户端开始,直至服务端:

  1. 本地已经安装了xming显示x-server的软件,并且已经启动。因此不会是这个问题
  2. 执行命令的终端xshell,已经在属性中设置了每个连接都能够进行X11转移,配置【转发X12连接到X DISPLAY(D):localhost:0:0】

    xshell开启X11转发,参见博客《xshell启动X11转发.md》

  3. 检查虚拟机console是否关闭防火墙。如果未关闭,执行service iptables stop关闭
  4. 执行getenforce检查console是否关闭selinux。如果未关闭,执行setenforce 0进行关闭
  5. 查看ssh是否开启X11转发功能。如果没有开启,修改配置开启。

    SSH开启X11转发,参见博客《ssh协议详解.md》

  6. 确认console安装了图形库

4. 解决

经过上述过程的排查,能够把重点定位在第6条,其他5条都依次排查无误。
通过执行命令rpm -qa | grep xorg-x11,确认系统并没有安装xorg-x11。
通过YUM安装以下软件包:

xorg-x11-server-utils-7.5-13.el6.x86_64
xorg-x11-drv-ati-firmware-7.1.0-3.el6.noarch
xorg-x11-xauth-1.0.2-7.1.el6.x86_64
xorg-x11-font-utils-7.2-11.el6.x86_64
xorg-x11-xinit-1.0.9-14.el6.x86_64
xorg-x11-utils-7.5-6.el6.x86_64
xorg-x11-proto-devel-7.6-25.el6.noarch

此时,通过virt-manager依然无法打开图形界面,配置DISPLAY=localhsot:0.0也无效。最后重启了console,然后生效。
在重启console之后,执行virt-manager命令时,打开的图形界面,字体全部为方块。
因此需要安装字体依赖包,执行命令yum -y install dejavu-lgc-sans-fonts解决问题。

5. 总结

最小化安装过程中,很多软件,包括字体都是没有安装的。因此需要耐心地安装这些依赖环境。并且踩过坑之后,总结一下,下次便不会再采坑。

猜你喜欢

转载自www.cnblogs.com/liwanliangblog/p/9095526.html