Eu tenho um kvm vm que parece estar reiniciando aleatoriamente. Não estou vendo nada no syslog sobre reinicialização, desligamento, erro, core dump, pânico, etc. Também não há erros no log do libvirtd no host, nenhum erro nos logs do qemu e nenhum erro no host.
Parece que algum processo aleatório pode estar invocando o syscall de reinicialização dentro da VM? Isso é tudo que consigo pensar...
Como posso determinar o que está causando isso? O sistema operacional é Debian.
Se você não se importa em colocar as mãos no código C, então você pode escrever um módulo de kernel simples que intercepte a chamada de reinicialização/desligamento e salve informações via
printk()
.Esta resposta pode ser um bom começo. Para saber quem está ligando para seu manipulador modificado, confira este .
Código de teste
Tentei desenvolver as dicas acima e criei o código a seguir.
No meu próprio sistema doméstico (Ubuntu 22.04-LTS) ele compila e o módulo do kernel é instalado e parece funcionar com alguns símbolos: por exemplo
__do_sys_swapon
:Mas parece haver várias chamadas semelhantes a reinicialização
/proc/kallsyms
, então temo que você precisará de vários kprobes ou de um pouco de tentativa e erro.__do_sys_reboot
não parece ser registrado se eu invocarreboot
a partir do prompt.Makefile :
Para compilar, basta executar '
make
'.Bem, primeiro eu verificaria tudo o
log-files
que sei de importante nos seguintes locais:less /var/log/syslog
less /var/log/messages
less /var/log/kern.log
less /var/log/dmesg