Cómo inspeccionar systemd system.journal desde otro sistema

23

Tengo un error de Arch Linux en un dispositivo. El dispositivo no tiene pantalla, no responde a la red. Así que tomo su tarjeta SD, la inserto en el escritorio de ubuntu, veo un nuevo system.journal allí y ... ¿Cómo ver qué hay dentro?

De la documentación de Arch Linux sé que puedo hacer:

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

Pero es realmente básico. La pregunta es:

¿Hay alguna forma más conveniente de inspeccionar system.journal desde otro sistema, que usar cadenas ? ¿Puedo, por ejemplo, especificar el archivo a leer para journalctl ?

MajesticRa
fuente
¿Qué pasa con journalctl --file = file_to_examine?
Taliezin

Respuestas:

24

Primero, la capacidad de usar se stringsderiva de una mera coincidencia en que journald no comprime los campos pequeños (por debajo de 64 KB en la implementación actual). Esta no es una forma compatible de leer revistas, y en el archwiki realmente debería marcarse como tal. Es más un método de recuperación de última hora.

Ahora a la pregunta. De journalctl (1) :

-D DIR, --directory = DIR

Toma una ruta de directorio como argumento. Si se especifica, journalctl funcionará en el directorio de directorio DIR especificado en lugar de las rutas de diario del sistema y el tiempo de ejecución predeterminado.

Entonces, suponiendo que el rootfs del sistema roto esté montado debajo $DEST, úselo journalctl -D $DEST/var/log/journalpara ver su registro del sistema.

En aras de la integridad: para ver un archivo específico, utilice journalctl --file, por ejemplo journalctl --file /var/log/journal/$(cat /etc/machine-id)/system.journal. Sin embargo, dado que los archivos del diario se rotan periódicamente, este formulario no es realmente utilizable para ver diarios completos.

intelfx
fuente