web-dev-qa-db-ja.com

別のシステムからsystemd system.journalを検査する方法

デバイスでArch Linuxが失敗しました。デバイスには画面がなく、ネットワークに応答しません。だから私はそのSDカードを取り出し、ubuntuデスクトップに挿入し、そこに新鮮なsystem.journalを見て...中身を見る方法は?

Arch Linuxのドキュメントから、私ができることがわかっています。

 strings /mnt/Arch/var/log/journal/.../system.journal | grep -i message

しかし、それは本当に基本的です。質問は:

stringsを使用するよりも、別のシステムからsystem.journalを検査する便利な方法はありますか? journalctlで読み取るファイルを指定できますか?

24
MajesticRa

まず、stringsを使用する機能は、journaldが小さい(現在の実装では64KiB未満)フィールドを圧縮しないという単なる偶然に由来します。これは、ジャーナルを読み取るためのサポートされている方法ではありません。archwikiでは、そのようにマークする必要があります。それは最後の溝の回復方法の詳細です。

それでは質問です。 journalctl(1) から:

-D DIR、-directory = DIR

引数としてディレクトリパスを取ります。指定した場合、journalctlは、デフォルトのランタイムおよびシステムジャーナルパスではなく、指定したジャーナルディレクトリDIRで動作します。

したがって、壊れたシステムのrootfsが_$DEST_の下にマウントされていると想定して、_journalctl -D $DEST/var/log/journal_を使用してシステムログを表示します。

完全を期すために、特定のファイルを表示するには、_journalctl --file_を使用します。 g。 journalctl --file /var/log/journal/$(cat /etc/machine-id)/system.journal。ただし、ジャーナルファイルは定期的にローテーションされるため、このフォームは完全なジャーナルの表示には実際には使用できません。

27
intelfx