La partición del sistema EFI ( Interfaz de firmware extensible ) o ESP es una partición en un dispositivo de almacenamiento de datos (generalmente una unidad de disco duro o una unidad de estado sólido ) que utilizan las computadoras que tienen la Interfaz de firmware extensible unificada (UEFI). Cuando se inicia una computadora , el firmware UEFI carga los archivos almacenados en la ESP para iniciar los sistemas operativos y varias utilidades.
Un ESP contiene los cargadores de arranque , los administradores de arranque o las imágenes del núcleo de los sistemas operativos instalados (que normalmente están contenidos en otras particiones), archivos de controladores de dispositivos para dispositivos de hardware presentes en una computadora y utilizados por el firmware en el momento del arranque, programas de utilidad del sistema que están destinados a ejecutarse antes de que se inicie un sistema operativo y archivos de datos como registros de errores. [1]
La partición del sistema EFI está formateada con un sistema de archivos cuya especificación se basa en el sistema de archivos FAT y se mantiene como parte de la especificación UEFI; por lo tanto, la especificación del sistema de archivos es independiente de la especificación FAT original. Se desconoce el alcance real de la divergencia: [2] Apple mantiene una herramienta independiente que se debe utilizar en Mac Intel/x86-64, [3] mientras que otros sistemas utilizan utilidades FAT sin problemas. [4] El identificador único global (GUID) para la partición del sistema EFI en el esquema de la tabla de particiones GUID (GPT) es C12A7328-F81F-11D2-BA4B-00A0C93EC93B , mientras que su ID en el esquema de la tabla de particiones del registro de arranque maestro (MBR) es 0xEF . Tanto los discos particionados con GPT como con MBR pueden contener una partición del sistema EFI, ya que se requiere firmware UEFI para admitir ambos esquemas de particionamiento. Además, se admite el formato de arranque El Torito para CD-ROM y DVD . [1]
UEFI proporciona compatibilidad con versiones anteriores de sistemas heredados al reservar el primer bloque (sector) de la partición para el código de compatibilidad, lo que crea efectivamente un sector de arranque heredado . En los sistemas basados en BIOS heredados , el primer sector de una partición se carga en la memoria y la ejecución se transfiere a este código. El firmware UEFI no ejecuta el código en el MBR, excepto cuando se inicia en modo BIOS heredado a través del Módulo de soporte de compatibilidad (CSM). [1]
La especificación UEFI requiere que las tablas de particiones MBR sean totalmente compatibles. [1] Sin embargo, algunas implementaciones UEFI cambian inmediatamente al arranque CSM basado en BIOS al detectar ciertos tipos de tablas de particiones en el disco de arranque, lo que evita de manera efectiva que el arranque UEFI se realice desde particiones del sistema EFI contenidas en discos particionados con MBR. [5]
El firmware UEFI admite el arranque desde dispositivos de almacenamiento extraíbles, como unidades flash USB . Para ello, un dispositivo extraíble se formatea con un sistema de archivos FAT12 , FAT16 o FAT32 , mientras que un cargador de arranque debe almacenarse de acuerdo con la jerarquía de archivos ESP estándar o proporcionando una ruta completa de un cargador de arranque al administrador de arranque del sistema. Por otro lado, siempre se espera FAT32 en unidades fijas. [1]
GRUB 2 , elilo y systemd-boot funcionan como gestores de arranque UEFI independientes y completos (también conocidos como gestores de cargadores de arranque ) para Linux. Una vez cargados por un firmware UEFI, pueden acceder y arrancar imágenes del núcleo desde todos los dispositivos, particiones y sistemas de archivos que admiten, sin estar limitados a la partición del sistema EFI.
El punto de montaje de la partición del sistema EFI varía según el cargador de arranque utilizado. Los cargadores de arranque más antiguos, como GRUB 2 y lilo/elilo, tienen como valor predeterminado /boot/efi
. Como alternativa, systemd-boot prefiere /efi
o /boot
en lugar de /boot/efi
debido a posibles complicaciones con autofs
los montajes anidados. Independientemente de la ruta del punto de montaje, su contenido es accesible después de que se inicia Linux. [6] [7]
EFI Boot Stub permite arrancar una imagen del núcleo de Linux sin utilizar un cargador de arranque UEFI convencional. Al hacerse pasar por una imagen ejecutable PE / COFF y aparecer ante el firmware como una aplicación UEFI, una imagen del núcleo de Linux con EFI Boot Stub habilitado puede cargarse y ejecutarse directamente mediante un firmware UEFI. Dichas imágenes del núcleo pueden seguir cargándose y ejecutándose mediante cargadores de arranque basados en BIOS; por lo tanto, EFI Boot Stub permite que una única imagen del núcleo funcione en cualquier entorno de arranque. [8]
El soporte del kernel de Linux para el stub de arranque EFI se habilita activando la opción CONFIG_EFI_STUB
(soporte de stub EFI) durante la configuración del kernel. [9] Se fusionó con la versión 3.3 de la línea principal del kernel de Linux , lanzada el 18 de marzo de 2012. [10]
Systemd-boot es un gestor de arranque UEFI simple que carga y ejecuta imágenes EFI configuradas, accediendo únicamente a la partición del sistema EFI. Los fragmentos de archivos de configuración, las imágenes del núcleo y las imágenes initrd deben residir en la partición del sistema EFI, ya que systemd-boot no ofrece soporte para acceder a archivos en otras particiones o sistemas de archivos. Los núcleos de Linux deben compilarse CONFIG_EFI_STUB=y
para que puedan ejecutarse directamente como imágenes UEFI. [11]
En las computadoras Apple Mac que usan la arquitectura del procesador Intel x86-64 , la partición del sistema EFI inicialmente se deja en blanco y sin usar para iniciar macOS . [12] [13]
Sin embargo, la partición del sistema EFI se utiliza como área de preparación para actualizaciones de firmware [14] y para el cargador de arranque de Microsoft Windows para computadoras Mac configuradas para arrancar en una partición de Windows usando Boot Camp . [13] [15]
El firmware UEFI personalizado de Apple llamado iBoot controla la lógica para encontrar y cargar los cargadores de arranque. iBoot seleccionará el cargador de arranque deseado (posiblemente configurado a través de combinaciones de teclado de inicio o NVRAM ), y opcionalmente recurrirá a la instalación interna de macOS o a un sistema de recuperación llamado recoveryOS. [13] [15] [16]
Las máquinas con arquitectura Apple-Intel anteriores a la UEFI requerían que la partición del sistema EFI se formateara en HFS+ . Los cargadores de arranque de terceros debían ser "bendecidos" por un comando ioctl especial antes de que el firmware los pudiera iniciar, una reliquia de la bendición de la carpeta del sistema del Mac OS clásico . De lo contrario, no existen limitaciones en cuanto a qué tipos de sistema operativo EFI o cargador de arranque puede ejecutar una computadora Apple basada en Intel. [17] [18]
Los dispositivos que utilizan silicio de Apple ( AArch64 ), como iPhones, iPads y todas las computadoras Mac a partir de 2023, no contienen la funcionalidad EFI/UEFI y, por lo tanto, no utilizan particiones de sistema EFI. [19] [20]
El soporte de UEFI en Windows comenzó en 2008 con Windows Vista SP1. [21]
El administrador de arranque de Windows se encuentra en la \EFI\Microsoft\Boot\
subcarpeta de la partición del sistema EFI. [22]
En Windows XP 64-Bit Edition y posteriores, el acceso a la partición del sistema EFI se obtiene ejecutando el comando mountvol . Monta la partición del sistema EFI en la unidad especificada. Disponible solo en computadoras con Itanium. [23]
El sistema de archivos compatible con la interfaz de firmware extensible se basa en el sistema de archivos FAT. EFI define una versión específica de FAT que está documentada explícitamente y se puede probar. La conformidad con la especificación EFI y sus documentos de referencia asociados es la única definición de FAT que se debe implementar para admitir EFI. Para diferenciar el sistema de archivos EFI de FAT puro, se ha definido un nuevo tipo de sistema de archivos de partición.
/EFI
directorio en una partición del sistema EFI