最近、systemd が以前のブートからのログを保存しないという問題が発生しました。ここや他の場所でいくつかの回答を確認しましたが、解決策が見つかりません。
問題は、ユーザーログは起動後も保持されるが、システムログは保持されないことである。
/etc/systemd/journald.conf
[Journal]
Storage=persistent
SystemMaxUse=500M
SystemMaxFiles=5
journalctl -b -1
[root@2ba2de9e /var/log/journal] # journalctl --system -b -1
Data from the specified boot (-1) is not available: No such boot ID in journal
私はラズベリーパイでArchLinux Armを使用しています
バージョン4.14.24-1-ARCH
systemd 237.64-1
systemd-sysvcompat 237.64-1
なぜこのようなことが起こるのか、誰か分かるでしょうか? 私のデスクトップ マシンでは問題なく動作しているのですが?
答え1
ディスク容量が不足しているため、journald が古いログを削除している可能性があります。(起動後どのくらいの期間が経過しても-b -1
動作しないかについては触れられていないため、その時点での現在の起動からのログが多数あるかどうかはわかりません。)
設定は完了していますSystemMaxUse=500M
が、空きディスク容量があまりない場合、journald は 500 MB 未満を使用することを決定する可能性があります。また、SystemKeepFree=...
ファイルシステムのサイズの 15% (または 4 GB のいずれか小さい方) にデフォルト設定されている設定もあり、journald は許可されている容量よりもその制限を厳しく適用します。/var/log/journal
パーティションが狭い場合は、それが問題の一部である可能性があります。
次のようなコマンドを使用して、journald が使用している容量を確認できます。
$ journalctl --disk-usage
また、journald が認識しているブートの数 (およびその時間と ID) も次のように確認できます。
$ journalctl --list-boots
これらもあなたの問題の解明に役立つかもしれません...
これが役に立つことを願っています!
答え2
私のディストリビューションにはこのファイルが付属していました。/etc/systemd/journald.conf.d/volatile-storage.conf
次の行がありました。
Storage=volatile
揮発性の部分を永続的なものに変更する必要があります。そうしないと、変更は/etc/systemd/journal.conf
無視されます。
答え3
延長中ミラー回答:Storage=volatile
および がStorage=auto
機能するには、/var/log/journal
ディレクトリが存在している必要がありますが、一部のディストリビューションでは、この場所がデフォルトで提供されません。
journald
したがって、メモリ内にあるものをすべてフラッシュするように作成して指示する必要があります。
sudo mkdir /var/log/journal ## Enable persistent logging
sudo journalctl --flush