服务器系统启动卡logo问题解决分析

系统版本:Kylin-4.0.2-server-sp4-20200808.J1-57s-xxc_01-20210112-x86_64

问题:系统启动一直卡在麒麟logo那里,进不去系统。在gurb里去掉系统启动参数quiet和splash,发现启动卡在如下界面。

排查:开始怀疑是掉电导致文件系统损坏,挂光盘进救援模式修复fsck.ext4 /dev/sda1的boot分区和sda2的/分区,重启还是一样的现象。

后来得知之前安装了软件QT 5.14,安装之后改了配置文件/etc/ld.so.conf.d/libc.conf,在里面加了两行:/opt/QT5.14.2/5.14.2/gcc_64/lib和/home/rbx112a/Signal/SignalServer。ldconfig生效。过了一会终端开始异常报错,关闭终端就打不开新终端了。此时重启就到了卡logo那里进不了系统了。

解决方法:挂光盘进入救援模式,mount /dev/sda2 /mnt将/挂载到/mnt下,chroot /mnt,发现vim和ldd等命令不能使用,猜测可能是系统底层库被替换掉了。

echo命令还能使用,进入/的etc/ld.so.conf.d目录。将libc.conf回复成之前的内容。echo -e "# libc default configuration\n/usr/local/lib" > libc.conf。ldconfig生效,此时发现vim等命令可以使用。退出reboot重启可以进系统,问题解决。

/etc/ld.so.conf这个文件记录了编译时使用的动态链接库的路径。默认情况下,编译器只会使用/lib和/usr/lib这两个目录下的库文件。如果你安装了某些库,比如在安装 gtk+-2.4.13时(需要glib-2.0 >= 2.4.0),辛苦的安装好 glib 后,没有指定 --prefix=/usr,这样glib库就装到了/usr/local下。在检查了这一点后,要以 root 的身份运行/sbin/ldconfig 。库文件的路径如 /usr/lib 或 /usr/local/lib 应该在 /etc/ld.so.conf 文件中,这样 ldd 才能找到这个库。

*

后续在这个服务器上遇到其他问题,也是在/etc/ld.so.conf和/etc/ld.so.conf.d/libc.conf里面加了qt路径ldconfig然后重启导致系统没有图形化,后面尝试改回去但是ldconfig不生效,报错/lib/ 不是符号连接。因为他们程序需要拷了一些库到/lib/目录下。删了这些库可以执行ldconfig重启lightdm进入图形界面。ldconfig如下图。

加qt路径的解决方法是在/etc/ld.so.conf.d/目录下新建一个qt.conf,里面写入qt的路径/opt/qt5.14/xxx/gcc/lib。

使用到了nvidia显卡的opengl。安装了nvidia驱动和cuda。打开qtcreator报错找不到opengl,因为安装nvidia驱动时连着opengl一起安装了。卸载驱动重新安装加上参数-no-opengl-files不安装opengl,让cuda的opengl生效解决。

相关推荐
强里秋千墙外道2 小时前
【Linux】ssh升级到最新版本-以ubuntu为例
linux·运维·ssh
先做个垃圾出来………2 小时前
Docker容器部署方法
运维·docker·容器
minhuan2 小时前
构建AI智能体:七十五、用扣子平台创建工作流:从自动化到智能化的进阶之路
运维·自动化·工作流构建·意图识别工作流
QC七哥2 小时前
关于宽带网络下公网地址的理解
服务器·网络
老实巴交的麻匪2 小时前
(八)学习、实践、理解 CI/CD 与 DevOps:持续集成 CI,从源代码到容器镜像
运维·云原生·自动化运维
馨谙3 小时前
OpenSSH 安全配置核心概念解析
linux·服务器·网络
半桔3 小时前
【IO多路转接】IO 多路复用之 select:从接口解析到服务器实战
linux·服务器·c++·github·php
无聊的小坏坏3 小时前
从零开始:C++ 线程池 TCP 服务器实战(续篇)
服务器·c++·tcp/ip
ink@re3 小时前
Linux iptables:四表五链 + 实用配置
linux·运维·服务器
共享家95273 小时前
Linux 信号控制
linux·服务器