Onde está o arquivo de log gerado por uma inicialização detalhada no OS X Lion?

19

Depois de iniciar minha máquina no modo detalhado (cmd + v na inicialização), desejo exibir as mensagens de log geradas, para depurar um erro que estou recebendo ( o erro ). O erro é exibido apenas na tela brevemente durante a inicialização, antes da reinicialização da máquina. Como resultado, não há tempo para lê-lo corretamente.

O OS X fornece um arquivo de log separado para mensagens de inicialização ou eles estão ocultos nos arquivos kernel.log e system.log? Se eles estiverem enterrados nesses arquivos, existe uma maneira rápida de pular para o ponto em que o sistema inicializa, no visualizador do console?

purpletônico
fonte

Respostas:

3

Começando pelo menos no Snow Leopard e possivelmente no Leopard, todo o logon no sistema passa pelo mecanismo Apple System Log (ASL), que é como um daemon central e um banco de dados para todas as mensagens de log. O daemon ASL também assegura que as mensagens de log apropriadas que atendam a certos critérios tradicionais sejam gravadas em arquivos de log de texto simples como system.loge kernel.log, mas tudo também vá para o banco de dados ASL.

Para mais informações, consulte as páginas man para syslog(1), logger(1), syslog(3), asl(3), syslog.conf(5), asl.conf(5), syslogd(8), etc.

Você pode usar syslog(1)para emitir consultas no banco de dados ASL. Além disso, /Utilities/Console.appfornece uma GUI para gerar e salvar consultas personalizadas para o banco de dados ASL.

Tenho certeza de que o buffer de mensagens do kernel (tradicionalmente visto com dmesg(8)) é despejado no banco de dados ASL assim que a inicialização avança o suficiente para syslogdestar em execução, portanto você não precisa ligar dmesgdiretamente, exceto por força do hábito. Ou se o seu sistema não estiver inicializando o suficiente para syslogdestar em execução.

Spiff
fonte
Isso funciona para botas anteriores? O problema que eu estava enfrentando quando escrevi essa pergunta (resolvido agora, felizmente) estava ocorrendo apenas de forma intermitente. Por exemplo, em qualquer outra inicialização, o Kernel entrou em pânico e o que eu queria fazer era na próxima inicialização bem-sucedida, revise o arquivo de log, encontre a inicialização anterior e tente depurar.
28412 purpletonic
@purpletonic Sim, tudo o que é enviado para o ASL é colocado em um banco de dados, onde permanece por um padrão de 7 dias (isso pode ser ajustado com asl.conf(5)). Portanto, se você estivesse depurando problemas de inicialização e reiniciado várias vezes no mesmo dia, eles estariam lá por padrão. E se fosse um problema de longo prazo, você poderia ajustar o período de retenção do ASL para manter as coisas por mais tempo.
Spiff
Essa resposta, na verdade, não diz como eu consigo ver a saída do processo de inicialização "detalhado". Uma vez inicializado, dmesgmostra apenas algumas entradas recentes, mas não o log de inicialização. Tentando isso em 10.12.6 - não há mais nenhum arquivo "kernel.log".
SuperTempel 28/10/19
11

Abra Terminal.app e execute

sudo dmesg

(sua senha será solicitada)

Isso exibirá mensagens do sistema desde a última inicialização até agora (você encontrará as mensagens de inicialização na parte superior da saída). Você pode tentar

sudo dmesg | Mais

isso produzirá essas mensagens página por página.

tremer
fonte
Agradável! Eu usaria menos em vez de mais, é muito mais conveniente e não atrapalha sua rolagem do terminal.
SilverWolf - Restabelece Monica
4

A resposta aceita (por Spiff) não foi útil para mim, nem existe mais um kernel.log.

O que funciona para mim (no macOS 10.12.6) é este comando:

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

Ele mostra todas as mensagens do kernel de hoje, incluindo o processo de inicialização. Ele precisa de uma limpeza, mas pelo menos contém tudo o que eu precisava encontrar.

SuperTempel
fonte
Isso funciona para mim também. Obrigado. As outras respostas mostram coisas não necessariamente relacionadas à inicialização ou não mostram EXATAMENTE o que está sendo impresso durante a inicialização. Sua resposta é +1. E também é codificado por cores!
Max Coplan
2

Eu mesmo me perguntando como obter o log mais apropriado para a inicialização sem acesso ao console / terminal. Ele travou na inicialização, mas você pode obter acesso ao sistema de arquivos através do disco de instalação (eu tinha uma inicialização dual linux disponível). O arquivo é:

/var/log/kernel.log

Se você puder acessar o console no sistema operacional, é melhor seguir as outras sugestões e usar os comandos apropriados.

Warpspace
fonte