UEFI GUID'leri ve device path'leri
Bir UEFI ürün yazılımı GUID'inin hangi protokol, modül veya değişken alanı olduğunu öğrenin ya da bir önyükleme girdisinin hangi diski, bölümü, dosyayı veya ağ kartını kullandığını düğüm düğüm görmek için bir device path'i çözün. UEFI Shell'in ve efibootmgr -v komutunun metin biçimini ve Boot#### değişkenlerinin ikili içeriğini kabul eder.
Bir veya daha fazla GUID, efivarfs değişken adı ya da EDK2 yapısı yapıştırın; veya GlobalVariable gibi bir adın bir kısmını yazın
Örnekler:

Nasıl çalışır

UEFI ürün yazılımı, yönettiği neredeyse her şeyi GUID'lerle tanımlar: sürücülerin sunduğu protokoller, DXE, PEI ve SMM modülleri, ürün yazılımı birimleri ve değişkenlerin ad alanları; örneğin genel önyükleme değişkenlerininki veya Secure Boot imza veritabanlarınınki. Tek başına bir GUID hiçbir şey söylemez; bu araç, EDK2'den ve önde gelen ürün yazılımı üreticilerinden binlerce GUID içeren bir katalogda onun sembolik adını arar.

Device path, ürün yazılımının bir aygıta veya dosyaya ulaşmak için kullandığı yoldur: PCI veri yolunun kökünden denetleyiciye, diske, bölüme ve .efi önyükleyicisine kadar. Boot#### önyükleme girdileri device path'i ikili biçimde saklar; araç bunu metin biçimine çevirir ve her düğümü alanlarıyla birlikte açıklar.

Örnekler

8BE4DF61-93CA-11D2-AA0D-00E098032B8CEfiGlobalVariableGuidBelirtimdeki BootOrder, Boot#### veya SecureBoot gibi genel değişkenlerin ad alanı.
db-d719b2cb-3d3a-4596-a3bc-dad00e67656fEfiImageSecurityDatabaseGuid/sys/firmware/efi/efivars içindeki bir dosya adı: Secure Boot'un db değişkeni. Araç GUID'i addan çıkarır.
Fv(7CB8BDC9-F8EB-4F34-AAEA-3EE4AF6516A1)/FvFile(7C04A583-9E3E-4F1C-AD65-E05268D0B4D1)Fv → FvFile 7C04A583-9E3E-4F1C-AD65-E05268D0B4D1 = FullShellÜrün yazılımına yerleşik bir UEFI Shell'in önyükleme girdisi: dosya, bir ürün yazılımı birimi içinde GUID ile aranır.
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)Bir Boot#### değişkeninin ikili içeriği: öznitelikler, açıklama ve device path. efivarfs dosyası yapıştırılırsa, başta yer alan dört baytlık değişken öznitelikleri otomatik olarak tanınır.

Kullanım senaryoları

  • Önyükleme sırasını değiştirmeden veya bir girdiyi silmeden önce efibootmgr -v'nin listelediği her girdinin neyi başlattığını anlayın.
  • Bir önyükleme günlüğünde, bir değişken dökümünde veya EDK2 kodunda görünen GUID'leri tanımlayın.
  • /sys/firmware/efi/efivars içindeki her dosyanın hangi değişkene karşılık geldiğini öğrenin; örneğin Secure Boot imza veritabanları.
  • Bir diski klonladıktan veya değiştirdikten sonra çalışmayı bırakan bir önyükleme girdisinin hangi diski, bölümü ve dosyayı kullandığını bulun.
  • UEFITool veya diğer analiz araçlarıyla açılmış bir ürün yazılımı görüntüsünün modüllerini inceleyin.

Sık sorulan sorular

Bir önyükleme girdisinin device path'ini nereden alırım?

Linux'ta efibootmgr -v her girdiyi device path'iyle birlikte metin olarak gösterir; /sys/firmware/efi/efivars içindeki Boot#### dosyaları ise xxd veya hexdump -C ile dökülebilen tam ikili veriyi içerir. UEFI Shell'de bcfg boot dump -v girdileri, map -v ise disklerin device path'lerini gösterir.

Bir GUID neden katalogda yok?

Her üretici kendi modülleri için GUID'ler oluşturabilir ve bunları hiçbir yere kaydetmek zorunda değildir. Katalog, EDK2'dekileri ve topluluğun önde gelen üreticilerin ürün yazılımlarında tespit ettiklerini bir araya getirir, ancak adı olmayan özel GUID'ler her zaman kalacaktır. HD düğümlerinde görünen bölüm GUID'leri her diske özgüdür ve katalogda asla yer almaz.

Hangi device path biçimlerini kabul ediyor?

UEFI Shell ve EDK2'nin gösterdiği şekliyle belirtimdeki metin biçimini, tam bir efibootmgr -v satırını ve boşluklu ya da boşluksuz, xxd veya hexdump -C çıktısı biçiminde de olabilen onaltılık ikili veriyi. İkili veri yalnızca device path, bir Boot#### değişkeninin içeriği veya başında öznitelikleri bulunan efivarfs dosyası olabilir.

Device path herhangi bir sunucuya gönderiliyor mu?

Hayır. Device path tarayıcınızda çözülür. Sunucuya yalnızca, adlarını göstermek için düğümlerde görünen ürün yazılımı GUID'leri sorulur; bölüm GUID'leri ve verilerin geri kalanı bilgisayarınızdan çıkmaz.

efibootmgr'nin dosya yolundan sonra gösterdiği veriler ne anlama geliyor?

Bunlar, ürün yazılımının önyükleyiciye ilettiği girdinin isteğe bağlı verileridir. Örneğin Windows Önyükleme Yöneticisi burada BCD deposuna bir başvuru saklar. Device path'in parçası değildirler; değişkenin ikili verisi yapıştırılırsa araç bunları ayrıca gösterir.