Qu'est-ce que le format de fichier EFI ?
Un fichier .efi est un fichier système utilisé par les systèmes informatiques et les appareils basés sur le matériel x86-64 et ARM. Un fichier .efi contient du code exécutable qui s'exécute entre les niveaux du micrologiciel et du système d'exploitation - techniquement, il s'agit d'une image PE32+ Portable Executable avec une valeur de sous-système spécifique à UEFI plutôt qu'un sous-système Windows standard.
Utilisation des fichiers .efi
Les fichiers système .efi sont utilisés pendant le processus de démarrage du système, pour la mise en œuvre des mises à jour du micrologiciel et l'exécution de programmes de pré-démarrage. Les fichiers .efi permettent au système de transférer les processus de pré-démarrage vers un environnement contrôlé. Des exemples courants incluent bootmgfw.efi (Gestionnaire de démarrage Windows), grubx64.efi (chargeur de démarrage GRUB pour Linux) et shimx64.efi (shim Secure Boot). Parfois, les fichiers .efi sont inclus dans les packages de mise à jour du micrologiciel et chargés pendant le processus de démarrage. Tous les binaires .efi doivent résider sur la partition système EFI (ESP) - un volume FAT32 sur un disque partitionné en GPT auquel le micrologiciel peut accéder avant le chargement de tout pilote d'OS.
EFI et la spécification UEFI
La norme EFI a été initialement développée par Intel. L'EFI a ensuite été mis à jour et est devenu connu sous le nom d'UEFI (Unified Extensible Firmware Interface), qui a remplacé l'ancien Basic Input/Output System (BIOS) sur pratiquement tous les PC et serveurs modernes. Le Forum UEFI, un consortium industriel, maintient désormais la spécification.
Sécurité et sûreté
RISQUE : MEDIUMUn .efi est un code exécutable qui s'exécute à un moment très privilégié - avant l'OS, avec un accès complet au micrologiciel - donc un .efi MALVEILLANT (un « bootkit ») peut être dangereux et persistant. Les PC modernes atténuent ce risque avec le Secure Boot UEFI, qui refuse d'exécuter les binaires .efi qui ne sont pas signés par une clé de confiance. Conseil pratique : ne placez ou n'exécutez jamais un .efi inconnu dans votre partition système EFI et ne démarrez pas à partir d'un .efi non fiable ; gardez le Secure Boot activé sauf raison spécifique. Le risque inverse est tout aussi réel : supprimer ou renommer des fichiers .efi légitimes dans l'ESP (par ex. bootmgfw.efi, grubx64.efi) peut rendre la machine impossible à démarrer - n'y touchez pas à moins de réparer délibérément le chargeur de démarrage.
Détails du format
en bref- Police Adobe encapsulée/intégrée ou blobs de micrologiciel d'imprimante HP - Quelques produits non liés ont historiquement utilisé .efi pour des données internes ; sur un PC, presque tous les .efi que vous rencontrerez sont des binaires de démarrage UEFI.
Programmes qui ouvrent les fichiers EFI
Détails techniques
spécifications approfondies| Signature de fichier | `MZ` (hex `4D 5A`) à l'offset 0 - stub DOS ; signature PE (octets `50 45 00 00`) à l'offset indiqué par le pointeur LE de 4 octets à l'offset d'en-tête `0x3C` |
| Format binaire de base | PE32+ (64-bit Portable Executable) - même format de conteneur qu'un `.exe` Windows, différencié uniquement par la valeur du champ PE Subsystem |
| Valeurs du champ de sous-système PE | 10 = Application EFI ; 11 = Pilote de service de démarrage EFI ; 12 = Pilote d'exécution EFI ; 13 = Image ROM EFI |
| Type MIME | `application/efi` |
| Architectures CPU prises en charge | x86-64 (IA-32e), IA-32, ARM Thumb-2, AArch64, RISC-V 32/64/128, IA-64 (Itanium) - architecture encodée dans le champ PE Machine |
| Partition et système de fichiers requis | Partition système EFI (ESP) formatée en FAT12, FAT16 ou FAT32 sur un disque partitionné en GPT ; NTFS et ext4 ne sont pas pris en charge nativement par le micrologiciel UEFI |
| Chemin d'installation standard sur l'ESP | `\EFI\<Vendor>\<name>.efi` - par ex., `\EFI\Microsoft\Boot\bootmgfw.efi` ou `\EFI\ubuntu\grubx64.efi` |
| Signature de code Secure Boot | Signé avec Authenticode (RSA + SHA-256) ; vérifié par rapport aux bases de données de clés UEFI Secure Boot : PK (Platform Key), KEK, `db` (autorisé) et `dbx` (révoqué) |
| Prototype du point d'entrée | `EFI_STATUS EFIAPI ImageEntry(EFI_HANDLE ImageHandle, EFI_SYSTEM_TABLE *SystemTable)` - même signature pour tous les types d'applications EFI |
| Niveau de privilège d'exécution | Niveau de privilège CPU le plus élevé - ring 0 (CPL0) sur x86 ; EL1 ou EL2 sur AArch64 - dans un espace d'adressage plat pré-OS avec accès direct au matériel |
| Résidence Boot Service vs Runtime | Les pilotes de service de démarrage (sous-système 11) sont déchargés lorsque l'OS appelle `ExitBootServices()` ; les pilotes d'exécution (sous-système 12) restent mappés après le transfert à l'OS |
| Exigence de partitionnement de disque | GPT (GUID Partition Table) requis pour le mode de démarrage UEFI natif ; les disques MBR uniquement ne sont pas pris en charge |
| Binaires bien connus courants | `bootmgfw.efi` (Gestionnaire de démarrage Windows), `grubx64.efi` (GRUB), `shimx64.efi` (shim Secure Boot), `Shell.efi` (shell interactif UEFI) |
| Chaînes d'outils de construction | EDK II (TianoCore), GNU-EFI, LLVM/clang avec `-target x86_64-unknown-uefi` ; la sortie doit être liée comme une image PE32+ avec les drapeaux de sous-système UEFI |
| Publié | EFI 1.0 (Intel, ~2000) → UEFI 2.x (UEFI Forum, 2005+); standard on PCs since ~2012 |
| Standard ouvert | Oui · libre de droits |
| Spécification | uefi.org |
Conversions EFI
Q&R de la communauté
posées par les utilisateursPas encore de questions - soyez le premier à poser une question sur les fichiers EFI.