问题是journald

问题是journald

我全新安装了 Debian 9.0.0。它有一个单独的 1 GB 分区,用于 /var,格式为 ext4。当我从终端关闭时,使用shutdown -h now,出现一条亮红色的错误消息,指出“卸载 /var 失败”。

此错误的修复方法是什么?

答案1

问题是journald

或者更确切地说,它在尝试卸载它/var时仍然如何记录。systemd

解决方案

根据这个线程,有两种方法可以实现:

  1. journald日志保存到易失性位置,/run这样它就不会锁定/var,但代价是您会在关闭时丢失日志。

编辑/etc/systemd/journald.conf以将该行更改Storage=

Storage=volatile

这就是我所做的,而且它对我有用。

  1. (编辑:这是 ArchLinux 特定的)或者设置一个关闭钩子以便/var稍后卸载。这不会删除该failed消息,因为 systemd 仍会尝试卸载/var,但确实会/var在关闭序列结束时正确卸载。你只是不会看到它。 (不过我还没有测试过该解决方案)

向 的数组添加一个shutdown钩子,例如:mkinitcpioHOOKS=

HOOKS="base udev autodetect block keymap encrypt lvm2 filesystems usbinput fsck var shutdown"

答案2

我要感谢@Thibault Lemaire 为我指出了正确的理由。我通过将这些更改应用到以下内容成功解决了该错误systemd-journald.service

...
[Unit]
...
After:umount.target
Conflicts=umount.target

基本上所有(?)挂载(包括 /var)都会被 umount.target 卸载,因此如果我们在启动 umount.target 之前停止 systemd-journald 我们可以修复错误。

相关内容