Meu computador desktop executando o Debian Jessie começou a cair em um shell de modo de emergência a cada inicialização. A tela diz para usar journalctl -xb
para encontrar o motivo e systemctl default
para continuar a inicialização. Quando executo systemctl default
, o sistema continua inicializando e, após algumas semanas de uso do sistema, não há nada aparentemente errado.
Olhando através journalctl -xb
, nada se destaca como sendo o motivo de cair para uma concha de emergência. Existe uma maneira fácil de determinar exatamente o motivo pelo qual decidiu entrar no modo de emergência? Existem outras opções de sinalizadores ou de inicialização que tornarão óbvio onde está o problema?
debian
systemd
systemd-journald
jordanm
fonte
fonte
journalctl -xb
quando aconteceu?systemd.log_level=debug systemd.log_target=kmsg log_buf_len=1M
para o detalhe nível forense ...Respostas:
A falha deve ter mostrado um vermelho
[ FAIL ]
no console (em vez de[ OK ]
), com a descrição da unidade ao lado. Normalmente, as primeiras falhas são mais importantes. Use shift + pageup no console para rolar para cima e exibir as últimas telas de saída. Isso pode não funcionar se houver muita saída.Isso funciona mesmo se você normalmente não vê
[ OK ]
mensagens, por exemplo, devido àquiet
linha de comando do kernel conforme usada pelo Debian. Na primeira falha, o systemd muda para o modo detalhado.Caso contrário, você pode usar
systemctl
. Sem opções, ele mostra uma lista enorme de unidades conhecidas com falhas destacadas em vermelho. Para mostrar apenas os que falharam, usesystemctl --state=failed
ousystemctl --failed
.Se você pesquisar os arquivos da unidade, existem apenas algumas maneiras pelas quais a inicialização volta
emergency.target
. Geralmente é quando uma.mount
unidade de um sistema de arquivos local falha, causandolocal-fs.target
falha. Ou quando o initramfs falhar ao montar o sistema de arquivos raiz, se o initramfs usar systemd.local-fs.target
temOnFailure=emergency.target
. E ocorre uma falha porque as unidades dos sistemas de arquivos locais são automaticamente adicionadas à lista Requer local-fs.target (a menos que tenhamDefaultDependencies=no
).fonte
De vez em quando eu corro para um prompt de "modo de manutenção" e também preciso rolar o diário por erros. Como o journalctl usa menos como pager, você poderá aplicar menos atalhos à sua pesquisa.
Normalmente, eu confiava na função de pesquisa (/) e procurava algo equivalente a "erro", "aviso" ou "falha". E certifique-se de -i para forçar a pesquisa sem distinção entre maiúsculas e minúsculas.
Portanto, minhas teclas tendem a se parecer com:
Tecnicamente, não é uma pesquisa exaustiva ou exata do problema exato, mas nunca perdi um problema de inicialização dessa maneira.
Alguns atalhos de teclado menos relacionados abaixo:
http://www.thegeekstuff.com/2010/02/unix-less-command-10-tips-for-effective-navigation/
fonte
systemd
registrará mensagens vermelhas para falhas ao iniciar uma unidade de serviço ou, mais importante, para montar um sistema de arquivos.