Como inspecionar systemd system.journal de outro sistema

19

Eu tenho arch linux falhando em um dispositivo. O dispositivo não tem tela, não responde à rede. Então eu pego seu 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, 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 o system.journal de outro sistema do que usar strings ? Por exemplo, posso especificar o arquivo para ler journalctl ?

    
por MajesticRa 02.05.2015 / 11:30

1 resposta

18

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

Agora, vamos para a pergunta. De journalctl (1) :

-D DIR, --directory=DIR

Takes a directory path as argument. If specified, journalctl will operate on the specified journal directory DIR instead of the default runtime and system journal paths.

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

Para fins de integridade: para visualizar um arquivo específico, use journalctl --file , e. g. %código%. No entanto, como os arquivos de diário são rotacionados periodicamente, esse formulário não é realmente utilizável para exibir diários completos.

    
por 03.05.2015 / 13:42