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

相关推荐
枫叶丹436 分钟前
【在Linux世界中追寻伟大的One Piece】进程信号
linux·运维·服务器
刻词梨木39 分钟前
ubuntu中挂载点内存不足,分配不合理后使用软链接的注意事项
linux·运维·ubuntu
灯火不休ᝰ2 小时前
[win7] win7系统的下载及在虚拟机中详细安装过程(附有下载文件)
linux·运维·服务器
数云界4 小时前
如何在 DAX 中计算多个周期的移动平均线
java·服务器·前端
HHoao5 小时前
Ubuntu启动后第一次需要很久才能启动GTK应用问题
linux·运维·ubuntu
小灰兔的小白兔5 小时前
【Ubuntu】Ubuntu常用命令
linux·运维·ubuntu
winds~5 小时前
ubuntu中软件的进程管理-结束软件运行
linux·运维·ubuntu
bush46 小时前
使用root账号ssh登录虚拟机ubuntu
运维·ubuntu·ssh
叫我龙翔7 小时前
【Linux】进程间关系与守护进程
linux·运维·服务器·计算机网络
S hh7 小时前
【Linux】进程地址空间
java·linux·运维·服务器·学习