Co to jest format pliku EFI?
Plik .efi to plik systemowy używany przez systemy komputerowe i urządzenia oparte na architekturze x86-64 oraz ARM. Plik .efi zawiera kod wykonywalny, który działa na poziomie między oprogramowaniem układowym a systemem operacyjnym - technicznie jest to obraz PE32+ Portable Executable ze specyficzną dla UEFI wartością podsystemu, zamiast standardowego podsystemu Windows.
Zastosowanie plików .efi
Pliki systemowe .efi są używane podczas procesu rozruchu systemu, do przygotowywania aktualizacji oprogramowania układowego oraz uruchamiania programów przedrozruchowych. Pliki .efi pozwalają systemowi przekazać procesy przedrozruchowe do kontrolowanego środowiska. Typowe przykłady to bootmgfw.efi (Windows Boot Manager), grubx64.efi (bootloader GRUB dla systemu Linux) oraz shimx64.efi (Secure Boot shim). Czasami pliki .efi są dołączane do pakietów aktualizacji oprogramowania układowego i ładowane podczas procesu rozruchu. Wszystkie pliki binarne .efi muszą znajdować się na partycji systemowej EFI (ESP) - woluminie FAT32 na dysku z partycjami GPT, do którego oprogramowanie układowe ma dostęp przed załadowaniem jakiegokolwiek sterownika systemu operacyjnego.
EFI a specyfikacja UEFI
Standard EFI został pierwotnie opracowany przez firmę Intel. EFI został później zaktualizowany i stał się znany jako UEFI (Unified Extensible Firmware Interface), który zastąpił przestarzały Basic Input/Output System (BIOS) w niemal wszystkich nowoczesnych komputerach PC i serwerach. UEFI Forum, konsorcjum branżowe, zajmuje się obecnie utrzymywaniem tej specyfikacji.
Bezpieczeństwo
RYZYKO: MEDIUMPlik .efi to kod wykonywalny, który uruchamia się w bardzo uprzywilejowanym momencie - przed systemem operacyjnym, z pełnym dostępem do oprogramowania układowego - dlatego ZŁOŚLIWY plik .efi (tzw. „bootkit”) może być niebezpieczny i trwały. Nowoczesne komputery PC ograniczają to ryzyko za pomocą funkcji UEFI Secure Boot, która odmawia uruchomienia plików binarnych .efi niepodpisanych zaufanym kluczem. Porada praktyczna: nigdy nie umieszczaj ani nie uruchamiaj nieznanych plików .efi na partycji systemowej EFI ani nie uruchamiaj komputera z niezaufanego pliku .efi; trzymaj Secure Boot włączony, chyba że masz konkretny powód, by go wyłączyć. Przeciwne ryzyko jest równie realne: usunięcie lub zmiana nazwy legalnych plików .efi w ESP (np. bootmgfw.efi, grubx64.efi) może uniemożliwić uruchomienie maszyny - nie należy ich ruszać, chyba że celowo naprawiasz bootloader.
Szczegóły formatu
w pigułce- Adobe Encapsulated/embedded font lub dane oprogramowania układowego drukarek HP - Kilka niepowiązanych produktów historycznie używało rozszerzenia .efi dla danych wewnętrznych; w komputerach PC niemal każdy napotkany plik .efi to binarny plik rozruchowy UEFI.
Programy otwierające pliki EFI
Szczegóły techniczne
specyfikacja| Sygnatura pliku | `MZ` (hex `4D 5A`) na offsecie 0 - nagłówek DOS; sygnatura PE (bajty `50 45 00 00`) na offsecie podanym przez 4-bajtowy wskaźnik LE na offsecie nagłówka `0x3C` |
| Podstawowy format binarny | PE32+ (64-bit Portable Executable) - ten sam format kontenera co w przypadku plików `.exe` systemu Windows, różniący się jedynie wartością pola PE Subsystem |
| Wartości pola podsystemu PE | 10 = EFI Application; 11 = EFI Boot Service Driver; 12 = EFI Runtime Driver; 13 = EFI ROM Image |
| Typ MIME | `application/efi` |
| Obsługiwane architektury procesorów | x86-64 (IA-32e), IA-32, ARM Thumb-2, AArch64, RISC-V 32/64/128, IA-64 (Itanium) - architektura zakodowana w polu PE Machine |
| Wymagana partycja i system plików | Partycja systemowa EFI (ESP) sformatowana jako FAT12, FAT16 lub FAT32 na dysku z partycjami GPT; NTFS i ext4 nie są natywnie obsługiwane przez oprogramowanie układowe UEFI |
| Standardowa ścieżka instalacji na ESP | `\EFI\<Producent>\<nazwa>.efi` - np. `\EFI\Microsoft\Boot\bootmgfw.efi` lub `\EFI\ubuntu\grubx64.efi` |
| Podpisywanie kodu Secure Boot | Podpisany za pomocą Authenticode (RSA + SHA-256); weryfikowany względem baz kluczy UEFI Secure Boot: PK (Platform Key), KEK, `db` (dozwolone) oraz `dbx` (unieważnione) |
| Prototyp punktu wejścia | `EFI_STATUS EFIAPI ImageEntry(EFI_HANDLE ImageHandle, EFI_SYSTEM_TABLE *SystemTable)` - ta sama sygnatura dla wszystkich typów aplikacji EFI |
| Poziom uprawnień wykonania | Najwyższy poziom uprawnień procesora - ring 0 (CPL0) na x86; EL1 lub EL2 na AArch64 - w płaskiej przestrzeni adresowej przed systemem operacyjnym z bezpośrednim dostępem do sprzętu |
| Rezydencja Boot Service a Runtime | Sterowniki Boot Service (podsystem 11) są usuwane z pamięci, gdy system operacyjny wywołuje `ExitBootServices()`; sterowniki Runtime (podsystem 12) pozostają zmapowane po przekazaniu kontroli do systemu |
| Wymagania dotyczące partycjonowania dysku | GPT (GUID Partition Table) jest wymagany dla natywnego trybu rozruchu UEFI; dyski tylko z MBR nie są obsługiwane |
| Typowe znane pliki binarne | `bootmgfw.efi` (Windows Boot Manager), `grubx64.efi` (GRUB), `shimx64.efi` (Secure Boot shim), `Shell.efi` (interaktywna powłoka UEFI) |
| Zestawy narzędzi do budowania | EDK II (TianoCore), GNU-EFI, LLVM/clang z `-target x86_64-unknown-uefi`; wynik musi być skonsolidowany jako obraz PE32+ z flagami podsystemu UEFI |
| Wydano | EFI 1.0 (Intel, ~2000) → UEFI 2.x (UEFI Forum, 2005+); standard on PCs since ~2012 |
| Otwarty standard | Tak · bezpłatny (royalty-free) |
| Specyfikacja | uefi.org |
Konwersje EFI
Pytania i odpowiedzi społeczności
pytania użytkownikówBrak pytań - bądź pierwszą osobą, która zapyta o pliki EFI.