Vad är filformatet EFI?
En .efi-fil är en systemfil som används av datorsystem och enheter baserade på x86-64 och ARM-baserad hårdvara. En .efi-fil innehåller körbar kod som körs mellan firmware- och operativsystemnivåerna - tekniskt sett är det en PE32+ Portable Executable-avbildning med ett UEFI-specifikt subsystem-värde snarare än ett standard Windows-subsystem.
Användning av .efi-filer
.efi-systemfiler används under systemets startprocess, för iscensättning av firmware-uppdateringar och för att köra program före start. .efi-filer gör det möjligt för systemet att lämna över processer före start till en kontrollerad miljö. Vanliga exempel inkluderar bootmgfw.efi (Windows Boot Manager), grubx64.efi (GRUB bootloader för Linux) och shimx64.efi (Secure Boot shim). Ibland ingår .efi-filer i firmware-uppdateringspaket och laddas under startprocessen. Alla .efi-binärer måste ligga på EFI-systempartitionen (ESP) - en FAT32-volym på en GPT-partitionerad disk som firmware kan komma åt innan någon OS-drivrutin laddas.
EFI och UEFI-specifikationen
EFI-standarden utvecklades ursprungligen av Intel. EFI uppdaterades senare och blev känd som UEFI (Unified Extensible Firmware Interface), vilket har ersatt det äldre Basic Input/Output System (BIOS) på praktiskt taget alla moderna datorer och servrar. UEFI Forum, ett branschkonsortium, underhåller nu specifikationen.
Säkerhet & trygghet
RISK: MEDIUMEn .efi är körbar kod som körs vid ett mycket privilegierat tillfälle - före operativsystemet, med full firmware-åtkomst - så en SKADLIG .efi (ett «bootkit») kan vara farlig och ihållande. Moderna datorer mildrar detta med UEFI Secure Boot, som vägrar köra .efi-binärer som inte är signerade med en betrodd nyckel. Praktisk vägledning: placera eller kör aldrig en okänd .efi i din EFI-systempartition och starta inte från en otillförlitlig .efi; låt Secure Boot vara aktiverat om du inte har en specifik anledning att låta bli. Den motsatta risken är lika verklig: att ta bort eller byta namn på legitima .efi-filer i ESP (t.ex. bootmgfw.efi, grubx64.efi) kan göra maskinen omöjlig att starta - rör dem inte om du inte medvetet reparerar bootloadern.
Formatdetaljer
i ett nötskal- Adobe Encapsulated/inbäddat typsnitt eller HP-skrivares firmware-blobar - Ett fåtal orelaterade produkter har historiskt använt .efi för intern data; på en PC är nästan varje .efi du stöter på en UEFI-startbinär.
Program som öppnar EFI-filer
Tekniska detaljer
djup specifikation| Filsignatur | `MZ` (hex `4D 5A`) vid offset 0 - DOS stub; PE-signatur (bytes `50 45 00 00`) vid offset angiven av 4-byte LE-pekaren vid header-offset `0x3C` |
| Binärt basformat | PE32+ (64-bitars Portable Executable) - samma containerformat som en Windows `.exe`, skiljer sig endast genom värdet i PE Subsystem-fältet |
| Värden för PE subsystem-fält | 10 = EFI Application; 11 = EFI Boot Service Driver; 12 = EFI Runtime Driver; 13 = EFI ROM Image |
| MIME-typ | `application/efi` |
| CPU-arkitekturer som stöds | x86-64 (IA-32e), IA-32, ARM Thumb-2, AArch64, RISC-V 32/64/128, IA-64 (Itanium) - arkitektur kodad i PE Machine-fältet |
| Krävd partition och filsystem | EFI-systempartition (ESP) formaterad som FAT12, FAT16 eller FAT32 på en GPT-partitionerad disk; NTFS och ext4 stöds inte nativt av UEFI-firmware |
| Standard installationssökväg på ESP | `\EFI\<Vendor>\<name>.efi` - t.ex. `\EFI\Microsoft\Boot\bootmgfw.efi` eller `\EFI\ubuntu\grubx64.efi` |
| Secure Boot-kodsignering | Signerad med Authenticode (RSA + SHA-256); verifierad mot UEFI Secure Boot-nyckeldatabaser: PK (Platform Key), KEK, `db` (tillåtna) och `dbx` (återkallade) |
| Prototyp för startpunkt | `EFI_STATUS EFIAPI ImageEntry(EFI_HANDLE ImageHandle, EFI_SYSTEM_TABLE *SystemTable)` - samma signatur för alla EFI-applikationstyper |
| Exekveringsprivilegier | Högsta CPU-privilegier - ring 0 (CPL0) på x86; EL1 eller EL2 på AArch64 - i ett platt adressutrymme före operativsystemet med direkt hårdvaruåtkomst |
| Boot Service vs. Runtime-residens | Boot Service-drivrutiner (subsystem 11) avlägsnas när operativsystemet anropar `ExitBootServices()`; Runtime-drivrutiner (subsystem 12) förblir mappade efter överlämning till operativsystemet |
| Krav på diskpartitionering | GPT (GUID Partition Table) krävs för nativt UEFI-startläge; diskar med endast MBR stöds inte |
| Vanliga välkända binärer | `bootmgfw.efi` (Windows Boot Manager), `grubx64.efi` (GRUB), `shimx64.efi` (Secure Boot shim), `Shell.efi` (UEFI interaktivt skal) |
| Verktygskedjor för bygge | EDK II (TianoCore), GNU-EFI, LLVM/clang med `-target x86_64-unknown-uefi`; utdata måste länkas som en PE32+-avbildning med UEFI-subsystemflaggor |
| Släppt | EFI 1.0 (Intel, ~2000) → UEFI 2.x (UEFI Forum, 2005+); standard on PCs since ~2012 |
| Öppen standard | Ja · royaltyfri |
| Specifikation | uefi.org |
EFI-konverteringar
Frågor & svar
frågat av användareInga frågor än - bli den första att fråga om EFI-filer.