UEFI PXEを使用して一部のESXiホストを起動したいが、次のメッセージが表示され続けます。
テストには仮想マシンを使用しており、パケットキャプチャがDHCP / TFTPサーバー(CentOS 7)に到達していることがわかります(下記のように3回の再起動がキャプチャされました)。
09:18:04.995404 IP 192.168.0.136.rsc-robot > stager.test.lab.tftp: 50 RRQ "efi.x64/syslinux.efi" octet tsize 0 blksize 1468
09:18:04.997399 IP 192.168.0.136.cera-bcm > stager.test.lab.tftp: 42 RRQ "efi.x64/syslinux.efi" octet blksize 1468
...
09:18:40.700760 IP 192.168.0.136.itm-mcell-u > stager.test.lab.tftp: 50 RRQ "efi.x64/syslinux.efi" octet tsize 0 blksize 1468
09:18:40.704583 IP 192.168.0.136.optika-emedia > stager.test.lab.tftp: 42 RRQ "efi.x64/syslinux.efi" octet blksize 1468
...
09:18:57.525302 IP 192.168.0.136.altalink > stager.test.lab.tftp: 50 RRQ "efi.x64/syslinux.efi" octet tsize 0 blksize 1468
09:18:57.528201 IP 192.168.0.136.tunstall-pnc > stager.test.lab.tftp: 42 RRQ "efi.x64/syslinux.efi" octet blksize 1468
私以前は「mboot.efi」(syslinux 6.03でインポート)のイメージファイルを直接指す限り、UEFIを介してESXiインストーラを実行できますが、syslinuxを使用してPXE設定プロファイルを渡したいと思います。基本。次のようにDHCPを介してそこに移動します。
default-lease-time 600;
max-lease-time 7200;
ddns-update-style none;
authoritative;
log-facility local7;
allow booting;
allow bootp;
option client-system-arch code 93 = unsigned integer 16;
class "pxeclients" {
match if substring(option vendor-class-identifier, 0, 9) = "PXEClient";
#TFTP Server
option tftp-server-name "192.168.0.250";
next-server 192.168.0.250;
if option client-system-arch = 00:00 {
filename = "bios/pxelinux.0";
} elsif option client-system-arch = 00:07 {
filename = "efi.x64/syslinux.efi";
}
}
subnet 192.168.0.0 netmask 255.255.255.0 {
option domain-name-servers 192.168.0.250;
range 192.168.0.100 192.168.0.145;
}
私のtftpboot/pxelinux.cfg/defaultファイル:
UI vesamenu.c32
PROMPT 0
menu title UEFI Deployment
MENU INCLUDE graphics.conf
LABEL -
MENU label Standard Builds
MENU DISABLE
LABEL ESXi 6.7
MENU LABEL ^esxi 6.7
MENU INDENT 3
MENU DEFAULT
KERNEL images/ESXiv6.7/mboot.efi
APPEND initrd=/images/ESXiv6.7/boot.cfg ks=nfs://192.168.0.250/nfsshare/ks-prime.cfg
基本ファイルを完全に移動しても同じ結果が得られます。私はそれを使用するためにブーツを押し込むと信じていません。
編集:TFTPログを追加しています。 syslinux.efiをロードしないようです。私のBIOS実装が適切なpxelinux.0ファイルをロードした後、イメージからboot.cfgファイルを正しく抽出することは注目に値します。このインスタンスでは、EFI 基本ファイルではなく、基本ファイルが実際に動作していると仮定します。
TFTP UEFIログ:
Jul 24 08:28:49 stager in.tftpd[49849]: Client ::ffff:192.168.0.136 finished efi.x64/syslinux.efi
Jul 24 08:35:58 stager in.tftpd[50227]: connect: Invalid argument
Jul 24 08:36:05 stager in.tftpd[50233]: connect: Invalid argument
ベストアンサー1
明らかに、UEFI PXE規格の一部のバージョンでは、DHCPオプションを使用して起動ファイルサイズを指定する必要がありますoption boot-size <value>
。これは、既存のBIOSベースのPXEブートには必要ありません。
次の手順で正しいサイズ値を取得できますdu -B 512 syslinux.efi
。
したがって、du
コマンドが400個のブロックサイズを報告した場合、syslinux.efi
DHCP構成は次のように読み取られると予想されます。
...
} elsif option client-system-arch = 00:07 {
filename = "efi.x64/syslinux.efi";
option boot-size 400;
}
...
このオプションがないと、テストした一部のシステムはUEFI PXEを使用して起動できませんでした。
UEFIファームウェアはVESA VBIOS拡張に関係なく独自のタイプのディスプレイAPIを提供するため、このvesamenu.c32
モジュールはUEFIにとって問題になる可能性があります。私は少し成功しましたmenu.c32
。
syslinux.efi
私は両方をテストしましたipxe.efi
ipxe.org。私の環境では両方を動作させることができますが、iPXEは私にとってより強力に見えます。