Como inspecionar systemd system.journal de outro sistema

23

Eu tenho o arch linux falhando em um dispositivo. O dispositivo não possui tela, não responde à rede. Então eu pego o cartão SD, insiro-o no desktop do ubuntu, vejo um novo system.journal lá e ... Como ver o que está dentro?

Na documentação do Arch Linux, eu sei que posso fazer:

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

Mas é realmente básico. A questão é:

Existe uma maneira mais conveniente de inspecionar system.journal de outro sistema, do que usar strings ? Por exemplo, posso especificar o arquivo para ler no journalctl ?

MajesticRa
fonte
e o journalctl --file = file_to_examine?
Taliezin #

Respostas:

24

Primeiro, a capacidade de usar stringsdecorre de uma mera coincidência, pois o journald não compacta campos pequenos (abaixo de 64KiB na implementação atual). Esta não é uma maneira suportada de ler periódicos, e no archwiki deve realmente ser marcada como tal. É mais um método de recuperação de última hora.

Agora vamos à pergunta. Do journalctl (1) :

-D DIR, --diretório = DIR

Leva um caminho de diretório como argumento. Se especificado, o journalctl operará no diretório de diário especificado DIR, em vez dos caminhos padrão do tempo de execução e do diário do sistema.

Portanto, supondo que o rootfs do sistema quebrado esteja montado em $DEST, use journalctl -D $DEST/var/log/journalpara visualizar o log do sistema.

Por uma questão de completude: para visualizar um arquivo específico, use journalctl --file, por exemplo journalctl --file /var/log/journal/$(cat /etc/machine-id)/system.journal. No entanto, como os arquivos do diário são rotacionados periodicamente, esse formulário não é realmente utilizável para a visualização de diários completos.

intelfx
fonte