虚拟机平台:virtualbox
虚拟机:ubuntu 18.04
问题如下图所示,界面不会动,也无法使用Ctrl + Alt + F2 ,Ctrl + Alt + F3 ,Ctrl + Alt + F4等切换到其他shell;
原因:polkitd 依赖的libgio-2.0.so 版本不匹配,导致polkitd无法启动,进而使systemd 卡在启动Authorization Manager服务;

然后重启虚拟机,在启动期间快速按下Ctrl + Alt + F3 切换到shell界面;

可看到一直有 Failed to start Authorization Manager. 错误,若是不去管,则它将一直在尝试等
Authorization Manager启动成功,且无法进入到login界面;
从 linux系统polkit无法启动_polkit服务起不来-CSDN博客 这里了解到 Authorization Manager
是 polkit ,他的方式是重新安装再重启该服务;
而当前的情况下,只能进入recover 模式去尝试;
从 当VirtualBox中的Ubuntu黑屏无法启动时如何进入终端_virtualbox启动ubuntu黑屏-CSDN博客
了解到进入 recover 模式的方式: 立即反复快速地按 Esc 键,(还按了 Shift 键) 才进入如到recover 模式;



因为网络不通,所以不考虑重新安装 polkit 的方式,首先查看下该服务的状态:(dead)

尝试restart 该服务:

再使用journalctl -ex 查看log

如图所示,也没有看出什么;
再尝试手动启动该应用:

这下总算看出点问题了,/usr/lib/x86_64-linux-gnu/libgio-2.0.so.0 中 存在一个未定义的符号
g_module_open_full;尝试grep下,真有这个符号;

而另一台虚拟机中/usr/lib/x86_64-linux-gnu/libgio-2.0.so.0 并没有g_module_open_full 这个符号;

且polkitd能运行;

计划用u 盘拷贝该正常虚拟机上的/usr/lib/x86_64-linux-gnu/libgio-2.0.so.0.5600.4 到有问题的虚拟机里;
但是突然发现有问题的虚拟机里也有libgio-2.0.so.0.5600.4 的版本库,那就简单了,直接改这里的软连接就行;

如下图所示,删除 libgio-2.0.so 和 libgio-2.0.so.0 两个软链接文件,再用 libgio-2.0.so.0.5600.4
来生成新的 libgio-2.0.so 和 libgio-2.0.so.0 ,然后再尝试启动polkitd,可见其也能运行了;

最后尝试重启(reboot),虚拟机就能正常启动了。

7678

被折叠的 条评论
为什么被折叠?



