起缘
今天想安装个HP驱动,然后点了下更新(默认就全部更新了),但网速又不给力。下载、安装到一半...
期间,我发现打不开不了设置了,当时想着可能是因为没更新完吧,才会有这种问题。
......
然后后面锁了一下屏幕,就发现进入不了桌面了!!
只能重启再试试了......
重启后更是黑屏了!!
幸好黑屏的经验多...不然我就炸了。。。
问题排查
这里问题排查是复盘,所以有些截图已经和最初的对不上了
进入不了桌面的话,那就进入 tty3 界面吧:alt + f3 (或者是 ctrl + alt + f3)
打开启动日志
sudo vim /var/log/boot.log
找到 gdm.service 启动失败,查看下服务状态
systemctl status gdm.service
查看下这个服务是怎么运行的,手动运行试试是什么报错
cat /usr/lib/systemd/system/gdm.service
$ /usr/bin/gdm
/usr/bin/gdm: symbol lookup error: /usr/bin/gdm: undefined symbol: g_string_free_and_steal
看来是某个库变动了,导致 g_string_free_and_steal 这个参数消失了(被卸载了?或者是新升级的版本弃用了?)。决定网上搜一下...
看起来这和 glib 这个东西有关,搜索一下有啥glib的东西没安装的,装回来试试先
pacman -Ss glib
官方库(core/...),前几个都有个 glib 库,而且是glib2?也不知道是什么,表示这底层的核心库,那先安装了再说吧!
sudo pacman -S glib
安装完重新运行
/usb/bin/gdm
发现不会报错信息了!!
赶紧重启试试能不能进桌面!!
...
大功告成!
总结
升级还是安装什么软件时,给我卸载掉了 glib2,导致进入不了桌面。在桌面系统中,进入不了设置的这个现象,已经明显提醒我们桌面有问题了,以后一定要警惕!警惕!再警惕!
问题排查的思路
- 查看启动日志(/var/log/boot.log),找到出错进程/服务
- 手动运行应用服务(/usr/bin/gdm),查看真正报错原因
- 根据报错原因,查找并安装(或者卸载)应用/依赖(pacman -S glib2)