Partizione di sistema EFI

La partizione di sistema EFI (Extensible Firmware Interface) o ESP è una partizione presente su un dispositivo di archiviazione dati (solitamente un disco rigido o un'unità a stato solido) utilizzata dai computer dotati di Unified Extensible Firmware Interface (UEFI). All'avvio del computer, il firmware UEFI carica i file memorizzati nell'ESP per avviare i sistemi operativi e varie utilità.
Un ESP contiene i boot loader, i boot manager o kernel dei sistemi operativi installati (che si trovano solitamente in altre partizioni), i file dei driver dei dispositivi hardware presenti nel computer e utilizzati dal firmware durante l'avvio, i programmi di utilità di sistema che devono essere eseguiti prima dell'avvio di un sistema operativo e i file di dati come i log degli errori.[1]
Panoramica
La partizione di sistema EFI è formattata con un file system la cui specifica è basata sul file system FAT ed è mantenuta come parte della specifica UEFI; pertanto, la specifica del file system è indipendente dalla specifica FAT originale. Non è chiaramente documentato fino a che punto le due specifiche differiscano:[2][3] Apple mantiene uno strumento separato che dovrebbe essere utilizzato sui Mac Intel/x86-64,[4] mentre altri sistemi usano le utilità FAT senza problemi.[5] L'identificativo univoco universale (UUID) della partizione di sistema EFI nello schema GPT (GUID Partition Table) è C12A7328-F81F-11D2-BA4B-00A0C93EC93B, mentre il suo identificatore nello schema di partizionamento master boot record (MBR) è 0xEF. Sia i dischi partizionati in GPT che quelli in MBR possono contenere una partizione di sistema EFI, poiché il firmware UEFI è progettato per supportare entrambi gli schemi di partizionamento. Inoltre, è supportato il formato di avvio El Torito per CD-ROM e DVD.[6]
UEFI garantisce la retrocompatibilità con i sistemi legacy riservando il primo blocco (settore) della partizione a un codice di compatibilità, creando di fatto un settore di avvio legacy. Nei sistemi basati su BIOS legacy, il primo settore di una partizione viene caricato in memoria ed eseguito. Il firmware UEFI, invece, non esegue il codice nell'MBR, se non quando viene avviato in modalità legacy BIOS tramite il Compatibility Support Module (CSM).[1]
La specifica UEFI richiede il supporto completo delle tabelle di partizione MBR.[1] Tuttavia, alcune implementazioni UEFI passano immediatamente al boot basato su BIOS tramite il CSM non appena rilevano determinati tipi di tabella di partizione sul disco di avvio, impedendo di fatto l'avvio UEFI dalle partizioni di sistema EFI presenti su dischi partizionati in MBR.[7]
Il firmware UEFI supporta l'avvio da dispositivi di archiviazione rimovibili come le unità flash USB. Per questo motivo, un dispositivo rimovibile viene formattato con un file system FAT12, FAT16 o FAT32, mentre il boot loader deve essere memorizzato secondo la gerarchia convenzionale della partizione ESP standard oppure indicando un percorso completo del boot loader al boot manager del sistema. D'altra parte, sui dispositivi fissi è sempre previsto l'uso del file system FAT32.[1]
Utilizzo
Linux
GRUB 2, elilo e systemd-boot svolgono il ruolo di tradizionali e completi boot loader UEFI autonomi (detti anche gestori di boot loader) per Linux. Una volta caricati dal firmware UEFI, possono accedere e avviare immagini del kernel da tutti i dispositivi, partizioni e file system supportati, senza essere limitati alla partizione di sistema EFI.
Il punto di mount della partizione di sistema EFI varia a seconda del bootloader utilizzato. Bootloader più datati, come GRUB 2 e lilo/elilo, usano di default /boot/efi. In alternativa, systemd-boot preferisce /efi o /boot rispetto a /boot/efi a causa di possibili complicazioni legate a mount autofs annidati. Indipendentemente dal percorso di mount, il contenuto della partizione è accessibile una volta avviato Linux.[8][9]
EFI Boot Stub del kernel Linux
EFI Boot Stub consente di avviare un'immagine del kernel Linux senza l'uso di un boot loader UEFI convenzionale. Mascherandosi come immagine eseguibile PE/COFF e apparendo al firmware come un'applicazione UEFI, un'immagine del kernel Linux con EFI Boot Stub abilitato può essere caricata ed eseguita direttamente dal firmware UEFI. Queste immagini del kernel possono essere caricate ed eseguite anche dai boot loader basati su BIOS; quindi, EFI Boot Stub permette a una singolo kernel di funzionare in qualsiasi ambiente di avvio.[10]
Il supporto del kernel Linux per EFI Boot Stub viene abilitato attivando l'opzione CONFIG_EFI_STUB (supporto per EFI stub) durante la configurazione del kernel.[11] Questa funzionalità è stata integrata nella versione 3.3 del ramo principale del kernel Linux, pubblicata il 18 marzo 2012.[12]
Systemd-boot è un semplice gestore di avvio UEFI che carica ed esegue immagini EFI configurate, accedendo unicamente alla partizione di sistema EFI. I file di configurazione, le immagini del kernel e le immagini initrd devono risiedere nella partizione di sistema EFI, poiché systemd-boot non supporta l'accesso a file su altre partizioni o file system. I kernel Linux devono essere compilati con CONFIG_EFI_STUB=y in modo che possano essere eseguiti direttamente come immagini UEFI.[13]
Apple
macOS su Intel (x86 e x86-64)
Nei computer Apple Mac con architettura Intel x86-64, la partizione di sistema EFI rimane inizialmente vuota e inutilizzata per l'avvio in macOS.[14][15]
Tuttavia, la partizione di sistema EFI viene utilizzata come area di staging per gli aggiornamenti del firmware[16] e per il bootloader di Microsoft Windows nei Mac configurati per l'avvio di una partizione Windows tramite Boot Camp.[17][18]
Un firmware UEFI personalizzato di Apple, chiamato iBoot, gestisce la logica per individuare e caricare i bootloader. iBoot seleziona il bootloader desiderato (eventualmente configurato tramite combinazioni di tasti all'avvio o NVRAM), con la possibilità di eseguire un fallback verso l'installazione interna di macOS o a un sistema di ripristino chiamato recoveryOS.[15][18][19]
I vecchi computer Apple con architettura Intel precedente a UEFI richiedevano che la partizione di sistema EFI fosse formattata in HFS+. I bootloader di terze parti dovevano essere "blessed" (ovvero designati come avviabili) tramite uno speciale comando ioctl prima di poter essere avviati dal firmware, un retaggio della "System Folder blessing" (procedura di autorizzazione della cartella di sistema) del Mac OS Classic. Per il resto, non ci sono limitazioni riguardo ai tipi di sistemi operativi EFI o boot loader che un computer Apple basato su Intel può eseguire.[20][21]
iOS, iPadOS, macOS su Apple Silicon (AArch64)
I dispositivi basati su Apple Silicon (AArch64) come iPhone, iPad e tutti i computer Mac dal 2023 in poi non includono funzionalità EFI/UEFI e di conseguenza non utilizzano partizioni di sistema EFI.[22][23]
Windows
Il supporto UEFI in Windows è iniziato nel 2008 con Windows Vista SP1.[24]
Il gestore di avvio di Windows si trova nella sottocartella \EFI\Microsoft\Boot\ della partizione di sistema EFI.[25]
Su Windows XP 64-Bit Edition e versioni successive, l'accesso alla partizione di sistema EFI si ottiene eseguendo il comando mountvol, che monta la partizione EFI sull'unità specificata. Disponibile solo sui computer basati su Itanium.[26]
Voci correlate
Note
- ^ a b c d Unified Extensible Firmware Interface (UEFI) Specification (versions 2.10 and older) (PDF), su UEFI.org, Agosto 2022. URL consultato il 12 dicembre 2022.
- ^ UEFI Specification Version 2.5, Section 12.3 File System Format (PDF), su UEFI.org, Aprile 2015, pp. 536, 537. URL consultato il 29 maggio 2015.«The file system supported by the Extensible Firmware Interface is based on the FAT file system. EFI defines a specific version of FAT that is explicitly documented and testable. Conformance to the EFI specification and its associate reference documents is the only definition of FAT that needs to be implemented to support EFI. To differentiate the EFI file system from pure FAT, a new partition file system type has been defined.»
- ^ Intel Platform Innovation Framework for EFI Firmware File System Specification (PDF), su intel.com, Settembre 2003.
- ^ Technical Note TN2166: Secrets of the GPT, su Developer.Apple.com, 6 novembre 2006. URL consultato il 6 maggio 2015.
- ^ EFI system partition, su ArchWiki. URL consultato il 14 marzo 2020.
- ^ Unified Extensible Firmware Interface (UEFI) Specification (versions 2.10 and older) (PDF), su UEFI.org, Agosto 2022. URL consultato il 12 dicembre 2022.
- ^ UEFI system booting from MBR partition table and GRUB legacy, su ArchLinux.org, Giugno 2012. URL consultato il 6 ottobre 2013.
- ^ UEFI - Community Ubuntu Documentation, su Ubuntu.com, 21 dicembre 2013. URL consultato il 27 dicembre 2013.
- ^ (EN) Boot Loader Specification, su uapi-group.org. URL consultato il 15 febbraio 2024.
- ^ The EFI Boot Stub - The Linux Kernel Documentation, su The Linux Kernel documentation, 16 giugno 2014. URL consultato il 14 febbraio 2024 (archiviato dall'url originale il 4 ottobre 2023).
- ^ Linux kernel 3.11.1 arch/x86/Kconfig: CONFIG_EFI_STUB (line #1575), su Kernel.org. URL consultato il 6 ottobre 2013.
- ^ Linux kernel 3.3: 1.10. EFI boot support, su KernelNewbies.org, 18 marzo 2012. URL consultato il 6 ottobre 2013.
- ^ systemd-boot UEFI Boot Manager, su systemd.io. URL consultato il 19 giugno 2025 (archiviato dall'url originale il 18 giugno 2025).
- ^ rEFIt: Myths and Facts About Intel Macs – Myth: Mac OS X Requires a Hidden EFI System Partition, su rEFIt.SourceForge.net.
- ^ a b (EN) Boot process for an Intel-based Mac, su Apple Support. URL consultato il 14 febbraio 2024.
- ^ Firmware updates for Intel-based Macs require a GUID partition scheme, su Apple Knowledgebase.
- ^ (EN) Boot process for a Mac with Apple silicon, su Apple Support. URL consultato il 14 febbraio 2024.
- ^ a b (EN) Boot modes of an Intel-based Mac with an Apple T2 Security Chip, su Apple Support. URL consultato il 14 febbraio 2024.
- ^ (EN) Startup Security Utility on a Mac with an Apple T2 Security Chip, su Apple Support. URL consultato il 14 febbraio 2024.
- ^ Ubuntu + Mac: Pure EFI Boot, su The Slightly Disgruntled Scientist, 7 settembre 2014. URL consultato il 17 novembre 2019 (archiviato dall'url originale l'8 marzo 2021).
- ^ BLESS(8), su keith.github.io. URL consultato il 14 febbraio 2024.
- ^ (EN) Introduction to Apple Silicon: Storage, su GitHub - Asahi Linux Wiki, 2 novembre 2023. URL consultato il 14 febbraio 2024 (archiviato dall'url originale il 14 febbraio 2024).
- ^ (EN) Boot process for a Mac with Apple silicon, su Apple Support. URL consultato il 14 febbraio 2024.
- ^ UEFI and Windows, su Windows Hardware Developer Central (WHDC), 24 luglio 2008. URL consultato il 5 maggio 2024 (archiviato dall'url originale il 4 gennaio 2009).
- ^ Subdirectory Registry | Unified Extensible Firmware Interface Forum, su uefi.org, UEFI Forum. URL consultato il 5 maggio 2024.
- ^ (EN) Mountvol, su Windows Server 2012 R2 and Windows Server 2012, learn.microsoft.com, 31 agosto 2016. URL consultato il 5 maggio 2024.
Collegamenti esterni
- Registro delle sottodirectory della partizione di sistema EFI : elenco delle sottodirectory presenti sotto la directory
/EFIin una partizione di sistema EFI