Onde o Linux coloca as mensagens de inicialização?

39

Eu quero encontrar um lugar para onde o Linux grave todas as mensagens de inicialização. Você sabe:

facility one    [STARTED]
facility two    [STARTED]
facility three  [FAILED]

Eu pesquisei com

find . -print0 | xargs -0 grep -i "words from boot messages"

em / var / log /, mas não encontrou nada.

Eu tenho o CentOS 5.5.
Por exemplo, no momento da inicialização, eu tinha: "A determinação das informações de IP para eth0 ... falhou; nenhum link presente. Verifique o cabo?"
Não ligo especificamente para o erro, mas não consigo encontrar nenhum log que contenha esse erro.

dmesg | grep "no link present" não retorna nada também.

Rodnower
fonte
1
você executou o findcomando com permissões de root? findimprimirá todos os arquivos que você pode listar, mas grepsó pode verificar os arquivos que você pode ler e alguns arquivos de log podem ser de propriedade de permissões de leitura de entrada raiz para outros usuários. Além disso, pelo menos o GNU grep suporta a -lopção de imprimir os nomes de arquivos com correspondências, em vez de linhas correspondentes. Isso pode ser muito útil para procurar arquivos que contenham determinado texto. Então tente su -c 'find /var/log -print0 | xargs -0 grep -l -i "words from boot messages"'ousudo find /varlog -print0 | xargs -0 sudo grep -l -i "words from boot messages"
mschilli 15/02/2015
Hoje em dia com systemd aqui está a resposta.
Pablo A

Respostas:

24

A maioria das mensagens de inicialização são colocados em um buffer, que você pode acessar usando o comando dmesg. Na maioria das distribuições Linux, essa saída também é armazenada em

/var/log/dmesg.log

Que você pode ver com

tail -n 100 /var/log/dmesg.log
Luc Stepniewski
fonte
1
Por exemplo, eu tive no momento da inicialização: "Determinar informações de IP para eth0 ... falhou; nenhum link presente Verificar cabo?" Não me importo com esse erro especificamente, mas quando o faço: dmesg | grep "no link present" Não recebo nada ... Na verdade, recebo MUITAS linhas com grep "eth0", mas não com erro concreto. Então, existe uma maneira de encontrar uma descrição concreta dos erros de inicialização ou não? (Obrigado pela resposta ao ponto)
Rodnower
Tente usar Nanoo comando s ^ w (whereis), essencialmente um comando Find. Ou grepcom uma regexp relaxada. Se você estiver realmente preocupado com a saída de um comando específico, poderá entrar no init.darquivo e alterar o log STDOUT ou STDERR do comando incorreto.
Mat Carlson
Não /var/log/dmesg.logno Lubuntu 18.04
Marco Sulla
17

Toda entrada excepcional durante a inicialização é colocada em /var/log/syslogTambém pode estar em/var/log/boot.msg

BloodPhilia
fonte
Eu tenho CentOS 5.5 e não tenho syslog em / var / log /
Rodnower
boot.log (geralmente boot.log (x) em que x é um número inteiro positivo ou nada) está vazio.
Rodnower 15/08/10
1
Tente / var / log / messages
pjc50
1
/var/log/boot.msg é o correto no linux mint
MaxV
também pode conter entradas não excepcionais.
Abdull
8

Esta solução certamente funciona em sistemas Debian, mas talvez possa ser útil de qualquer maneira.

Para armazenar todas as mensagens mostradas durante a inicialização, você deve iniciar um serviço chamado bootlogd. Após a próxima reinicialização, você poderá ler as mensagens /var/log/boot.

cYrus
fonte
No debian wheezy, eu receboroot@wheezy:/home/jrx# service bootlogd start bootlogd: unrecognized service
Jérôme Radix
4
@ JérômeRadix talvez você deva instalá-lo primeiro?
Behrooz
3

Digite dmesg> ~ / dmesg.log para copiar todas as mensagens de inicialização para sua própria cópia. Você pode adicionar a data e a hora se desejar manter várias cópias e até automatizá-las em um script de login.

G5MacPower
fonte