O sistema em questão está configurado para o kexec, por isso nunca vai tão longe quanto o bootloader ou o firmware.
A idéia geral por trás do kexec é evitar os tempos insanos de POST vistos em muitos hardwares de servidores para reduzir o tempo de inatividade quando você precisa atualizar seu kernel. Ele tem alguns outros usos legais também (é usado em algumas distribuições para lidar com despejos de memória e pode até mesmo ser usado para alternar entre executar o Linux diretamente no hardware e executá-lo dentro do hypervisor Xen).
Existem duas opções para lidar com isso.
-
Descobrir como desabilitar corretamente o kexec (seja desabilitando o script init que está carregando o novo kernel, ou desinstalando o comando kexec que deve estar em um pacote chamado
kexec-tools
no Ubuntu). Infelizmente, isso é bastante específico do sistema, e eu não tenho idéia de como o Ubuntu lida com o kexec atualmente, então não posso dar muitos conselhos aqui. -
Descarregue manualmente o kernel kexec antes de emitir o comando reboot executando o comando
kexec -u
as root. Isso só funcionará se o carregamento for feito durante a inicialização ou ao instalar um novo pacote do kernel (embora eu pense que é assim que o Ubuntu lida com isso, não tenho certeza). Alternativamente, se estiver usando systemd, chamarsystemctl reboot
ao invés de apenasreboot
pode ignorar o uso de um kernel kexec, mas não tenho certeza disso.