Eu estava jogando um jogo no Steam e, de repente, tive um pânico no kernel. Desliguei o computador manualmente e iniciei novamente o Linux Mint 17.1 (Cinnamon) de 64 bits e fui verificar meus arquivos de log /var/log/
, mas não consegui encontrar nenhuma referência ou qualquer tipo de mensagem relacionada ao pânico do kernel que aconteceu.
É estranho por que ele nunca despejou o núcleo nem fez anotações nos arquivos de log. Como posso garantir que um núcleo seja sempre despejado no caso de um pânico no kernel acontecer novamente? Não faz nenhum sentido porque nada foi registrado quando ocorreu um pânico no kernel. Olhando ao redor no Google, as pessoas sugerem para ler /var/log/dmesg
, /var/log/syslog
, /var/log/kern.log
, /var/log/Xorg.log
etc ... mas nada. Nem mesmo em .Xsession-errors
arquivo.
Aqui estão algumas fotografias da tela:
Eu sempre poderia tirar uma foto da tela quando e se isso acontecer novamente, mas eu só quero ter certeza de que posso despejar o núcleo e criar um arquivo de log em pânico no kernel.
fonte
/var/crash
?.Xsession-errors
.Respostas:
Para ter certeza de que sua máquina gera um arquivo "principal" quando ocorre uma falha no kernel, você deve confirmar as configurações "sysctl" da sua máquina.
Na IMO, a seguir devem ser as configurações (mínimas) em
/etc/sysctl.conf
:Execute
sysctl -p
depois de fazer alterações no/etc/sysctl.conf
arquivo. Você provavelmente também deve,mkdir /var/crash
se ainda não existir.Você pode testar o acima, gerando um despejo manual usando a SysRqtecla (a combinação de teclas para despejar o núcleo é Alt+ SysRq+ C).
fonte
Alt+SysRq+C
com as teclas, mas não fez nada, apenas exibiu a tela. Também estou usando o laptop para que as teclas possam ser diferentes. Eu tentei,fn+SysRq+C
mas fez o mesmo de antes.Quando o kernel entra em pânico, significa que algo deu errado no kernel. A gravação de arquivos de log e dumps principais requer o uso dos drivers do dispositivo de armazenamento em bloco (seu disco) e do sistema de arquivos (o espaço deve ser alocado e o tamanho do arquivo de log deve ser atualizado). Dado que os serviços fornecidos pelo kernel são necessários para gravar arquivos, e o kernel sabe que está em um estado quebrado, ele não pode gravar os arquivos ou registrar nada, porque não está mais em um estado seguro, qualquer operação pode piorar as coisas e danificar / destruir seu sistema de arquivos. Portanto, você não pode fazer o kernel gravar no log nem despejar um dump principal quando entrar em pânico.
Agora, o que você pode fazer, se quiser, é configurar o sistema com um kernel de tratamento de falhas, que é um segundo kernel carregado na memória para o qual o controle pode ser transferido se o kernel principal travar. Como esse kernel possui drivers e outros, ele poderá salvar um despejo de memória para você. Porém, essa não é uma configuração muito comum e usada principalmente para sistemas de ponta que exigem alta disponibilidade e onde uma falha é um problema muito sério que deve ser investigado.
Veja, por exemplo, a opção crashkernel no Kernel Crash Dump no ubuntu.com. (Observe que esta página diz que o mecanismo de despejo de memória do kernel está ativado por padrão, a partir do Ubuntu 16.04.)
Eu acredito que o sistema realmente salva o dump em uma parte reservada da memória e depois reinicia, e o kernel salva a memória reservada em disco na próxima inicialização (uma vez que o kernel recém-inicializado está em um estado são e pode fazer isso).
fonte