Come ispezionare systemd system.journal da un altro sistema


23

Ho un errore su Arch Linux su un dispositivo. Il dispositivo non ha alcuno schermo, non risponde alla rete. Quindi prendo la sua scheda SD, la inserisco nel desktop di Ubuntu, vedo un nuovo system.journal lì e ... Come vedere cosa c'è dentro?

Dalla documentazione di Arch Linux so che posso fare:

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

Ma è davvero di base. La domanda è:

Esiste un modo più conveniente per ispezionare system.journal da un altro sistema, che usare le stringhe ? Posso ad esempio specificare il file da leggere per journalctl ?


che dire di journalctl --file = file_to_examine?
Taliezin,

Risposte:


24

Innanzitutto, la capacità di utilizzare stringsderiva da una semplice coincidenza in quel journald non comprime piccoli campi (inferiori a 64 KiB nell'attuale implementazione). Questo non è un modo supportato per leggere le riviste e in Archwiki dovrebbe davvero essere contrassegnato come tale. È più un metodo di recupero dell'ultimo fossato.

Ora passiamo alla domanda. Da journalctl (1) :

-D DIR, --directory = DIR

Prende un percorso di directory come argomento. Se specificato, journalctl funzionerà sulla directory journal specificata DIR invece che sui percorsi journal di runtime e di sistema predefiniti.

Quindi, supponendo che i rootfs del sistema rotto siano montati sotto $DEST, usare journalctl -D $DEST/var/log/journalper visualizzare il registro di sistema.

Per completezza: per visualizzare un file specifico, utilizzare journalctl --filead es journalctl --file /var/log/journal/$(cat /etc/machine-id)/system.journal. Tuttavia, poiché i file journal vengono ruotati periodicamente, questo modulo non è realmente utilizzabile per visualizzare riviste complete.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.