web-dev-qa-db-ja.com

UEFIモードのPXEブートが機能しない

PXEブートを使用して、部門のLinux展開を自動化しようとしています。レガシーブート用に正常にセットアップできましたが、UEFIはまだ私を逃しているようです。

私は主に指示に従ってきました ここ 。レガシーは正常に機能しますが、UEFIはTFTPサーバーに接続してshim.efiファイルをロードすることすらしていないようです(tftpdログには何も表示されません)。

Dhcpd.confの関連部分は次のとおりです

option architecture-type code 93 = unsigned integer 16;
option space pxelinux;
option pxelinux.magic code 208 = string;
option pxelinux.configfile code 209 = text;
option pxelinux.pathprefix code 210 = text;
option pxelinux.reboottime code 211 = unsigned integer 32;
option architecture-type code 93 = unsigned integer 16;

そして

subnet 10.10.8.0 netmask 255.255.255.0 {
  option routers 10.10.8.1;
  option broadcast-address 10.10.8.255;
  option subnet-mask 255.255.255.0;
  range 10.10.8.100 10.10.8.200;
  class "pxeclients" {
      match if substring (option vendor-class-identifier, 0, 9) = "PXEClient";
      next-server 10.10.8.5; # tinkerbell.eecs.umich.edu

      if option architecture-type = 00:07 {
        filename "uefi/shim.efi";
      } else {
        filename "pxe/pxelinux.0";
      }
  }
}

DHCPサーバーはUbuntu14.04 isc-dhcp-serverを実行しており、TFTPサーバー(すべてのPXE関連ファイルをホストする)はRHEL7を実行しています。

1
Travis DePrato

君の architecture-typeはdhcpd.confで部分的にしかアドレス指定されていません

考えられるすべてのPCを考慮してくださいarchitecture-type

0 -> BIOS
6 -> EFI32
7 -> EFI64
9 -> EFI64

あなたの場合、クライアントが「architecture-type = 9」を使用するEFI64である場合、DHCPサーバーは誤ってpxelinux.0をNBPとしてロードすることを提案します。

編集:まだ問題が発生している場合は、Wiresharkトラフィックキャプチャを実行して、パケットレベルで実際に何が起こっているかを確認してください。

1
Pat