服务器系统开机无法进入图形界面是什么原因?怎么解决?

【问题描述】一台银河麒麟服务器系统开机黑屏,无法进入图形界面,报错如下:SDEl NMl watchdog: Bind interrupt failed. Firmware may not support
【排查思路】
1、一开始被这个报错迷惑,以为是固件不支持SDEI问题导致的系统无法起来
2、后来发现可以ping通,并且能ctrl alt F2切换至字符界面,于是猜测问题可能只是lightdm服务没起来
3、[root@localhost ~]# systemctl status lightdm
## 发现这个服务确实为failed,报错如下:Failed to start Light Display Manager lightdm.service: Service RestartSec=100ms expired, scheduling restart. ightdm.service: Scheduled restart job, restart counter is at 5.lightdm.service:Triggering OnFailure= dependencies.
4、[root@localhost ~]# journalctl -u lightdm
## 查看lightdm服务的具体报错情况,如下:可以看出lightdm启动失败,systemd在lightdm服务启动失败后每间隔100ms尝试重新拉起该服务,失败超过5次,触发保护,暂时停止重启尝试。同时由于lightdm最终被判定为启动失败,systemd会根据lightdm.service文件,执行 OnFailure= 指令

这里我截取了该系统中的lightdm.service文件中OnFailure部分内容,可以看出,系统判定lightdm启动失败后,会触发开机动画停止
5、[root@localhost ~]# ps aux | grep xorg
## 从返回结果确定Xorg服务也没起来:
6、[root@localhost ~]# ukui-greeter 发现找不到该命令
7、[root@localhost ~]# rpm -qa | grep ukui-greeter 没有返回,定位到问题,为ukui-greeter被卸载
8、[root@localhost ~]# yum history
## 发现历史yum命令中只有安装数据库、用户的视频服务所需软件包、以及卸载了cmake、net-snmp-utils的操作
9、cat /var/log/dnf.rpm.log | grep "Erase"
## 该命令查看所有被卸载的软件包,果然看到除了cmake相关包,ukui-greeter也被卸载了,而且被卸载的时间已经是去年十二月
10、与用户确认,这个系统最近一次正常使用确实是去年十二月份 ;结合yum history和dnf.rpm.log日志,yum history中只有卸载cmake和net-snmp-utils的操作,但是dnf.rpm.log中还有别的被卸载的软件,猜测是卸载cmake附带将ukui-greeter等包一块卸载了,于是先提供ukui-greeter给用户先安装,的确报缺cmake的依赖,而且我在虚拟机卸载cmake也会将ukui-greeter一块卸掉,证明了我的猜测正确
11、[root@localhost ~]# cmake --version
## 看到有cmake这个命令 ,版本为3.22.5
## 而该系统自带的cmake版本为3.16.5,以下为正常系统截图
12、[root@localhost ~]# which cmake
[root@localhost ~]# rpm -qa | grep cmake
## 看到cmake命令路径为/usr/bin/cmake ,然而却没有cmake软件包,结合我的同版本的虚拟机,看到系统自带的cmake为3.16.5版本,因此确定是用户先卸载原本的cmake,再源码安装了3.22.5的版本
13、[root@localhost ~]# find / -name cmake
## 看到/home/..../3.22.5/bin/cmake,并且和/usr/bin/cmake的md5值一样,进一步确定是用户源码编译并将cmake拷贝到/usr/bin/目录下的
【解决方法】
1、[root@localhost ~]# mv /usr/bin/cmake /usr/bin/cmake-3.22## 给源码编译的cmake命令改名2、[root@localhost ~]# rpm -ivh *.rpm## 将ukui-greeter、cmake及依赖包提供给用户安装3、[root@localhost ~]# systemctl restart lightdm## 重启lightdm服务
至此,问题解决
【知识拓展】 银河麒麟系统中 LightDM 与 UKUI-Greeter 的关系
在银河麒麟操作系统中,LightDM 和 ukui-greeter ,LightDM 和 ukui-greeter 是登录管理器(Display Manager)与其对应的登录界面(Greeter)之间的前后端协作关系,lightdm是后端框架,而ukui-greeter是前端皮肤。在本案例中,lightdm按照配置,试图去启动 ukui-greeter来显示登录界面,但由于ukui-greeter被卸载,导致作为框架的lightdm,在前端崩溃后,自身进程也无法维持,随之退出
LightDM 的作用
LightDM 是一个轻量级的显示管理器,负责管理用户会话的启动和切换。它作为系统级服务运行,负责启动X/Wayland显示服务器(X-Server)、处理用户认证、会话选择和多用户环境下的登录流程。LightDM 本身不提供图形界面,而是通过插件化的架构支持不同的“greeter”前端。
UKUI-Greeter 的作用
UKUI-Greeter 是专为 UKUI 桌面环境开发的 LightDM 前端插件。它提供符合 UKUI 设计风格的图形化登录界面,包括用户头像、密码输入框、会话类型选择等功能。UKUI-Greeter 通过 LightDM 的接口与系统交互,将用户输入传递给 LightDM 完成认证流程。
协作流程
1、启动阶段
系统启动时,LightDM 作为守护进程加载,并根据配置调用 UKUI-Greeter 渲染登录界面。
2、用户交互阶段
用户在 UKUI-Greeter 界面输入凭据后,UKUI-Greeter 通过 D-Bus 等机制将信息传递给 LightDM。
3、会话管理阶段
LightDM 验证用户凭据并启动对应的 UKUI 桌面会话,过程中 UKUI-Greeter 会退出,由桌面环境接管显示。
技术依赖关系
UKUI-Greeter 依赖 LightDM 的 API 实现功能。
LightDM 通过 greeter-session 配置项动态加载 UKUI-Greeter。
两者通信通常采用 D-Bus 或 LightDM 提供的 liblightdm-gobject 库。
本文内容仅供参考,不构成任何专业建议。使用本文提供的信息时,请自行判断并承担相应风险。



