Device Pathとは?

BIOS/UEFIおよびembedded firmware学習者向けにDevice Pathを説明するクイックノート。

2 分で読めます
Đọc bằng 日本語 English
BIOS Terms cover

UEFI の Device Path は、device、controller、partition、boot file までの「経路」を表す仕組みです。C:\Windows のような文字列 path ではなく、Device Path Node の binary sequence です。各 node は TypeSubTypeLength、そして node ごとの data を持ちます。

簡単に言うと、filesystem path は volume の中の file の場所を示します。一方 Device Path は、firmware がその volume と file に到達するまでの経路も含めて示します。

Node の構造

Device Path node は共通 header から始まります。

typedef struct {
  UINT8 Type;
  UINT8 SubType;
  UINT8 Length[2];
} EFI_DEVICE_PATH_PROTOCOL;
Field意味debug 時に見る点
Typehardware、ACPI、messaging、media などの大分類この node はどの階層を表しているか
SubType具体的な node 種別PCI、USB、SATA、HD、FilePath など
Lengthheader を含む node 全体の長さ間違うと parser が次の node を読めなくなる
Datanode 固有の情報device/function、partition GUID、file path など

クイックチェックリスト

Boot#### の実例

Windows の boot option では、次のような device path が見られます。

PciRoot(0x0)
  /Pci(0x17,0x0)
  /Sata(0x0,0xFFFF,0x0)
  /HD(1,GPT,xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx,0x800,0x100000)
  /\EFI\Microsoft\Boot\bootmgfw.efi
Node意味確認したい値
PciRoot(0x0)PCI root bridge 0多くの場合 main root complex
Pci(0x17,0x0)PCI device/function0x17 が device number、0x0 が function
Sata(...)SATA controller/port pathport/controller 変更で path が無効になることがある
HD(...)loader がある partitionpartition number、GPT GUID/signature、start LBA、size
\EFI\...\bootmgfw.efiFilePath nodefirmware が開く .efi file

重要なのは、Device Path は単に「bootmgfw.efi を開く」と言っているだけではない点です。そこへ到達するための controller と partition も含んでいます。

よくある失敗例

Disk clone、EFI System Partition の再作成、BIOS update、CMOS clear の後、Boot#### variable 自体は残っていても、内部の Device Path が古くなることがあります。この場合 Boot Manager は variable を読めますが、参照先の partition/file を開けません。見える症状は「boot option が消えた」「別の Windows Boot Manager で起動する」「No bootable device」などです。

覚えておくポイント

Device Path は firmware 用の binary map です。DevicePathToText() はそれを人間向けの文字列に変換するだけで、firmware は structured node をたどって device に到達します。

関連ノート

公開参考資料

この記事は役に立ちましたか?

ファームウェア、BIOS/UEFI、組み込みシステムを学んでいる人に共有できます。

Nội dung liên quan

Một số bài viết, ghi chú hoặc project có liên quan đến nội dung bạn vừa đọc.

Biến note thành bài viết hoàn chỉnh

Notes là nơi ghi nhanh khái niệm.