Jak dokładnie ustalić, dlaczego Systemd wchodzi w tryb awaryjny

10

Mój komputer stacjonarny z systemem Debian Jessie zaczął wpadać do powłoki trybu awaryjnego przy każdym uruchomieniu. Ekran mówi, aby użyć, journalctl -xbaby znaleźć przyczynę i użyć, systemctl defaultaby kontynuować uruchamianie. Kiedy wykonuję systemctl default, system nadal się uruchamia, a po kilku tygodniach używania systemu najwyraźniej nie ma nic złego.

Patrząc przez journalctl -xbnie, nic nie wyróżnia się jako powód wpadnięcia do pocisku awaryjnego. Czy istnieje prosty sposób, aby dokładnie określić powód, dla którego zdecydowano się przejść w tryb awaryjny? Czy istnieją inne flagi lub opcje uruchamiania, które sprawią, że będzie oczywiste, gdzie jest problem?

Jordan
źródło
2
Powinien być widoczny w czasopiśmie, ale przy ograniczonych informacjach, które podajesz, nie ma sposobu, aby cię poprowadzić. Czy masz kopię tego, journalctl -xb kiedy to się stało?
Julie Pelletier
3
Uruchom w trybie rejestrowania systemd.log_level=debug systemd.log_target=kmsg log_buf_len=1M
pełnego,
2
Istniejące dzienniki powinny już podawać powód. Jest tak wiele powodów, że bardzo trudno zgadnąć.
Giacomo Catenazzi
1
Mam ten sam problem z instancją Ubuntu 16.04. Przez ostatnie 20 lat instalowałem, korzystałem i naprawiałem wiele systemów Linux. Nic specjalnego na ekranie i tym razem nic nie wyróżnia się w logach. Screen mówi Ctrl-D, aby kontynuować ładowanie, ale to po chwili prowadzi do tego samego monitu. Bez pojęcia. Frustrujące, prawda?
Stéphane Gourichon
Czy wypróbowałeś wszystkie kroki z sekcji „Diagnozowanie problemów z uruchamianiem” w Debugowaniu systemu ?
Siosm

Odpowiedzi:

6

Awaria powinna wskazywać [ FAIL ]na konsoli czerwoną (zamiast [ OK ]), obok opisu jednostki. Zazwyczaj najważniejsze są pierwsze awarie. Użyj shift + pageup na konsoli, aby przewijać w górę i przeglądać kilka ostatnich ekranów wyników. Może to nie działać, jeśli jest zbyt dużo danych wyjściowych.

Działa to nawet wtedy, gdy zwykle nie widzisz [ OK ]komunikatów, np. Z powodu quietwiersza poleceń jądra używanego przez Debian. Przy pierwszej awarii systemd przechodzi do trybu pełnego.

W przeciwnym razie możesz użyć systemctl. Bez żadnych opcji pokazuje ogromną listę znanych jednostek z awariami podświetlonymi na czerwono. Aby wyświetlić tylko te, które nie powiodły się, użyj systemctl --state=failedlub systemctl --failed.


Jeśli przeszukujesz pliki jednostek, istnieje tylko kilka sposobów powrotu do rozruchu emergency.target. Zwykle następuje .mountawaria jednostki dla lokalnego systemu plików, co powoduje local-fs.targetawarię. Lub gdy initramfs nie zamontuje głównego systemu plików, jeśli initramfs używa systemd.

local-fs.targetma OnFailure=emergency.target. I to się nie udaje, ponieważ jednostki dla lokalnych systemów plików są automatycznie dodawane do listy Wymaga local-fs.target (chyba że mają DefaultDependencies=no).

$ systemctl show --property Requires local-fs.target
Requires=-.mount home.mount boot.mount boot-efi.mount
sourcejedi
źródło
2

Od czasu do czasu pojawia się monit „tryb konserwacji” i muszę przewijać dziennik w poszukiwaniu błędów. Ponieważ dziennik używa mniej jako pagera, powinieneś być w stanie zastosować mniej skrótów do wyszukiwania.

Zwykle polegałbym na funkcji wyszukiwania (/) i szukałbym czegoś równoważnego „błędowi”, „ostrzeżeniu” lub „nieudanemu”. I upewnij się, że -i wymusza wyszukiwanie bez rozróżniania wielkości liter.

Więc moje naciśnięcia klawiszy wyglądałyby tak:

-i (case insensitive)
g (move to start)
/error
nnnn (skip through results)
g (move to start)
/fail
nnnn (skip through results)
g (move to start)
/warn
nnnn (skip through results)

Technicznie nie jest to wyczerpujące lub dokładne wyszukiwanie konkretnego problemu, ale nigdy nie przegapiłem problemu z uruchomieniem w ten sposób.

Niektóre powiązane skróty klawiaturowe poniżej:

http://www.thegeekstuff.com/2010/02/unix-less-command-10-tips-for-effective-navigation/

madumlao
źródło
Uważam, że powinno być również możliwe szybkie przeglądanie stron i wyszukiwanie czerwonych wiadomości (LOG_ERR i wyżej). systemdbędzie rejestrować czerwone komunikaty o niepowodzeniach uruchomienia jednostki usługowej lub, co ważniejsze, o niepowodzeniu instalacji systemu plików.
sourcejedi