如何从另一个系统检查系统化的system.journal


23

我在设备上无法使用Arch Linux。该设备没有任何屏幕,也没有响应网络。因此,我拿了它的SD卡,将其插入ubuntu桌面,在那里看到一个新的system.journal,然后...如何查看里面有什么?

从Arch Linux文档中,我知道我可以做到:

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

但这真的很基础。问题是:

有没有比使用字符串更方便的方法来从另一个系统检查system.journal ?例如,我可以指定要为journalctl读取的文件吗?


那journalctl --file = file_to_examine呢?
taliezin

Answers:


24

首先,使用strings日志记录的能力只是偶然,因为日志记录不会压缩较小的字段(在当前实现中低于64KiB)。这不是一种支持阅读日记的方法,在archwiki中,确实应将其标记为此类。它更像是最后的恢复方法。

现在到问题。从journalctl(1)

-D DIR,--directory = DIR

以目录路径作为参数。如果指定,journalctl将在指定的日记目录DIR上运行,而不是默认的运行时和系统日记路径。

因此,假设损坏的系统的rootfs安装在下$DEST,用于journalctl -D $DEST/var/log/journal查看其系统日志。

为了完整起见:为了查看特定文件,请使用journalctl --file,例如journalctl --file /var/log/journal/$(cat /etc/machine-id)/system.journal。但是,由于日记文件会定期轮换,因此此表格实际上无法用于查看完整的日记。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.