EFI \ boot \ bootx64.efi vs EFI \ ubuntu \ grubx64.efi vs /boot/grub/x86_64-efi/grub.efi vs C: \ Windows \ Boot \ EFI \ * (Čeština)

Nainstaloval jsem Ubuntu 19 64bit vedle Windows 10 64bit a zjistil jsem, že mám 3 různé soubory EFI na různých místech:

EFI\boot\bootx64.efi EFI\ubuntu\grubx64.efi /boot/grub/x86_64-efi/grub.efi 

Jaký je rozdíl mezi těmito třemi?

Komentáře

  • Obvykle oba Windows & grub2 instalují bootx64. EFI jako záložní položka nebo spouštěcí položka UEFI pro pevný disk. To je také standardní cesta & soubor pro všechna externí zařízení. Měli byste mít oba /EFI/ubuntu/grubx64.efi a /EFI/ubuntu/shimx64.efi. Podložka je pro zabezpečené spuštění, ale bude spuštěna s vypnutým zabezpečeným spuštěním. nejste si jisti, proč máme potom ještě grub? Nejste si jisti, odkud pochází grub.efi. V určitém okamžiku musíte nainstalovat jinou distribuci, která používá výchozí položku grub.
  • Snažím se získat distribuční USB disk s více linuxy s EFI (jeden jsem již vytvořil pro MBR, ale nedělá to nepracují na nedávných počítačích s BIOSem, které podporují pouze EFI) a našla tuto stránku, která zodpoví vaše dotazy a vysvětlí EFI velmi podrobným způsobem. Jelikož je to velká odpověď, stačí

přidat odkaz pro případ, že byste chtěli pochopit, jak to celé funguje: rodsbooks. com / efi-bootloaders

Odpověď

EFI\boot\bootx64.efi: Cesta záložního bootloaderu

Toto je jediná cesta bootloaderu, kterou bude hledat firmware UEFI v 64bitových systémech X86 bez jakéhokoli již existujícího bootovacího nastavení NVRAM, takže toto je to, co chcete použít na vyměnitelné médium.

Windows na tuto cestu automaticky nainstalují kopii svého zavaděče; při instalaci GRUB může příkaz grub-install (nebo grub2-install v závislosti na distribuci Linuxu) sem také vložit kopii příslušného zavaděče, pokud ano již neexistuje. Pokud chcete, můžete pomocí grub-install --removable říct, že se má nainstalovat do záložní spouštěcí cesty, nebo grub-install --force-extra-removable přepsat jakýkoli existující bootloader v záložní cestu a nahraďte ji GRUB.

Pokud chcete vytvořit USB klíč kompatibilní se zabezpečeným spouštěním pro UEFI, měli byste umístit kopii podložky jako EFI\boot\bootx64.efi a kopii GRUB jako EFI\boot\grubx64.efi, protože zavaděč shim bude hledat grubx64.efi ve stejném adresáři, ve kterém je zavaděč shim in.

Cesta bootloaderu pro trvale nainstalovaný operační systém

Když je operační systém nainstalován trvale do systému UEFI, existuje jeden nový krok, který na něm absolutně neexistoval klasický BIOS. Při instalaci bootloaderu se do paměti NVRAM, která obsahuje nastavení firmwaru, zapíší čtyři věci:

  • Cesta bootloaderu v systémovém oddílu EFI (ESP), který obsahuje bootloader (y)
  • identifikátor GUID oddílu ESP
  • popisný (pro člověka přátelský) název pro tuto konkrétní instanci zavaděče
  • volitelně některá data pro zavaděč

Pro Windows bude standardní cesta UEFI pro spouštěcí proces Windows \EFI\Microsoft\Boot\bootmgfw.efi a popisný název bude " Windows Správce spouštění ". Zdá se, že volitelná data obsahují odkaz na GUID na něco v konfiguračním souboru BCD zavaděče Windows.

V případě Ubuntu by cesta měla být \EFI\Ubuntu\grubx64.efi, pokud ne „Nepotřebuji podporu zabezpečeného spouštění, nebo \EFI\Ubuntu\shimx64.efi, pokud je použita podložka zabezpečeného spouštění. Popisný název je jednoduše " ubuntu " a volitelná data se nepoužívají.

V Ubuntu jsou tyto UEFI Nastavení spouštění NVRAM lze zobrazit pomocí příkazu sudo efibootmgr -v; v systému Windows můžete spustit příkazový řádek jako správce a poté pomocí příkazu bcdedit /enum firmware zobrazit nastavení.

