news 2026/5/1 5:12:17

systemd修复

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
systemd修复

比起君子讷于言而敏于行,我更喜欢君子善于言且敏于行。

目录

场景

解决思路:

1. 重装

2. 热恢复

1)让 systemd 重新 exec 自身

2)手动拉起 D-Bus(它死了 systemd 就失联)

3)若 D-Bus 反复崩,把 systemd 与 DBus 一起重装,装完再次 kill -15 1 触发重载

4)验证

5)日志报错

总结


场景

前阵子为了丝滑迁移,拿到了一些虚拟机的包,放到服务器上给它们拉起来。之前都是正常的,这周遇到了一台难搞的机器,它是问题是这样的:systemctl start ssh失败,每次只要执行这个命令,虚拟机直接卡死,不停的让我重新输入密码,不得不硬重启。接着我发现,卸载ssh重装后是服务是正常的,但是呢,修改配置文件后sudo systemctl reload ssh ,正常。sudo systemctl restart ssh 失败,卡死,硬重启。接着我尝试去操作其他服务,比如docker,也是一样的现象。

定位问题为:systemd崩溃

解决思路:

1. 重装

有句经典的话怎么说来着?重启可以解决99%的问题,重装可以解决100%的问题。但是我这个是上古时期的设备,里面的服务没人知道到底咋搞的,我只能小心翼翼的全部copy。很显然不能重装。

2. 热恢复

1)让 systemd 重新 exec 自身

sudo kill -15 1

正常时 3-5 秒后systemctl is-system-running应返回running
若仍卡,继续第 2 步。

2)手动拉起 D-Bus(它死了 systemd 就失联)

sudo /usr/bin/dbus-daemon --system --fork

再试systemctl status看是否恢复。

3)若 D-Bus 反复崩,把 systemd 与 DBus 一起重装,装完再次kill -15 1触发重载

sudo apt update sudo apt install --reinstall systemd libsystemd0 dbus

我重装的时候遇到了报错,是APT 源里版本不一致导致的,所以最好是用当前系统已装版本强行重装

# 1. 让 APT 只下载“已装版本”的 deb 包 sudo apt-get install --reinstall --download-only systemd libsystemd0 dbus \ libpam-systemd systemd-sysv # 2. 手动 dpkg 覆盖(不经过依赖检查) sudo dpkg -i --force-overwrite \ /var/cache/apt/archives/systemd_237-3ubuntu10.57_*.deb \ /var/cache/apt/archives/libsystemd0_237-3ubuntu10.57_*.deb \ /var/cache/apt/archives/dbus_*.deb \ /var/cache/apt/archives/libpam-systemd_237-3ubuntu10.57_*.deb \ /var/cache/apt/archives/systemd-sysv_*.deb # 3. 修复可能残留的依赖 sudo apt-get install -f

4)验证

sudo kill -15 1 # 让 systemd 重新 exec 自身 systemctl is-system-running # 应返回 running 或 starting journalctl -b -p err | tail -20 #若仍 degraded,查看最后20行systemd错误日志,继续搞

5)日志报错

一般吧,可能上面4)之后就结束了,很不幸,我这个还是有点子问题......

root:~# journalctl -b -p err | tail -20 -- Logs begin at Wed 2026-01-14 16:43:42 CST, end at Wed 2026-01-14 17:20:30 CST. -- Jan 14 16:53:41 10-198-11-111 systemd[1]: Timed out waiting for device dev-disk-by\x2dlabel-3F06\x2d266F.device.

问题解释:

Timed out waiting for device dev-disk-by\x2dlabel-4F05\x2d212F.device
→ fstab 里写了一个 LABEL=3F06-266F 的设备,系统找不到,导致该挂载单元失败,把整个系统拖进 maintenance 模式。

解决方案:

使用UUID去写/etc/fstab文件,我之前写错的是LABEL=3F06-266F,搞错了,应该是UUID=3F06-266F

root:~# blkid | grep 3F06-266F /dev/vda15: LABEL="UEFI" UUID="3F06-266F" TYPE="vfat" PARTUUID="4f41f-f98f-4270-ba-8d2aa2a7" root:~# cat /etc/fstab UUID=3F06-266F /boot/efi vfat defaults 0 0

最后再去执行,直到显示 running或者starting。

sudo kill -15 1 sleep 3 systemctl is-system-running

总结

问题链路:
raw 模板克隆
→ systemd 家族包部分升级 / 混源
→ PID 1 运行态与磁盘/库不一致
→ systemctl start/restart 阻塞
→ dbus system bus 不可用
→ ssh/docker 等全部“假死”


我的解法:
强制 systemd ABI 对齐
→ dpkg 覆盖安装
→ PID 1 re-exec
→ systemd 恢复一致运行态
→ 所有 service 恢复正常

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/1 5:11:33

零翔出玩组局陪玩系统:技术架构与功能创新引领社交旅游新风尚

摘要 本文深入探讨了零翔出玩组局陪玩系统的技术架构、核心功能及其市场应用。该系统集组局、社群、论坛、搭子匹配、旅游线路规划、团购票券、线上线下陪玩、裂变营销等多功能于一体,通过先进的技术架构和丰富的功能选择,为用户提供了一站式社交旅游服…

作者头像 李华
网站建设 2026/5/1 5:11:51

如何快速使用FF14动画跳过插件:告别副本等待时间终极指南

如何快速使用FF14动画跳过插件:告别副本等待时间终极指南 【免费下载链接】FFXIV_ACT_CutsceneSkip 项目地址: https://gitcode.com/gh_mirrors/ff/FFXIV_ACT_CutsceneSkip 还在为FF14副本中漫长的动画播放而烦恼吗?每次组队刷副本,总…

作者头像 李华
网站建设 2026/4/9 23:14:20

Facebook开发者账号被封?2026年原因解析与解决方法

在出海业务中,Facebook 开发者账号(Developer Account)往往是被低估、却风险极高的一环。一旦开发者账号被封,影响的不只是某一个 App,而是 App ID、API 权限、广告投放、登录体系、数据回传等整条链路。不少团队会困惑…

作者头像 李华
网站建设 2026/5/1 5:11:59

小红书内容管理革命:XHS-Downloader高效批量下载全攻略

小红书内容管理革命:XHS-Downloader高效批量下载全攻略 【免费下载链接】XHS-Downloader 免费;轻量;开源,基于 AIOHTTP 模块实现的小红书图文/视频作品采集工具 项目地址: https://gitcode.com/gh_mirrors/xh/XHS-Downloader …

作者头像 李华
网站建设 2026/4/20 19:52:06

用create-react-app脚手架创建react项目

创建项目npx create-react-app name --template typescript1、删掉src下多余的文件2、可去掉index.tsx中的严格模式root.render(// - <React.StrictMode><App />// - </React.StrictMode> );3、配置别名&#xff08;dilanx/craco需安装这个插件&#xff09; …

作者头像 李华