A maioria das distribuições instala um carregador de inicialização adicional em um sistema UEFI. O UEFI é um gerenciador de inicialização, oferece um menu para selecionar diferentes sistemas operacionais ou kernels individuais. Além disso, as configurações UEFI podem ser facilmente alteradas com ferramentas do espaço do usuário efibootmgr.
Os kernels desde o 3.3 suportam EFI_STUB, o que significa que o kernel pode ser carregado diretamente a partir da UEFI. Por que as distribuições decidem usar um carregador de inicialização adicional? A maioria dos tutoriais sobre Linux / UEFI se concentra principalmente em como configurar o carregador de inicialização adicional (rEFInd, grub2, ELILO etc.) em vez de inicializar o Linux com EFI_STUB.
A única coisa que falta nas distribuições é o suporte. Como a maioria das distribuições encadeia um segundo carregador de inicialização, o kernel não é adicionado ao menu de inicialização UEFI, nem é copiado para a partição do sistema EFI.
Três scripts são suficientes para fazer toda a mágica. Um que copia o initramfs para o ESP. Um segundo copia o kernel para o ESP e cria uma nova entrada no menu de inicialização UEFI. O terceiro script remove o kernel antigo e o initramfs do ESP e exclui a entrada do menu de inicialização UEFI. Isso permite atualizações / purgas totalmente automatizadas do kernel / initramfs sem a interação do usuário. Estou usando essa abordagem há mais de um ano e funcionou perfeitamente.
Por que a maioria das distribuições usa grub em vez de EFI_STUB?
Ligações:
EDIT: Eu não estou falando sobre remover o suporte ao grub inteiramente, mas para oferecer uma opção para aqueles que querem usá-lo por vários motivos. As distribuições podem fornecer um pacote grub-efipara aqueles que desejam encadear UEFI e grub e um pacote efistub-bootque contém os scripts mencionados acima.