[2024-feb-29] Sad news: Eric Layton aka Nocturnal Slacker aka vtel57 passed away on Feb 26th, shortly after hospitalization. He was one of our Wiki's most prominent admins. He will be missed.

Welcome to the Slackware Documentation Project

Opciones del kernel de Linux para UEFI y ELILO

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.

Opciones de kernel requeridas para el soporte UEFI

Las siguientes opciones son necesarias para arrancar un kernel desde UEFI. Estos ya están establecidos en los núcleos de Slackware.

El arranque desde UEFI requiere que el kernel tenga los mismos bits que el firmware UEFI. Por lo general, esto significa 64 bits, con la excepción del nuevo Intel Atom System-on-Chip (2013), los Apple Mac más antiguos (anteriores a 2008) y las placas Intel para servidores que utilizan EFI v1.10 en modo de 32 bits, y algunos Intel Cloverfield ultrabooks. Sin embargo, aún puede habilitar la emulación de 32 bits en el kernel y ejecutar programas de 32 bits en Linux usando multilib.
  • Enable the block layer
    • Partition Types
      • Advanced partition selection
        • EFI GUID Partition support (CONFIG_EFI_PARTITION [=y])
  • Processor type and features
    • EFI runtime service support (CONFIG_EFI [=y])
    • EFI stub support (CONFIG_EFI_STUB [=y])
    • Build a relocatable kernel (CONFIG_RELOCATABLE [=y])
  • Device Drivers
    • Graphics support
      • Support for frame buffer devices (CONFIG_FB [=y])
        • EFI-based Framebuffer Support (CONFIG_FB_EFI [=y])
  • File systems
    • Miscellaneous filesystems
      • EFI Variable filesystem (CONFIG_EFIVAR_FS [=y])
Usted debe DESACTIVAR la antigua interfaz de sysfs de efivars encontrada en:
  • Firmware Drivers
    • EFI (Extensible Firmware Interface) Support
      • EFI Variable Support via sysfs (CONFIG_EFI_VARS [=n])

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.

Usando 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.

  1. Correr:
    modprobe efivarfs
    mount -t efivarfs efivarfs /sys/firmware/efi/efivars
    efibootmgr

La partición del sistema EFI (ESP)

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.

UEFI y ELILO

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.

  1. Los tres elementos requeridos por ELILO (y otros cargadores de arranque) se copian en el ESP a /boot/efi/EFI/Slackware . Éstos incluyen:
    1. El gestor de arranque. En el caso de ELILO es elilo.efi .
    2. El archivo de configuración. En el caso de ELILO es elilo.conf .
    3. El núcleo, usualmente titulado vmlinuz
  2. Una variable de entrada de inicio se registra en el firmware UEFI utilizando efibootmgr . El comando exacto que se ejecuta es
EFI_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.

Si por alguna razón no puede registrar una entrada de arranque con el firmware UEFI, debe colocar el cargador de arranque en /EFI/boot/bootx64.efi . Esta ubicación especial permite que el firmware UEFI ejecute el cargador de arranque sin ninguna entrada de arranque.

Actualizando tu kernel

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.

Actualizando su firmware UEFI

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.

La actualización del firmware de UEFI puede restablecer la configuración y evitar que arranque, a menos que planifique con anticipación.

Mis configuraciones de UEFI se restablecieron y no puedo arrancar, o planeo con anticipación para evitar sorpresas

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:

  1. Probablemente, la forma más fácil y conveniente es utilizar la ubicación de inicio predeterminada. Tenga en cuenta que algunos firmwares UEFI NO admiten la ubicación de inicio predeterminada, por lo que esto no funcionará. Sin embargo, si lo hace, no tendrá que preocuparse por que el sistema no se reinicie de nuevo. Para hacer esto, puede iniciar el DVD de instalación de Slackware, montar el ESP y copiar los archivos en los siguientes lugares:
    1. elilo.efi/EFI/boot/bootx64.efi
    2. elilo.conf/EFI/boot/elilo.conf
    3. vmlinuz/EFI/boot/vmlinuz

- Puede iniciar el DVD de instalación de Slackware, ejecutar los menús y reinstalar elilo.

  1. Puede descargar e instalar uno de los siguientes shells EFI en el directorio raíz de su ESP (que es / NOT / EFI ).
    1. Arranque en el shell y ejecute:
      bcfg boot add 0 fs0:\EFI\Slackware\elilo.efi Slackware

Enlaces externos

Sources

 es:howtos:slackware_admin:linux_kernel_options_for_uefi_and_elilo ()
Esta traducción es más antigua que la página original y podría estar obsoleta. Ver lo que ha cambiado.