问题现象描述
在基于NFS挂载根文件系统(Debian 10)的电路板启动过程中,串口输出以下错误:
[FAILED] Failed to start Create System Users.
See 'systemctl status systemd-sysusers.service' for details.
该错误导致系统无法正常登录,且由于是唯一报错信息,无法通过命令行进一步诊断。
systemd-sysusers服务机制
Linux系统在启动过程中,systemd会通过systemd-sysusers.service
服务创建基础系统用户和组。该服务主要处理以下文件:
/usr/lib/sysusers.d/*.conf
- 软件包安装的默认配置/etc/sysusers.d/*.conf
- 系统管理员自定义配置/etc/sysusers.conf
- 主配置文件
NFS根文件系统特殊问题
当使用NFS作为根文件系统时,常见问题包括:
# 检查NFS挂载情况的示例命令
mount | grep nfs
df -h | grep nfs
可能导致用户创建失败的具体原因:
- NFS服务器权限配置不当
- /etc/passwd和/etc/shadow文件不可写
- 网络延迟导致服务超时
- SELinux或AppArmor安全策略限制
紧急修复方案
在没有控制台访问的情况下,可以尝试以下方法:
# 在NFS服务器上手动创建用户(示例)
echo "root:x:0:0:root:/root:/bin/bash" >> /nfsroot/etc/passwd
echo "root:*:18852:0:99999:7:::" >> /nfsroot/etc/shadow
chmod 644 /nfsroot/etc/passwd /nfsroot/etc/shadow
深度排查步骤
若需彻底解决问题,建议按以下流程排查:
# 1. 检查服务日志
journalctl -u systemd-sysusers.service
# 2. 验证文件系统权限
ls -ld /etc /etc/passwd /etc/shadow
# 3. 测试NFS写入能力
touch /etc/nfs_test && rm -f /etc/nfs_test
# 4. 检查服务依赖关系
systemctl list-dependencies systemd-sysusers.service
永久解决方案
修改NFS导出配置,确保具备写权限:
# /etc/exports 配置示例
/nfsroot 192.168.1.0/24(rw,sync,no_root_squash,no_subtree_check)
同时调整systemd服务超时设置:
# /etc/systemd/system/systemd-sysusers.service.d/timeout.conf
[Service]
TimeoutStartSec=300