Tente o comando kexec para fazer exatamente o que você precisa.
kexec -l kernel-image --append=command-line-options --initrd=initrd-image
do kexec manpage:
kexec é uma chamada de sistema que permite carregar e inicializar
outro kernel do kernel atualmente em execução. o kexec executa
a função do carregador de boot de dentro do kernel. O primário
diferença entre uma inicialização do sistema padrão e uma inicialização kexec é que
a inicialização de hardware normalmente executada pelo BIOS ou
firmware (dependendo da arquitetura) não é executado durante um kexec
inicializar . Isso tem o efeito de reduzir o tempo necessário para uma reinicialização.
...
Insira os parâmetros da linha de comandos que devem ser passados para o novo kernel em command-line-options
. Passar o conteúdo exato de /proc/cmdline
em command-line-options
é a maneira mais segura de garantir que os valores corretos sejam passados para o kernel de reinicialização.
Nunca tentei kexec sozinho (exceto talvez durante o crashdump para carregar o kernel de despejo, mas era um processo automático), eu iria para o modo de usuário único primeiro para parar todos os processos antes executando o kexec.