systemd-fsck 或 fsck 是否生成状态报告?

awo*_*woz 1 fsck systemd

如何确定是否在启动时执行了 fsck 操作。我了解默认的 fsck 配置和行为,但是否有报告或状态显示是否发现任何 fsck 问题或执行了修复操作?

我的系统控制台确实显示“干净”消息,但 dmesg 没有:

...
[确定] 开始在 /dev 中创建静态设备节点。
         正在启动 udev 内核设备管理器...
[确定] 启动 udev 内核设备管理器。
         启动根在 ro 时生成的复制规则...
[ OK ] 开始复制 root 为 ro 时生成的规则。
[6.346472] systemd-fsck [171]:ROOTFS-A:干净,26178/78240 文件,107613/312576 块
...

也许有一个标准的 API 来查询 fsck 操作和状态,而不是查看日志文件?

Mar*_*erg 5

您正在寻找该systemd期刊。man journalctl可以成为您的切入点。要查看日志,systemd-fsck您可以查看:

journalctl -u systemd-fsck*
Run Code Online (Sandbox Code Playgroud)

正如您将在 中看到的man journalctl,还有一些机器友好的输出选项,例如 JSON。除了用于查询服务状态的其他 systemd 工具之外,这与您将要使用 API 来查询 fsck 状态一样接近:

systemctl status systemd-fsck*
Run Code Online (Sandbox Code Playgroud)

正如您将在 中看到的man systemctl,它还提供机器友好的输出格式。

我知道fsck没有systemd.

  • @awoz - 启动时的 `fsck` 是从 `initramfs` 运行的,因此没有要写入的文件系统,尽管一些发行版会解决这个问题并将输出保存到 `/run/initramfs/*` 或 `/var/log/fsck /*` (2认同)