手动分区安装Ubuntu后rsyslog、dbus等服务启动失败的已知问题及解决方法咨询
Hey,看起来你碰到了手动分区(尤其是加密根分区+独立/boot分区)安装Ubuntu时的典型服务启动故障——这类情况在社区里确实有不少用户反馈过,属于特定分区配置下安装脚本的疏漏问题。下面给你梳理已知的原因和可行的解决步骤:
问题根源
核心原因是手动分区+加密根分区的组合下,Ubuntu安装程序没有正确初始化根分区内的一些必要临时目录、用户组或文件权限,导致依赖这些资源的systemd服务启动失败:
- systemd-resolved和systemd-timesyncd的
chdir错误,大概率是缺少了/run/systemd/resolve或/run/systemd/timesync这类tmpfs临时目录 - dbus启动失败会连锁导致rsyslog、avahi-daemon等依赖系统消息总线的服务无法正常工作,进而阻碍用户登录流程
- thermald的故障则是安装程序遗漏了
power用户组的创建
分步解决方法
所有操作建议在recovery模式的root shell下进行(启动时选择recovery mode,再选root选项进入命令行):
修复systemd-resolved与systemd-timesyncd的目录问题
手动创建缺失的临时目录并设置正确权限:mkdir -p /run/systemd/resolve /run/systemd/timesync chown systemd-resolve:systemd-resolve /run/systemd/resolve chown systemd-timesync:systemd-timesync /run/systemd/timesync chmod 755 /run/systemd/resolve /run/systemd/timesync由于这些目录属于tmpfs(重启后会清空),需要确保systemd能自动重建它们:检查
/usr/lib/tmpfiles.d/systemd.conf,如果没有以下内容就手动添加:d /run/systemd/resolve 0755 systemd-resolve systemd-resolve - d /run/systemd/timesync 0755 systemd-timesync systemd-timesync -修复dbus与rsyslog的启动故障
dbus启动失败通常是/var/run/dbus目录缺失或权限错误,执行以下命令修复:mkdir -p /var/run/dbus chown messagebus:messagebus /var/run/dbus chmod 755 /var/run/dbus手动启动dbus服务,再尝试启动rsyslog:
systemctl start dbus systemctl start rsyslog同样,为了持久化修复,检查
/usr/lib/tmpfiles.d/dbus.conf,确保包含:d /var/run/dbus 0755 messagebus messagebus -处理其他服务的遗留问题
- avahi-daemon:创建缺失的临时目录并设置权限:
mkdir -p /run/avahi-daemon chown avahi:avahi /run/avahi-daemon - thermald:你已经创建了
power组,可额外确认临时目录权限:mkdir -p /run/thermald chown root:power /run/thermald
- avahi-daemon:创建缺失的临时目录并设置权限:
验证并持久化所有修复
执行以下命令让systemd重新加载配置,然后重启系统:systemctl daemon-reload reboot如果重启后问题依然存在,可能是加密根分区的initramfs缺少必要配置,重新生成initramfs:
update-initramfs -u -k all
已知情况说明
这类问题确实是Ubuntu安装程序在手动加密根分区+独立/boot分区配置下的已知bug,主要是安装脚本跳过了部分tmpfs目录和用户组的初始化步骤。而自动分区模式下安装程序会自动处理这些细节,因此不会出现故障。
备注:内容来源于stack exchange,提问作者hsivonen




