UEFI-GUID's en device paths
Ontdek welk protocol, welke module of welke variabelenruimte een UEFI-firmware-GUID is, of decodeer een device path om knooppunt voor knooppunt te zien welke schijf, partitie, welk bestand of welke netwerkkaart een opstartitem gebruikt. Accepteert de tekstvorm van de UEFI Shell en van efibootmgr -v, en de binaire inhoud van Boot####-variabelen.
Plak een of meer GUID's, variabelennamen uit efivarfs of EDK2-structuren, of typ een deel van een naam, zoals GlobalVariable
Voorbeelden:

Hoe het werkt

UEFI-firmware identificeert bijna alles wat het beheert met GUID's: de protocollen die de stuurprogramma's aanbieden, de DXE-, PEI- en SMM-modules, de firmwarevolumes en de naamruimten van de variabelen, zoals die van de globale opstartvariabelen of die van de handtekeningdatabases van Secure Boot. Een losse GUID zegt niets; deze tool zoekt de symbolische naam op in een catalogus van duizenden GUID's uit EDK2 en van de belangrijkste firmwarefabrikanten.

Een device path is het pad dat de firmware gebruikt om een apparaat of bestand te bereiken: van de root van de PCI-bus tot de controller, de schijf, de partitie en de .efi-loader. De opstartitems Boot#### slaan een device path binair op; de tool vertaalt het naar de tekstvorm en legt elk knooppunt met zijn velden uit.

Voorbeelden

8BE4DF61-93CA-11D2-AA0D-00E098032B8CEfiGlobalVariableGuidNaamruimte van de globale variabelen van de specificatie, zoals BootOrder, Boot#### of SecureBoot.
db-d719b2cb-3d3a-4596-a3bc-dad00e67656fEfiImageSecurityDatabaseGuidBestandsnaam uit /sys/firmware/efi/efivars: de Secure Boot-variabele db. De tool haalt de GUID uit de naam.
Fv(7CB8BDC9-F8EB-4F34-AAEA-3EE4AF6516A1)/FvFile(7C04A583-9E3E-4F1C-AD65-E05268D0B4D1)Fv → FvFile 7C04A583-9E3E-4F1C-AD65-E05268D0B4D1 = FullShellOpstartitem van een in de firmware ingebouwde UEFI Shell: het bestand wordt op GUID gezocht binnen een firmwarevolume.
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)Binaire inhoud van een Boot####-variabele: kenmerken, beschrijving en device path. Als je het bestand uit efivarfs plakt, worden de vier kenmerkbytes van de variabele aan het begin automatisch herkend.

Gebruiksscenario's

  • Begrijpen wat elk item dat efibootmgr -v toont opstart, voordat je de opstartvolgorde wijzigt of er een verwijdert.
  • De GUID's identificeren die voorkomen in een opstartlog, een dump van variabelen of de code van EDK2.
  • Weten bij welke variabele elk bestand in /sys/firmware/efi/efivars hoort, bijvoorbeeld de handtekeningdatabases van Secure Boot.
  • Achterhalen welke schijf, partitie en welk bestand een opstartitem gebruikt dat niet meer werkt na het klonen of vervangen van een schijf.
  • De modules bekijken van een firmware-image die is geopend met UEFITool of andere analysetools.

Veelgestelde vragen

Waar haal ik het device path van een opstartitem vandaan?

In Linux toont efibootmgr -v elk item met zijn device path als tekst, en de Boot####-bestanden in /sys/firmware/efi/efivars bevatten de volledige binaire gegevens, die je met xxd of hexdump -C kunt dumpen. In de UEFI Shell toont bcfg boot dump -v de items en map -v de device paths van de schijven.

Waarom staat een GUID niet in de catalogus?

Elke fabrikant kan GUID's voor zijn eigen modules aanmaken zonder ze ergens te registreren. De catalogus verzamelt die van EDK2 en die welke de community heeft geïdentificeerd in firmware van de belangrijkste fabrikanten, maar er blijven altijd eigen GUID's zonder naam over. De partitie-GUID's in de HD-knooppunten zijn uniek per schijf en staan er nooit in.

Welke device path-formaten worden geaccepteerd?

De tekstvorm van de specificatie, zoals de UEFI Shell en EDK2 die tonen, een volledige regel van efibootmgr -v en de binaire gegevens in hexadecimaal, al dan niet gescheiden door spaties en ook als uitvoer van xxd of hexdump -C. De binaire gegevens kunnen alleen het device path zijn, de inhoud van een Boot####-variabele of het efivarfs-bestand met de kenmerken aan het begin.

Wordt het device path naar een server verzonden?

Nee. Het device path wordt in je browser gedecodeerd. Alleen de firmware-GUID's die in de knooppunten voorkomen, worden bij de server opgevraagd om hun naam te tonen; de partitie-GUID's en de overige gegevens verlaten je computer niet.

Wat betekenen de gegevens die efibootmgr na het bestandspad toont?

Dat zijn de optionele gegevens van het item, die de firmware aan de loader doorgeeft. Windows Boot Manager slaat daar bijvoorbeeld een verwijzing naar zijn BCD-archief op. Ze maken geen deel uit van het device path; als je de binaire gegevens van de variabele plakt, toont de tool ze apart.