La mayoría de las distribuciones instalan un cargador de arranque adicional en un sistema UEFI. UEFI es un gestor de arranque, ofrece un menú para seleccionar diferentes sistemas operativos o núcleos individuales. Además, la configuración de UEFI se puede modificar fácilmente con herramientas de espacio de usuario como efibootmgr
.
Los núcleos desde 3.3 son compatibles con EFI_STUB, lo que significa que el núcleo se puede cargar directamente desde la UEFI. ¿Por qué las distribuciones deciden usar un cargador de arranque adicional? La mayoría de los tutoriales sobre Linux / UEFI se centran principalmente en cómo configurar el cargador de arranque adicional (rEFInd, grub2, ELILO, etc.) en lugar de arrancar Linux con EFI_STUB.
Lo único que falta en las distribuciones es el soporte. Como la mayoría de las distribuciones encadenan un segundo cargador de arranque, el kernel no se agrega al menú de arranque UEFI, ni se copia a la partición del sistema EFI.
Tres guiones son suficientes para hacer toda la magia. Uno que copia los initramfs al ESP. Un segundo copia el kernel al ESP y crea una nueva entrada en el menú de arranque UEFI. El tercer script elimina el núcleo antiguo y los initramfs del ESP y elimina la entrada del menú de arranque UEFI. Esto permite actualizaciones / purgas de kernel / initramfs totalmente automatizadas sin interacción del usuario. Estoy usando este enfoque desde hace más de un año y ha funcionado perfectamente.
¿Por qué la mayoría de las distribuciones usan grub en lugar de EFI_STUB?
Campo de golf:
EDITAR: No estoy hablando de eliminar el soporte de grub por completo, sino de ofrecer una opción para aquellos que quieran usarlo por varias razones. Las distribuciones podrían proporcionar un paquete grub-efi
para aquellos que desean encadenar UEFI y grub y un paquete efistub-boot
que contenga los scripts que mencioné anteriormente.