版本是2309。系统昨天还算正常,今天启动时直接就在开机界面锁死了。进入单用户模式试了一下,它提示
/sbin/init:Error while loading shared libraries: libsystemd-core-253.so: Cannot open shared object
有没有哪位大神给分析分析?
版本是2309。系统昨天还算正常,今天启动时直接就在开机界面锁死了。进入单用户模式试了一下,它提示
/sbin/init:Error while loading shared libraries: libsystemd-core-253.so: Cannot open shared object
有没有哪位大神给分析分析?
这是一个比较严重的系统启动故障,/sbin/init(即 systemd)在启动时找不到核心共享库 libsystemd-core-253.so,导致系统无法正常引导。下面帮你分析原因并提供修复方案。
libsystemd-core-253.so 是 systemd 的核心动态库(版本 253),/sbin/init 本身就是 systemd 的软链接。出现该错误通常有以下几种原因:
库文件被误删或损坏:/usr/lib64/libsystemd-core-253.so 不存在或已损坏
systemd 包升级/降级不完整:部分文件已更新,但依赖库未同步,导致版本不匹配
/etc/ld.so.cache 缓存异常:动态链接器缓存未包含该库的路径
文件系统损坏:根分区出现 I/O 错误,导致文件无法读取
由于系统已无法正常启动,你需要通过 救援模式(Rescue Mode) 或 Live CD/USB 进入系统进行修复。
使用 openEuler 安装 ISO 启动,选择 “Troubleshooting” → “Rescue a openEuler system”
或者使用 Live 镜像启动后,手动挂载原系统根分区:
bash
编辑
1mkdir /mnt/sysroot
2mount /dev/sdaX /mnt/sysroot # 挂载根分区
3mount --bind /dev /mnt/sysroot/dev
4mount --bind /proc /mnt/sysroot/proc
5mount --bind /sys /mnt/sysroot/sys
6chroot /mnt/sysroot
bash
编辑
1# 查找库文件
2find /usr/lib64 -name "libsystemd-core*.so*" 2>/dev/null
3ls -l /usr/lib64/libsystemd-core-253.so
如果文件存在:可能是缓存问题,执行 ldconfig 重建缓存
如果文件不存在:需要重新安装 systemd 包
bash
编辑
1# 检查 systemd 包状态
2rpm -qa | grep systemd
3
4# 重新安装 systemd(会自动修复缺失的库文件)
5dnf reinstall -y systemd
6
7# 如果 dnf 不可用,使用 rpm 强制重装
8rpm -ivh --force --replacepkgs systemd-*.rpm
如果网络不可用,可从同版本 openEuler ISO 的
Packages/目录中提取systemd-*.rpm进行离线安装。
bash
编辑
1# 确保库路径已配置
2echo "/usr/lib64" > /etc/ld.so.conf.d/usr-lib64.conf
3
4# 重建缓存
5ldconfig
6
7# 验证库是否已注册
8ldconfig -p | grep libsystemd-core
bash
编辑
1# 检查 init 的依赖是否完整
2ldd /sbin/init | grep "not found"
3
4# 确认无缺失后,退出 chroot 并重启
5exit
6reboot
避免手动删除 /usr/lib64/ 下的库文件,应始终通过包管理器操作
系统升级时确保完整性:使用 dnf upgrade --refresh 而非手动替换 RPM 包
定期备份关键系统文件,尤其是 /usr/lib64/ 和 /etc/ld.so.conf.d/
启用 openEuler 官方仓库,确保依赖能自动解析
如果上述方法仍无法解决,可能是根文件系统已损坏,建议检查磁盘健康状态(smartctl -a /dev/sda)并考虑从备份恢复系统。
非常感谢,今天数据已经做好了备份,明天按照您给的步骤试一下。
谢谢![]()
进入救援模式之后, ldconfig重建了下缓存OK了。
谢谢大佬
真是学海无涯啊,您是知之为知之,我是不知为不知呀