安装 Lubuntu 18.04 后,系统无法启动,因此我以恢复模式启动了 root shell。我发现所有 systemd 命令(例如systemctl list-sockets
)都非常慢或超时。我尝试调试此问题:
查看输出,
strace -p 1
我发现 systemd PID 1 正在等待轮询(2)系统调用在 dbus 套接字上接收数据,但数据从未到达。的输出
ps ax | grep dbus
包含919 ? Zs 0:0 [dbus-daemon] <defunct>
,并且 PID 每隔几分钟就会变化。systemctl list-jobs
非常慢(或超时),则显示1950 dbus.service start waiting
。journalctl -u dbus.service -b -f
显示几个实例Started D-Bus System Message Bus
;90 秒后:dbus.service: Main process exited, code=exited, status=1/FAILURE
。它不显示任何其他消息(例如错误消息dbus-daemon
)。
我怀疑systemctl ...
超时的根本原因是dbus.service
启动后不久就崩溃了。我该如何进一步调试?我在哪里可以看到日志(+ stdout + stderr)dbus.service
?
我是 systemd 和 dbus 的新手。我有一些 systemd 之前版本的 Linux 调试技能。
答案1
--syslog-only
我设法通过从 中删除来调试此问题/lib/systemd/system/dbus.service
,然后journalctl -u dbus -b -f
显示相关错误消息:Failed to start message bus: Error getting AppArmor context of bus: Permission denied
。我通过禁用 dbus 的 AppArmor 解决了这个问题。
此后,X11(lightdm)进入无限崩溃循环,并且在text
启动模式下,我在控制台登录时输入正确的密码后 1 秒内注销(没有错误消息)。
我怀疑 Lubuntu 18.04 安装程序与 Ubuntu 18.04 的在线软件包更新不兼容。从那时起,我就在这台电脑上安装了 Ubuntu 18.04(而不是 Lubuntu),而且它开箱即用。我还能够在 Ubuntu 18.04 下安装和使用 Lubuntu 和 MATE 桌面环境。