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

Ho installato Ubuntu 19 64bit insieme a Windows 10 64bit e ho scoperto di avere 3 diversi file EFI in posizioni diverse:

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

Qual è la differenza tra questi tre?

Commenti

  • Tipicamente sia Windows & grub2 installano bootx64. efi come voce di avvio UEFI di fallback o del disco rigido. Questo è anche il file & del percorso standard per tutti i dispositivi esterni. Dovresti avere sia /EFI/ubuntu/grubx64.efi che /EFI/ubuntu/shimx64.efi. Shim è per lavvio protetto ma verrà avviato con lavvio protetto disattivato. non sei sicuro del motivo per cui abbiamo ancora grub allora? Non sono sicuro da dove provenga grub.efi. A un certo punto è necessario installare unaltra distribuzione che utilizza la voce grub predefinita.
  • Sto cercando di ottenere ununità USB di distribuzione multi linux con EFI (ne ho già creata una per MBR ma non ' t funziona su computer recenti con BIOS che supportano solo EFI) e ho trovato questa pagina che risponderà alle tue domande e spiegherà EFI in modo molto dettagliato. Dato che è grande per una risposta, ' metto semplicemente il link nel caso tu voglia capire come funziona: rodsbooks. com / efi-bootloaders

Risposta

EFI\boot\bootx64.efi: Fallback bootloader path

Questo è lunico percorso del bootloader che il firmware UEFI su sistemi X86 a 64 bit cercherà senza alcuna impostazione di avvio NVRAM preesistente, quindi questo è quello che vuoi usare su supporto rimovibile.

Windows installerà automaticamente una copia del suo bootloader in questo percorso; durante linstallazione di GRUB, il comando grub-install (o grub2-install a seconda della distribuzione Linux) può anche inserire qui una copia del rispettivo bootloader se lo fa non esistono già. Se vuoi, puoi utilizzare grub-install --removable per dirgli di installarsi nel percorso di avvio di fallback o grub-install --force-extra-removable per sovrascrivere qualsiasi bootloader esistente nel percorso di fallback e sostituiscilo con GRUB.

Se desideri creare una chiavetta USB compatibile con Secure Boot per UEFI, devi posizionare una copia dello shim come EFI\boot\bootx64.efi e una copia di GRUB come EFI\boot\grubx64.efi, poiché il bootloader shim cercherà grubx64.efi nella stessa directory in cui si trova il bootloader shim in.

Percorso del bootloader per un sistema operativo installato in modo permanente

Quando un sistema operativo è installato in modo permanente su un sistema UEFI, cè un nuovo passaggio che assolutamente non esisteva su BIOS classico. Quando si installa il bootloader, vengono scritte quattro cose nella memoria NVRAM che contiene le impostazioni del firmware:

  • Percorso del bootloader sulla partizione di sistema EFI (ESP) che contiene i bootloader
  • il GUID della partizione ESP
  • un nome descrittivo (a misura duomo) per questa particolare istanza del bootloader
  • facoltativamente, alcuni dati per il bootloader

Per Windows, il percorso UEFI standard per il processo di avvio di Windows sarà \EFI\Microsoft\Boot\bootmgfw.efi e il nome descrittivo sarà " Windows Boot Manager ". I dati opzionali sembrano contenere un riferimento GUID a qualcosa allinterno del file di configurazione BCD del bootloader di Windows.

Per Ubuntu, il percorso dovrebbe essere \EFI\Ubuntu\grubx64.efi se non lo fai “Non è necessario il supporto per lavvio protetto o \EFI\Ubuntu\shimx64.efi se viene utilizzato lo shim per lavvio protetto. Il nome descrittivo è semplicemente " ubuntu " e i dati facoltativi non vengono utilizzati.

In Ubuntu, questi UEFI Le impostazioni di avvio della NVRAM possono essere visualizzate utilizzando il comando sudo efibootmgr -v; in Windows, puoi avviare un prompt dei comandi come amministratore e quindi utilizzare il comando bcdedit /enum firmware per visualizzare le impostazioni.

La specifica UEFI ha una convenzione standard in base alla quale ogni fornitore deve posizionare il bootloader per un sistema operativo installato in modo permanente nel percorso \EFI\<vendor name> sullESP, quindi la coesistenza di più bootloader UEFI sullo stesso ESP è effettivamente supportata e dovrebbe rendere le cose più semplici rispetto al BIOS classico che aveva un singolo record di avvio principale per disco.

/boot/grub/x86_64-efi/grub.efi: un file temporaneo per grub-install

Quando viene utilizzato grub-install, utilizzerà prima lutilità grub-mkimage per creare un Immagine principale di GRUB : su un sistema UEFI, questo file verrà salvato in /boot/grub/x86_64-efi/grub.efi e / o .../core.efi prima di esso verrà copiato nella partizione di sistema EFI e aggiunto alle impostazioni di avvio UEFI NVRAM da grub-install.La copia in /boot/grub/x86_64-efi/*.efi non verrà utilizzata affatto nel processo di avvio, ma potrebbe essere utile se lESP viene danneggiato per qualsiasi motivo.

Nota: su Debian / Ubuntu, limmagine principale di GRUB generata includerà un riferimento UUID integrato a qualsiasi filesystem contenga /boot, quindi “non sarai in grado di creare solo una copia di /boot/grub/x86_64-efi/grub.efi o grubx64.efi da lESP e trapiantarlo su un supporto rimovibile: tenterà semplicemente di trovare lUUID univoco del tuo file system /boot e passerà alla modalità di ripristino se non lo trova. Se ricordo bene, il GRUB di RedHat / CentOS / Fedora dovrebbe essere più adatto per il trapianto su supporto rimovibile.

Avvio protetto: shimx64.efi e le ragioni per questo

Secure Boot richiede che un bootloader debba essere firmato da un certificato incluso nella variabile NVRAM Secure Boot del sistema db, o SHA256 del bootloader “s hash deve essere inserito nella whitelist nella stessa variabile NVRAM. Un hash SHA256 corrisponderà solo a una versione specifica di un particolare bootloader, quindi gli aggiornamenti non saranno possibili a meno che non venga aggiornata anche la variabile del firmware. Quindi i certificati sono la strada da percorrere.

Sfortunatamente, molti fornitori di sistemi includerà solo alcuni certificati di avvio protetto nei loro prodotti: spesso solo il certificato del fornitore (per gli aggiornamenti del firmware e il debug hardware / strumenti di configurazione OEM) e i certificati di avvio protetto di Microsoft. Alcuni sistemi consentono di modificare lelenco di avvio protetto certificati tramite le impostazioni del firmware (= " impostazioni del BIOS "), ma altri non “t. Quindi era necessaria una soluzione indipendente.

Microsoft offre un servizio di firma del bootloader UEFI per chiunque, ma almeno inizialmente il tempo di risposta per la firma era piuttosto lungo, quindi il requisito di firmare direttamente ogni versione di GRUB avrebbe causato ritardi inaccettabili negli aggiornamenti del bootloader. Per risolvere il problema, è stato sviluppato lo shim bootloader: è fondamentalmente il più semplice e ragionevole programma UEFI che aggiungerà uno o più certificati allelenco di Secure Boot accettato. La semplicità si spera ridurrà la necessità di aggiornare lo shim stesso, quindi -Le distribuzioni del sistema operativo di origine (Linux e altri) possono semplicemente ottenere la loro versione dello shim firmata da Microsoft una sola volta e quindi firmare qualsiasi versione di GRUB con i propri certificati, la cui parte pubblica è incorporata nello shim e consente a Secure Boot di accettare la distribuzione ” s versione di GRUB.

Commenti

  • Grazie per la risposta. A proposito, AFAIK bootmgfw.efi è ' nt bootloader di Windows, è ' s Windows Boot Manager, che chiama il bootloader di Windows \Windows\System32\winload.efi. Inoltre, cosa intendi con NVRAM? CMOS?
  • Ho cercato di non essere troppo prolisso e sembra che mi sia semplificato troppo il problema del " Windows bootloader " . E sì, per NVRAM intendo la memoria non volatile che contiene le impostazioni del firmware, che sui PC classici era anche conosciuta come memoria CMOS ma sui sistemi moderni potrebbe effettivamente utilizzare una tecnologia diversa da CMOS (Complementary Metal Oxide Semiconductor).

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *