Jak sprawdzić systemd system.journal z innego systemu

23

Mam awarię Linuksa na urządzeniu. Urządzenie nie ma żadnego ekranu, nie reaguje na sieć. Więc biorę kartę SD, wkładam ją do pulpitu Ubuntu, widzę tam świeży system.journal i ... Jak zobaczyć, co jest w środku?

Z dokumentacji Arch Linux wiem, że mogę:

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

Ale to jest naprawdę podstawowe. Pytanie brzmi:

Czy istnieje wygodniejszy sposób sprawdzenia pliku system.journal z innego systemu niż używanie ciągów ? Czy mogę na przykład określić plik do odczytu dla Journalctl ?

MajesticRa
źródło
co z dziennikiem - plik = plik_do_examiny?
taliezin

Odpowiedzi:

24

Po pierwsze, możliwość korzystania stringswynika z prostego zbiegu okoliczności w tym, że dziennik nie kompresuje małych pól (poniżej 64 KB w bieżącej implementacji). To nie jest obsługiwany sposób czytania czasopism, aw archwiki naprawdę powinien być oznaczony jako taki. Jest to raczej metoda odzyskiwania z ostatniego rowu.

Teraz przejdź do pytania. Z czasopisma (1) :

-D DIR, --directory = DIR

Jako argument przyjmuje ścieżkę do katalogu. Jeśli zostanie określony, dziennik będzie działał w określonym katalogu katalogów DIR zamiast domyślnych ścieżek dziennika wykonawczego i systemowego.

Tak więc, zakładając, że rootfs uszkodzonego systemu jest zamontowany pod $DEST, użyj, journalctl -D $DEST/var/log/journalaby wyświetlić dziennik systemu.

Dla kompletności: aby wyświetlić konkretny plik, użyj journalctl --filenp journalctl --file /var/log/journal/$(cat /etc/machine-id)/system.journal. Ponieważ jednak pliki dziennika są okresowo zmieniane, ten formularz nie jest tak naprawdę przydatny do przeglądania pełnych dzienników.

intelfx
źródło