Gdzie jest plik dziennika generowany przez pełne uruchomienie w OS X Lion?

19

Po uruchomieniu komputera w trybie pełnym (cmd + v przy uruchomieniu) chcę wyświetlić wygenerowane komunikaty dziennika, aby debugować otrzymany błąd ( błąd ). Błąd jest wyświetlany na ekranie tylko krótko podczas uruchamiania, zanim urządzenie uruchomi się ponownie. W rezultacie nie ma czasu na prawidłowe czytanie.

Czy OS X zapewnia osobny plik dziennika dla komunikatów startowych, czy też są one zakopane w plikach kernel.log i system.log? Jeśli są one zakopane w tych plikach, czy istnieje szybki sposób na przejście do punktu uruchamiania systemu w przeglądarce konsoli?

purpletonic
źródło

Odpowiedzi:

3

Począwszy od systemu Snow Leopard i ewentualnie Leopard, całe logowanie do systemu odbywa się za pośrednictwem mechanizmu Apple System Log (ASL), który jest jak centralny demon i baza danych dla wszystkich komunikatów dziennika. Demon ASL zapewnia również, że odpowiednie komunikaty dziennika spełniające określone tradycyjne kryteria są zapisywane w tradycyjnych plikach dziennika płaskiego tekstu, takich jak system.logi kernel.log, ale wszystko również trafia do bazy danych ASL.

Aby uzyskać więcej informacji na ten temat można znaleźć na stronach podręcznika dla syslog(1), logger(1), syslog(3), asl(3), syslog.conf(5), asl.conf(5), syslogd(8), itd.

Możesz użyć syslog(1)do wysyłania zapytań do bazy danych ASL. Ponadto, /Utilities/Console.appzapewnia GUI dla tworzenia i zapisywania własnych zapytań do bazy danych ASL.

Jestem prawie pewien, że bufor komunikatów jądra (tradycyjnie przeglądany za pomocą dmesg(8)) zostanie zrzucony do bazy danych ASL, gdy tylko rozruch rozpocznie się wystarczająco daleko, aby syslogdmógł zostać uruchomiony, więc nie powinieneś dzwonić dmesgbezpośrednio, z wyjątkiem siły przyzwyczajenia. Lub jeśli twój system nie uruchamia się wystarczająco daleko, aby syslogdmógł zostać uruchomiony.

Spiff
źródło
Czy to działa w przypadku poprzednich butów? Problem, który napotkałem, kiedy napisałem to pytanie (rozwiązane teraz, na szczęście) występował tylko sporadycznie. Powiedzmy, że przy każdym rozruchu panika na mnie spowodowała jądro, a to, co chciałem zrobić, to kolejny udany rozruch, przejrzyj plik dziennika, znajdź poprzedni rozruch i spróbuj debugować.
purpletonic
@purpletonic Tak, wszystko, co jest wysyłane do ASL, jest umieszczane w bazie danych, gdzie pozostaje domyślnie na 7 dni (można to zmienić asl.conf(5)). Więc jeśli debugowałeś problemy z uruchamianiem i restartowałeś kilka razy tego samego dnia, byłyby domyślnie. A jeśli byłby to problem długoterminowy, możesz dostosować okres przechowywania ASL, aby zachować dłużej.
Spiff
Ta odpowiedź nie mówi jednak, w jaki sposób widzę dane wyjściowe z „pełnego” procesu rozruchu. Po uruchomieniu dmesgwyświetla tylko niektóre ostatnie wpisy, ale nie dziennik rozruchu. Próbuję tego w 10.12.6 - nie ma już również pliku „kernel.log”.
SuperTempel,
11

Otwórz Terminal.app i uruchom

sudo dmesg

(zostaniesz poproszony o podanie hasła)

Spowoduje to wyświetlenie komunikatów systemowych od ostatniego uruchomienia do chwili obecnej (komunikaty uruchamiania znajdziesz u góry wyjścia). Możesz spróbować

sudo dmesg | więcej

spowoduje to wyświetlenie tych wiadomości strona po stronie.

trurl
źródło
Ładny! Użyłbym mniej zamiast więcej, jest to o wiele wygodniejsze i nie zaśmieca przewijania terminala.
SilverWolf - Przywróć Monikę
4

Przyjęta odpowiedź (Spiff) nie była dla mnie pomocna, nie ma też pliku kernel.log.

Dla mnie (na MacOS 10.12.6) działa to polecenie:

log show --predicate "processID == 0" --start $(date "+%Y-%m-%d") --debug

Pokazuje wszystkie dzisiejsze komunikaty jądra, w tym proces uruchamiania. Potrzebuje trochę sprzątania, ale przynajmniej zawiera wszystko, co musiałem znaleźć.

SuperTempel
źródło
To też działa dla mnie. Dziękuję Ci. Inne odpowiedzi pokazują rzeczy niekoniecznie związane z uruchamianiem lub nie pokazują DOKŁADNIE tego, co jest drukowane podczas uruchamiania. Twoja odpowiedź daje +1. I jest też oznaczony kolorami!
Max Coplan
2

Sam zastanawiam się, jak uzyskać dziennik najbardziej odpowiedni do uruchomienia bez dostępu do konsoli / terminala. Wystąpił błąd podczas uruchamiania, ale można uzyskać dostęp do systemu plików za pomocą dysku instalacyjnego (miałem dostępny rozruch z podwójnego systemu Linux). Plik jest:

/var/log/kernel.log

Jeśli możesz uzyskać dostęp do konsoli w systemie operacyjnym, lepiej postępuj zgodnie z innymi sugestiami i użyj odpowiednich poleceń.

Warpspace
źródło