A reinicialização kexec não ignora mais o firmware / reinicialização rígida após a atualização para ubuntu 20.04

Nov 26 2020

(Postando aqui em vez do subsite do Ubuntu porque não acho que seja especificamente relacionado ao Ubuntu ...)

Eu já usei com sucesso a kexec-reboot -lrpartir da página excepcionalmente útil aqui .

Após uma atualização de 18.04 para 20.04, a execução deste comando ainda reinicializa o sistema, mas agora faz uma reinicialização 'forçada' onde cai para EFI / firmware em vez de apenas recarregar e reiniciar o kernel. Isso adiciona vários minutos ao tempo de inicialização do meu servidor (e anula todo o sentido de usar esta invocação ...)

O comando que está sendo executado de acordo com a saída detalhada de kexec-reboot é:

Running /sbin/kexec -l /boot/vmlinuz-5.4.0-54-generic --append='root=UUID=69a4d39e-361f-41e7-9ad3-866cb9dae202 ro intel_iommu=on' --initrd=/boot/initrd.img-5.4.0-54-generic

Executar esse comando diretamente (ou seja, não a partir do script de conveniência kexec-reboot) dá o mesmo comportamento.

Verifiquei o syslog e o dmesg em busca de mensagens que pareçam relevantes e não consigo encontrar nada, mas provavelmente também não estou ciente de todos os vários lugares que posso procurar. Além do sinalizador detalhado, que outras coisas posso usar para solucionar isso?

Atualização 26/11: Se eu construir manualmente a linha kexec conforme descrito acima e depois executar kexec -e(conforme descrito aqui ), ele realmente inicializa o kernel diretamente. Olhando para o código kexec-reboot mostra que a chamada final existe shutdown -r now, então agora estou tentando descobrir por que o shutdown -r nowcomportamento é diferente do que era antes ...

Respostas

VSreekanthChintada Nov 30 2020 at 21:59

Do Kernel 5.4 em diante, o Módulo de Segurança do Linux habilitou o recurso Lockdown. Isso desabilitará o recurso de reinicialização do kexec e não permitirá ignorar a reinicialização a frio. Por padrão, o recurso de bloqueio está desabilitado em 5.4. Mas confirme no seu caso que não está habilitado. Você pode verificar as variáveis ​​do u-boot ou a fonte do kernel.