A partição de sistema EFI (em inglês: EFI system partition ou ESP) é uma partição em um dispositivo de armazenamento de dados (geralmente uma unidade de disco rígido ou unidade de estado sólido) utilizada por computadores que possuem a Unified Extensible Firmware Interface (UEFI). Quando um computador é inicializado, o firmware UEFI carrega os arquivos armazenados na ESP para iniciar os sistemas operacionais e utilitários diversos. Uma ESP contém os gerenciadores de inicialização ou as imagens dos núcleos dos sistemas operacionais instalados (que normalmente estão contidos em outras partições), arquivos de drivers de dispositivos para componentes de hardware presentes no computador e usados pelo firmware no momento da inicialização, programas utilitários de sistema que devem ser executados antes do carregamento do sistema operacional e arquivos de dados, como logs de erros.
Visão geral
A partição de sistema EFI é formatada com um sistema de arquivos cuja especificação é baseada no sistema de arquivos FAT e mantida como parte da especificação UEFI; portanto, a especificação do sistema de arquivos é independente da especificação FAT original. A extensão real da divergência é desconhecida: a Apple mantém uma ferramenta separada que deve ser usada em Macs com Intel/x86-64, enquanto outros sistemas usam utilitários FAT comuns sem problemas. O identificador único global (GUID) para a partição de sistema EFI no esquema da tabela de partições GUID (GPT) é C12A7328-F81F-11D2-BA4B-00A0C93EC93B, enquanto seu ID no esquema da tabela de partições no registro mestre de inicialização (MBR) é 0xEF. Tanto discos particionados em GPT quanto em MBR podem conter uma partição de sistema EFI, pois o firmware UEFI é obrigado a suportar ambos os esquemas de particionamento. Além disso, o formato inicializável El Torito para CD-ROMs e DVDs também é suportado. A UEFI oferece retrocompatibilidade com sistemas legados reservando o primeiro bloco (setor) da partição para código de compatibilidade, criando efetivamente um setor de inicialização legado. Em sistemas baseados em BIOS legados, o primeiro setor de uma partição é carregado na memória e a execução é transferida para esse código. O firmware UEFI não executa o código no MBR, exceto ao inicializar no modo BIOS legado por meio do Módulo de Suporte de Compatibilidade (CSM). A especificação UEFI exige que as tabelas de partições MBR sejam totalmente suportadas. No entanto, algumas implementações de UEFI mudam imediatamente para a inicialização CSM baseada em BIOS ao detectar certos tipos de tabelas de partições no disco de inicialização, impedindo efetivamente que a inicialização UEFI seja realizada a partir de partições de sistema EFI contidas em discos particionados em MBR. O firmware UEFI suporta a inicialização a partir de dispositivos de armazenamento removíveis, como unidades flash USB. Para esse propósito, um dispositivo removível é formatado com um sistema de arquivos FAT12, FAT16 ou FAT32, e o gerenciador de inicialização precisa ser armazenado de acordo com a hierarquia de arquivos padrão da ESP, ou fornecendo um caminho completo do gerenciador de inicialização para o gerenciador de inicialização do sistema. Por outro lado, o FAT32 é sempre esperado em unidades fixas.
Uso
Linux
GRUB 2, elilo e systemd-boot servem como gerenciadores de inicialização UEFI (também conhecidos como gerenciadores de carregadores de inicialização) autônomos e completos para o Linux. Uma vez carregados por um firmware UEFI, eles podem acessar e inicializar imagens de núcleos de todos os dispositivos, partições e sistemas de arquivos que suportam, sem ficarem limitados à partição de sistema EFI. O ponto de montagem para a partição de sistema EFI varia dependendo do gerenciador de inicialização utilizado. Gerenciadores de inicialização mais antigos, como o GRUB 2 e o lilo/elilo, usam por padrão /boot/efi. Alternativamente, o systemd-boot prefere /efi ou /boot em vez de /boot/efi devido a complicações potenciais com montagens aninhadas do autofs. Independentemente do caminho do ponto de montagem, seu conteúdo fica acessível após a inicialização do Linux.
EFI Boot Stub do núcleo Linux O EFI Boot Stub torna possível inicializar uma imagem de núcleo Linux sem o uso de um gerenciador de inicialização UEFI convencional. Ao se disfarçar como um executável PE/COFF e aparecer para o firmware como uma aplicação UEFI, uma imagem de núcleo Linux com o EFI Boot Stub ativado pode ser diretamente carregada e executada por um firmware UEFI. Essas imagens de núcleos ainda podem ser carregadas e executadas por gerenciadores de inicialização baseados em BIOS; portanto, o EFI Boot Stub permite que uma única imagem de núcleo funcione em qualquer ambiente de inicialização. O suporte do núcleo Linux ao EFI Boot Stub é habilitado ativando a opção CONFIG_EFI_STUB (suporte a EFI stub) durante a configuração do núcleo. Ele foi integrado à versão 3.3 da linha principal do núcleo Linux, lançada em 18 de março de 2012. O systemd-boot é um gerenciador de inicialização UEFI simples que carrega e executa imagens EFI configuradas, acessando apenas a partição de sistema EFI. Fragmentos de arquivos de configuração, imagens de núcleos e imagens initrd precisam obrigatoriamente residir na partição de sistema EFI, já que o systemd-boot não oferece suporte para acessar arquivos em outras partições ou sistemas de arquivos. Os núcleos Linux precisam ser compilados com CONFIG_EFI_STUB=y para que possam ser executados diretamente como imagens UEFI.
Apple
macOS em Intel (x86 e x86-64) Em computadores Apple Mac que utilizam a arquitetura de processadores Intel x86-64, a partição de sistema EFI é inicialmente deixada em branco e não é utilizada para inicializar o macOS. No entanto, a partição de sistema EFI é usada como uma área de transferência para atualizações de firmware e para o gerenciador de inicialização do Microsoft Windows em computadores Mac configurados para inicializar em uma partição Windows usando o Boot Camp. Um firmware UEFI personalizado da Apple chamado iBoot controla a lógica para encontrar e carregar gerenciadores de inicialização. O iBoot selecionará o gerenciador de inicialização desejado (que pode ser configurado por meio de combinações de teclas na inicialização ou pela NVRAM), recorrendo opcionalmente à instalação interna do macOS ou a um sistema de recuperação chamado recoveryOS. Máquinas mais antigas da arquitetura Apple-Intel anteriores ao UEFI exigiam que a partição de sistema EFI fosse formatada em HFS+. Gerenciadores de inicialização de terceiros precisavam ser "abençoados" (blessed) por um comando ioctl especial antes de se tornarem inicializáveis pelo firmware, uma herança da "bênção de pastas" (System Folder blessing) do Classic Mac OS. Fora isso, não há limitações quanto aos tipos de sistema operacional EFI ou gerenciador de inicialização que um computador Apple baseado em Intel possa executar.
iOS, iPadOS, macOS em Apple silicon (AArch64) Dispositivos que utilizam Apple silicon (AArch64), como iPhones, iPads e todos os computadores Mac fabricados a partir de 2023, não contêm funcionalidade EFI/UEFI e, consequentemente, não utilizam partições de sistema EFI.
Windows O suporte à UEFI no Windows começou em 2008 com o Windows Vista SP1. O gerenciador de inicialização do Windows está localizado na subpasta \EFI\Microsoft\Boot\ da partição de sistema EFI. No Windows XP 64-Bit Edition e versões posteriores, o acesso à partição de sistema EFI é obtido executando o comando mountvol, que monta a partição de sistema EFI na unidade especificada. Disponível apenas em computadores baseados em Itanium.
Ver também Partição de inicialização do BIOS Partição de sistema e partição de inicialização Variável EFI Windows To Go
Referências