Para responder pelo menos a primeira parte da sua pergunta sobre dmesg
:
/var/log/dmesg
armazena o conteúdo do 'buffer do anel do kernel', um buffer de memória criado pelo kernel na inicialização no qual os dados de log gerados são armazenados assim que você passa pela fase do carregador de inicialização.
Um buffer de anel é um tipo especial de buffer que sempre possui um tamanho constante, removendo as mensagens mais antigas quando novas mensagens são recebidas. O texto armazenado no buffer de anel do kernel é o que você vê piscando na tela quando você inicializa um Unix. -como máquina no modo console (sem tela inicial, Plymouth). O log do kernel é armazenado em um buffer de memória, de modo que os logs de inicialização estejam em algum lugar, até que o sistema se inicialize até o ponto em que o syslog
daemon possa assumir o controle.
dmesg
no Linux faz parte do util-linux
pacote essencial de ferramentas de manutenção do sistema publicado pelo kernel.org. De acordo com a dmesg(1)
página do manual,
O dmesg é usado para examinar ou controlar o buffer de anel do kernel.
Consulte: http://www.computerhope.com/unix/dmesg.htm
No init 'systemd', este comando pode ser usado para imprimir o buffer de anel do kernel
# journalctl --dmesg or journalctl -k
:, thxs for correção @don_crissti
Emitir o comando, dmesg | grep -i ethernet
por exemplo, analisará o buffer de anel do kernel para a cadeia 'ethernet'.
Espero que isso ajude pelo menos na primeira parte da sua pergunta.
/var/log/kern.log
e/var/log/dmesg
deve ter o mesmo conteúdo que as mensagens do kernel? Mas o conteúdo deles não é o mesmo.