Comment inspecter systemd system.journal à partir d'un autre système

23

J'ai arch linux échouant sur un appareil. L'appareil n'a pas d'écran, il ne répond pas au réseau. Je prends donc sa carte SD, je l'insère dans le bureau ubuntu, j'y vois un nouveau system.journal et ... Comment voir ce qu'il y a à l'intérieur?

De la documentation Arch Linux, je sais que je peux faire:

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

Mais c'est vraiment basique. La question est:

Existe-t-il un moyen plus pratique d'inspecter system.journal à partir d'un autre système que d'utiliser des chaînes ? Puis-je par exemple spécifier le fichier à lire pour journalctl ?

MajesticRa
la source
qu'en est-il de journalctl --file = file_to_examine?
taliezin

Réponses:

24

Premièrement, la possibilité d'utiliser stringsdécoule d'une simple coïncidence dans la mesure où le journal ne compresse pas les petits champs (inférieurs à 64 Ko dans la mise en œuvre actuelle). Ce n'est pas un moyen pris en charge pour lire les journaux, et dans l'archwiki, il doit vraiment être marqué comme tel. Il s'agit davantage d'une méthode de récupération de dernier recours.

Passons maintenant à la question. De journalctl (1) :

-D DIR, --directory = DIR

Prend un chemin de répertoire comme argument. S'il est spécifié, journalctl fonctionnera sur le répertoire de journal spécifié DIR au lieu des chemins d'exécution et de journal système par défaut.

Donc, en supposant que le rootfs du système cassé est monté sous $DEST, utilisez journalctl -D $DEST/var/log/journalpour afficher son journal système.

Par souci d'exhaustivité: pour afficher un fichier spécifique, utilisez journalctl --file, par exemple journalctl --file /var/log/journal/$(cat /etc/machine-id)/system.journal. Cependant, étant donné que les fichiers de journal sont tournés périodiquement, ce formulaire n'est pas vraiment utilisable pour afficher des journaux complets.

intelfx
la source