Де файл журналу генерується за допомогою багатослівного запуску в OS X Lion?


19

Після запуску машини в багатослідовому режимі (cmd + v при запуску) я хочу переглянути згенеровані повідомлення журналу, налагодити помилку, яку я отримую ( помилка ). Помилка відображається на екрані лише коротко під час запуску, перед тим, як машина перезавантажиться. Як наслідок, немає часу, щоб його правильно прочитати.

Чи надає OS X окремий файл журналу для запуску повідомлень, або вони заховані у файлах kernel.log та system.log? Якщо вони поховані в цих файлах, чи існує швидкий спосіб перейти до того місця, де система завантажується, у консольний переглядач?

Відповіді:


3

Починаючи з принаймні Snow Leopard і, можливо, Leopard, весь журнал в системі проходить через механізм Apple System Log (ASL), який є як центральний демон і база даних для всіх повідомлень журналу. Демон ASL також гарантує, що відповідні повідомлення журналу, які відповідають певним традиційним критеріям, записуються на традиційні файли журналу з плоским текстом, наприклад, system.logта kernel.log, але все також йде в базу даних ASL.

Для отримання більш докладної інформації, зверніться до сторінок для syslog(1), logger(1), syslog(3), asl(3), syslog.conf(5), asl.conf(5), syslogd(8)і т.д.

Ви можете використовувати syslog(1)для запитів до бази даних ASL. Також /Utilities/Console.appнадає графічний інтерфейс для генерації та збереження користувацьких запитів для бази даних ASL.

Я майже впевнений, що буфер повідомлень ядра (традиційно переглядається за допомогою dmesg(8)) потрапляє в базу даних ASL, як тільки завантаження пройшло досить далеко для syslogdзапуску, тому вам не потрібно буде дзвонити dmesgбезпосередньо, за винятком сили звички. Або якщо ваша система не завантажується досить далеко, syslogdщоб працювати.


Це працює для попередніх чобіт? Проблема, з якою я стикався, коли писав це питання (вирішено зараз, на щастя), виникав лише з перервами. Так що, скажімо, будь-яке інше завантаження, мене викликала паніка в ядрі, і те, що я хотів зробити, - це наступне успішне завантаження, перегляньте файл журналу, знайдіть попереднє завантаження та спробуйте і налагодити.
фіолетовий

@purpletonic Так, все, що надсилається до ASL, потрапляє в базу даних, де за замовчуванням залишається 7 днів (це можна відрегулювати за допомогою asl.conf(5)). Тож якби ви налагоджували проблеми із завантаженням та перезавантажувались кілька разів у той самий день, вони замовчувались там. І якщо це була довгострокова проблема, ви можете скорегувати термін зберігання ASL, щоб довше зберігати інформацію.
Spiff

Ця відповідь насправді не говорить про те, як я бачу висновок із процесу "багатослівного" завантаження. Після завантаження dmesgпоказує лише деякі останні записи, але не журнал завантаження. Спробуйте це 10.12.6 - більше немає файлу "kernel.log".
SuperTempel

11

Відкрийте Terminal.app та запустіть

sudo dmesg

(вас запитають пароль)

Це покаже системні повідомлення від останнього запуску до цього часу (ви знайдете повідомлення про запуск у верхній частині результату). Ви можете спробувати

sudo dmesg | більше

це виводить ці повідомлення сторінки за сторінкою.


Приємно! Я б використовував менше, а не більше, це набагато зручніше і не захаращує прокрутку вашого терміналу.
SilverWolf - Відновити Моніку

4

Прийнята відповідь (від Spiff) мені не допомогла, а також немає kernel.log.

Що працює для мене (на macOS 10.12.6) - це ця команда:

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

Він показує всі сьогоднішні повідомлення ядра, включаючи процес завантаження. Це потребує певного прибирання, але принаймні воно містить усе, що мені потрібно було знайти.


Це працює і для мене. Дякую. Інші відповіді показують речі, не обов'язково пов'язані з завантаженням, або не показують ТОЧНО те, що друкується під час завантаження. Ваша відповідь - +1. І це також кольорово!
Макс Коплан

2

Мені самому цікаво, як зробити журнал найбільш відповідним до запуску без доступу до консолі / терміналу. Він забився під час запуску, але ви можете отримати доступ до файлової системи через інсталяційний диск (у мене була подвійна завантажувальна система Linux). Файл:

/var/log/kernel.log

Якщо ви можете отримати доступ до консолі в операційній системі, краще дотримуватися інших пропозицій і використовувати відповідні команди.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.