Specifikace UEFI má standardní konvenci, že každý prodejce by měl umístit bootloader pro trvale nainstalovaný operační systém v rámci cesty \EFI\<vendor name> na ESP, takže je ve skutečnosti podporováno koexistence více bootloaderů UEFI na stejném ESP a mělo by to být jednodušší než s klasickým BIOSem, který měl jeden hlavní spouštěcí záznam na disk.

/boot/grub/x86_64-efi/grub.efi: dočasný soubor pro grub-install

Když se použije grub-install, nejprve pomocí grub-mkimage vytvoří Základní obraz GRUB : v systému UEFI bude tento soubor uložen před /boot/grub/x86_64-efi/grub.efi a / nebo .../core.efi před ním budou zkopírovány do systémového oddílu EFI a přidány do nastavení bootování UEFI NVRAM pomocí grub-install.Kopie v /boot/grub/x86_64-efi/*.efi nebude v procesu zavádění vůbec použita, ale může být užitečné, pokud dojde k poškození ESP z jakéhokoli důvodu.

Poznámka: V systému Debian / Ubuntu bude generovaný základní obraz GRUBu obsahovat upečený odkaz UUID na libovolný souborový systém obsahující /boot adresář, takže nebudete moci vytvořit kopii /boot/grub/x86_64-efi/grub.efi nebo grubx64.efi z ESP a přesaďte jej na vyměnitelné médium: pokusí se najít jedinečný UUID vašeho souborového systému /boot a přejde do režimu záchrany, pokud jej nenajde. Pokud si dobře vzpomínám, GRUB RedHat / CentOS / Fedora by měl být vhodnější pro transplantaci na vyměnitelné médium.

Secure Boot: shimx64.efi a jeho důvody

Secure Boot vyžaduje, aby bootloader musel být podepsán certifikátem, který je obsažen v proměnné Secure Boot NVRAM systému db nebo v bootloaderu SHA256 hash musí být na seznamu povolených ve stejné proměnné NVRAM. Hodnota hash SHA256 bude odpovídat pouze konkrétní verzi konkrétního zavaděče, takže aktualizace nebudou možné, pokud nebude aktualizována i proměnná firmwaru. Certifikáty jsou tedy správná cesta.

Bohužel mnoho prodejců systému do svých produktů zahrne pouze několik certifikátů Secure Boot: často pouze vlastní certifikát dodavatele (pro aktualizace firmwaru a ladění hardwaru / nástroje pro konfiguraci OEM) a certifikáty Secure Boot společnosti Microsoft. Některé systémy umožňují úpravy seznamu Secure Boot certifikáty prostřednictvím nastavení firmwaru (= " nastavení systému BIOS "), ale ostatní nevyhrají. Bylo tedy zapotřebí nezávislé řešení.

Společnost Microsoft nabízí službu podepisování bootloaderu UEFI pro kohokoli, ale přinejmenším zpočátku byla doba zpracování podpisu poměrně dlouhá, takže požadavek přímo podepsat každou verzi GRUBu by způsobil nepřijatelná zpoždění v aktualizacích bootloaderu. Aby se problém vyřešil, byl vyvinut zavaděč podložek: je to v podstatě nejjednodušší rozumný program UEFI, který přidá jeden nebo více certifikátů do seznamu přijatých protokolem Secure Boot. Snadnost snad sníží potřebu aktualizace samotné podložky, takže otevřený -zdrojové distribuce OS (Linux a další) mohou pouze získat svou verzi shim podepsanou společností Microsoft pouze jednou a poté podepsat libovolnou verzi GRUBu svými vlastními certifikáty, jejichž veřejná část je vložena do shimu a umožňuje Secure Boot přijmout distribuci “ Verze GRUBu.

Komentáře

  • Děkujeme za odpověď. BTW, AFAIK bootmgfw.efi je ' n bootloader Windows, je ' s Windows Boot Manager, který volá bootloader Windows \Windows\System32\winload.efi. Také co myslíte tím NVRAM? CMOS?
  • Snažil jsem se nebýt příliš upřímný a vypadá to, že jsem příliš zjednodušený, pokud jde o " Windows bootloader " . A ano, NVRAM mám na mysli energeticky nezávislé úložiště, které obsahuje nastavení firmwaru, které na klasických počítačích bylo známé také jako paměť CMOS, ale v moderních systémech může ve skutečnosti používat jinou technologii než CMOS (Complementary Metal Oxide Semiconductor).

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *