El propósito de este artículo es informar al usuario sobre las opciones de kernel necesarias para el arranque desde UEFI, y cierta información sobre cómo funcionan ELILO y quizás otros cargadores de arranque EFI, ya que actualmente es difícil de encontrar y entender en línea.
Las siguientes opciones son necesarias para arrancar un kernel desde UEFI. Estos ya están establecidos en los núcleos de Slackware.
ya que está en desuso a favor de CONFIG_EFIVAR_FS, porque tiene un límite de tamaño de variable de 1024 bytes, y porque puede causar problemas de inconsistencia de datos.
Sin embargo, si lo deshabilita, necesitará un enlace del programa efibootmgr
que admite el nuevo sistema de archivos Variable EFI.
Para utilizar la nueva interfaz del sistema de archivos de variables EFI, debe eliminar el antiguo programa “efibootmgr” y reemplazarlo por uno nuevo que admita el sistema de archivos de variables EFI.
modprobe efivarfs mount -t efivarfs efivarfs /sys/firmware/efi/efivars efibootmgr
Para arrancar desde UEFI, debe crear una partición del sistema EFI (ESP) utilizando gdisk
o cgdisk
en lugar del antiguo fdisk
y cfdisk
. El Slackware README_UEFI.TXT recomienda un tamaño de 100M, que también es el tamaño de partición mínimo (excepto para unidades 4K nativas, donde es 260M). También debe configurar el código hexadecimal de partición en EF00
, que lo identifica como el ESP.
Durante el procedimiento de instalación de Slackware 14.1 para ELILO (la secuencia de comandos eliloconfig
), ocurre lo siguiente y es necesario para el arranque desde UEFI utilizando ELILO.
- La partición del sistema EFI (ESP) está ubicada y montada. En un sistema en ejecución, normalmente se encuentra ya montado en /boot/efi
. Esta es una partición FAT especial que básicamente es el reemplazo del firmware UEFI de lo que el MBR era para BIOS. Sin embargo, no solo puede contener un gestor de arranque (todo lo que el MBR era capaz de hacer), sino también los archivos de configuración, el kernel y otras cosas a las que tal vez quiera acceder utilizando el firmware UEFI.
/boot/efi/EFI/Slackware
. Éstos incluyen: elilo.efi
. elilo.conf
. vmlinuz
efibootmgr
. El comando exacto que se ejecuta esEFI_DEVICE=$(mount | grep vfat | grep -w /boot/efi | cut -b 1-8) EFI_PARTITION=$(mount | grep vfat | grep -w /boot/efi | cut -f 1 -d ' ' | cut -b 9-) efibootmgr -q -c -d $EFI_DEVICE -p $EFI_PARTITION -l "\\EFI\\Slackware\\elilo.efi" -L "Slackware"
si sale mount
/dev/sda1 on /boot/efi type vfat (rw)
EFI_DEVICE sería /dev/sda
and EFI_PARTITION sería 1
, cada componente de /dev/sda1
, que es el ESP.
/EFI/boot/bootx64.efi
. Esta ubicación especial permite que el firmware UEFI ejecute el cargador de arranque sin ninguna entrada de arranque.
Esta tarea es ahora mucho más fácil de lo que solía ser. Todo lo que necesitas hacer es copiar vmlinuz
en el ESP en la parte superior del núcleo antiguo. No es necesario editar configuraciones o agregar entradas de arranque, a menos que lo desee. Tenga en cuenta que puede editar la configuración en su lugar y ELILO recogerá los cambios en el próximo arranque, sin necesidad de ejecutar ningún comando como con el antiguo lilo.
Como todo el firmware de UEFI tiene una utilidad flashing incorporada, ahora es mucho más fácil actualizar el firmware. Todo lo que tiene que hacer es copiar el nuevo firmware en el ESP y el firmware UEFI debería reconocerlo cuando vaya al menú de la utilidad que parpadea. Sin embargo, recuerde que la actualización del firmware aún puede potencialmente bloquear el sistema, especialmente si se interrumpe durante el proceso de actualización.
Esto puede suceder después de actualizar el firmware UEFI o después de reemplazar la batería CMOS. Hay tres formas principales de solucionarlo:
elilo.efi
→ /EFI/boot/bootx64.efi
elilo.conf
→ /EFI/boot/elilo.conf
vmlinuz
→ /EFI/boot/vmlinuz
- Puede iniciar el DVD de instalación de Slackware, ejecutar los menús y reinstalar elilo.
/
NOT / EFI
).bcfg boot add 0 fs0:\EFI\Slackware\elilo.efi Slackware
eliloconfig
bash script por Patrick Volkerding