GUID e device path UEFI
Scopri quale protocollo, modulo o spazio di variabili corrisponde a un GUID del firmware UEFI, oppure decodifica un device path per vedere nodo per nodo quale disco, partizione, file o scheda di rete usa una voce di avvio. Accetta la forma testuale della UEFI Shell e di efibootmgr -v, e il binario delle variabili Boot####.
Incolla uno o più GUID, nomi di variabili di efivarfs o strutture di EDK2, oppure scrivi parte di un nome, come GlobalVariable
Esempi:

Come funziona

Il firmware UEFI identifica con dei GUID quasi tutto ciò che gestisce: i protocolli offerti dai driver, i moduli DXE, PEI e SMM, i volumi del firmware e gli spazi dei nomi delle variabili, come quello delle variabili globali di avvio o quello dei database delle firme di Secure Boot. Un GUID da solo non dice nulla; questo strumento cerca il suo nome simbolico in un catalogo di migliaia di GUID di EDK2 e dei principali produttori di firmware.

Un device path è il percorso che il firmware usa per raggiungere un dispositivo o un file: dalla radice del bus PCI fino al controller, al disco, alla partizione e al loader .efi. Le voci di avvio Boot#### memorizzano un device path in binario; lo strumento lo traduce nella sua forma testuale e spiega ogni nodo con i suoi campi.

Esempi

8BE4DF61-93CA-11D2-AA0D-00E098032B8CEfiGlobalVariableGuidSpazio dei nomi delle variabili globali della specifica, come BootOrder, Boot#### o SecureBoot.
db-d719b2cb-3d3a-4596-a3bc-dad00e67656fEfiImageSecurityDatabaseGuidNome di file di /sys/firmware/efi/efivars: la variabile db di Secure Boot. Lo strumento estrae il GUID dal nome.
Fv(7CB8BDC9-F8EB-4F34-AAEA-3EE4AF6516A1)/FvFile(7C04A583-9E3E-4F1C-AD65-E05268D0B4D1)Fv → FvFile 7C04A583-9E3E-4F1C-AD65-E05268D0B4D1 = FullShellVoce di avvio di una UEFI Shell integrata nel firmware: il file viene cercato per GUID all'interno di un volume del firmware.
01 00 00 00 20 00 55 00 45 00 46 00 49 00 20 00 4F 00 53 00 00 00 02 01 0C 00 D0 41 03 0A 00 00 00 00 01 01 06 00 02 1F 03 12 0A 00 00 00 FF FF 00 00 7F FF 04 00UEFI OS — PciRoot(0x0)/Pci(0x1F,0x2)/Sata(0x0,0xFFFF,0x0)Contenuto binario di una variabile Boot####: attributi, descrizione e device path. Se incolli il file di efivarfs, i quattro byte di attributi della variabile posti all'inizio vengono riconosciuti automaticamente.

Casi d'uso

  • Capire cosa avvia ciascuna voce elencata da efibootmgr -v prima di cambiare l'ordine di avvio o eliminarne una.
  • Identificare i GUID che compaiono in un log di avvio, in un dump di variabili o nel codice di EDK2.
  • Sapere a quale variabile corrisponde ciascun file di /sys/firmware/efi/efivars, ad esempio i database delle firme di Secure Boot.
  • Individuare quale disco, partizione e file usa una voce di avvio che ha smesso di funzionare dopo aver clonato o sostituito un disco.
  • Esaminare i moduli di un'immagine firmware aperta con UEFITool o altri strumenti di analisi.

Domande frequenti

Da dove prendo il device path di una voce di avvio?

Su Linux, efibootmgr -v mostra ogni voce con il suo device path in testo, e i file Boot#### di /sys/firmware/efi/efivars contengono il binario completo, che si può visualizzare con xxd o hexdump -C. Nella UEFI Shell, bcfg boot dump -v mostra le voci e map -v i device path dei dischi.

Perché un GUID non compare nel catalogo?

Qualsiasi produttore può creare GUID per i propri moduli senza registrarli da nessuna parte. Il catalogo raccoglie quelli di EDK2 e quelli che la comunità ha identificato nei firmware dei principali produttori, ma resteranno sempre GUID proprietari senza nome. I GUID di partizione che compaiono nei nodi HD sono unici per ogni disco e non compaiono mai.

Quali formati di device path accetta?

La forma testuale della specifica, come la mostrano la UEFI Shell ed EDK2, una riga completa di efibootmgr -v e il binario in esadecimale, separato o meno da spazi e anche come output di xxd o hexdump -C. Il binario può essere il solo device path, il contenuto di una variabile Boot#### o il file di efivarfs con i suoi attributi all'inizio.

Il device path viene inviato a un server?

No. Il device path viene decodificato nel tuo browser. Al server vengono richiesti solo i GUID del firmware che compaiono nei nodi, per mostrarne il nome; i GUID di partizione e il resto dei dati non lasciano il tuo computer.

Cosa significano i dati che efibootmgr mostra dopo il percorso del file?

Sono i dati opzionali della voce, che il firmware passa al loader. Il boot manager di Windows, ad esempio, vi memorizza un riferimento al suo archivio BCD. Non fanno parte del device path; se incolli il binario della variabile, lo strumento li mostra a parte.