19

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

Предоставляет ли OS X отдельный файл журнала для начальных сообщений или они скрыты в файлах kernel.log и system.log? Если они скрыты в этих файлах, есть ли быстрый способ перейти к точке загрузки системы в средстве просмотра консоли?

4 ответа4

11

Откройте Terminal.app и запустите

судо дмесг

(вам будет предложено ввести пароль)

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

судо дмесг | Больше

это выведет эти сообщения постранично.

2

Я сам задаюсь вопросом, как получить журнал, наиболее подходящий для запуска, без доступа к консоли / терминалу. Он завис при запуске, но вы можете получить доступ к файловой системе через установочный диск (у меня была доступна двойная загрузка Linux). Файл:

/var/log/kernel.log

Если вы можете получить доступ к консоли в операционной системе, лучше следовать другим советам и использовать соответствующие команды.

2

Начиная, по крайней мере, со 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 .

1

Принятый ответ (от Спиффа) мне не помог, как и ядро kernel.log.

Что работает для меня (на MacOS 10.12.6) это команда:

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

Он показывает все сегодняшние сообщения ядра, включая процесс загрузки. Это требует некоторой очистки, но, по крайней мере, оно содержит все, что мне нужно было найти.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .