意外删除我/var/log/journal
的后,我无法从后果中恢复过来。systemd-journald
每次我尝试启动它时都会一遍又一遍地失败。当我运行时:
$ journalctl --verify
PASS: /run/log/journal/system.journal
这并没有让我更接近解决它,因为它/run/log/journal/system.journal
是在我/usr/lib/systemd/systemd-journald
直接运行时创建的,它会自行输出
$ /usr/lib/systemd/systemd-journald
Failed to open runtime journal: Invalid argument
我已经尝试过的事情:
- 清理
/var/log/journal and
/run/log/journal`。 - 从另一台机器复制
/var/log/journal
到两条路径,运行journalctl --verify
以检查它们,然后再次使用--file
标志。 - 将 Storage 设置更改
/etc/systemd/journald.conf
为Storage=volatile
仅禁用/var/log/journald
. - 重新启动。
在重命名主机名,
/etc/machine-id
通过运行systemd-machine-id-setup
和重新启动应用这些删除和重新创建后,systemd-journald 恢复了活力!/var/log/journal
如果之前的还原尝试有任何剩余,请尝试删除。然后设置Storage=persistent
并/etc/systemd/journald.conf
重新启动。通常 systemd 应该
/var/log/journal
在重新启动期间重新创建。如果这没有帮助,请尝试
尝试:
systemctl stop systemd-journald && strace systemctl start systemd-journald
这应该会在流程启动时流式传输有关正在发生的事情的大量细节。最后几行可能会提供一个线索,为什么它会继续失败。