Portanto, seu console tem dois tipos de mensagens:
- gerado pelo kernel (via printk);
- gerado pelo userspace (geralmente seu sistema init).
As mensagens do kernel são sempre armazenadas no buffer kmsg, visíveis via dmesg
. Eles também são frequentemente copiados para o seu syslog. (Isso também se aplica a mensagens do espaço do usuário gravadas em /dev/kmsg
, mas essas são bastante raras).
Enquanto isso, quando userspace escreve seu texto de status de inicialização sofisticado em /dev/console
ou /dev/tty1
, ele não é armazenado em lugar algum. Apenas vai para a tela e é isso. Então eu acho que qualquer qualquer solução - exceto a sugestão do console serial de Rowan - acabará sendo muito específico da distribuição (devido a cada sistema de inicialização executar logging diferentemente) ou um "hack invasivo" que envolve strace ou hackear o kernel ou algo assim.
No melhor dos casos, o seu sistema init irá si mesmo registrar todos os eventos importantes no syslog (/ var / log / messages ou algo parecido). Por exemplo:
systemd[1]: Starting BIRD routing daemon...
bird[478296]: /etc/bird.conf, line 2: syntax error
systemd[1]: bird.service: Control process exited, code=exited status=1
systemd[1]: Failed to start BIRD routing daemon.
(systemd e upstart também registram os serviços stdout / stderr também; muitos outros sistemas init apenas o redirecionam para o console ou em nenhum lugar.)