服务器系统启动卡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生效解决。

相关推荐
Lupino21 小时前
我把 OpenClaw 装到服务器上后,才明白它真正该装在哪里(实战复盘)
运维
爱吃橘子橙子柚子4 天前
3CPU性能排查总结(超详细)【Linux性能优化】
运维·cpu
舒一笑6 天前
程序员效率神器:一文掌握 tmux(服务器开发必备工具)
运维·后端·程序员
NineData6 天前
数据库管理工具NineData,一年进化成为数万+开发者的首选数据库工具?
运维·数据结构·数据库
梦想很大很大7 天前
拒绝“盲猜式”调优:在 Go Gin 项目中落地 OpenTelemetry 链路追踪
运维·后端·go
Sinclair7 天前
内网服务器离线安装 Nginx+PHP+MySQL 的方法
运维
叶落阁主7 天前
Tailscale 完全指南:从入门到私有 DERP 部署
运维·安全·远程工作
茶杯梦轩7 天前
从零起步学习RabbitMQ || 第二章:RabbitMQ 深入理解概念 Producer、Consumer、Exchange、Queue 与企业实战案例
服务器·后端·消息队列
甲鱼9298 天前
MySQL 实战手记:日志管理与主从复制搭建全指南
运维
YuMiao9 天前
gstatic连接问题导致Google Gemini / Studio页面乱码或图标缺失问题
服务器·网络协议