若要以 PXE 將 ESXi 安裝程式開機,DHCP 伺服器必須將 TFTP 伺服器的位址以及初始開機載入器的檔案名稱傳送給 ESXi 主機。
目標機器首次開機時,會在網路中廣播封包,要求取得自行開機所需的資訊。DHCP 伺服器會進行回應。DHCP 伺服器必須能夠判斷目標機器是否獲准開機,還有初始開機載入器二進位檔案 (通常是 TFTP 伺服器上的檔案) 的位置。
許多 DHCP 伺服器都可以對主機進行 PXE 開機。如果使用適用於 Microsoft Windows 的 DHCP 版本,請參閱 DHCP 伺服器說明文件來判定如何將 next-server 和 filename 引數傳遞到目標機器。
使用具有 IPv4 的 TFTP 來開機的範例
此範例顯示如何將 ISC DHCP 伺服器設定為使用位於 IPv4 位址 xxx.xxx.xxx.xxx 的 TFTP 伺服器將 ESXi 開機。
# # ISC DHCP server configuration file snippet. This is not a complete # configuration file; see the ISC server documentation for details on # how to configure the DHCP server. # 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"; next-server xxx.xxx.xxx.xxx; if option client-system-arch = 00:07 or option client-system-arch = 00:09 { filename = "mboot.efi"; } else { filename = "pxelinux.0"; } }
在機器嘗試進行 PXE 開機時,DHCP 伺服器會提供 IP 位址和 TFTP 伺服器上 pxelinux.0 或 mboot.efi 二進位檔案的位置。
使用具有 IPv6 的 TFTP 來開機的範例
此範例顯示如何將 ISC DHCPv6 伺服器設定為使用位於 IPv6 位址 xxxx:xxxx:xxxx:xxxx::xxxx 的 TFTP 伺服器將 ESXi 開機。
# # ISC DHCPv6 server configuration file snippet. This is not a complete # configuration file; see the ISC server documentation for details on # how to configure the DHCP server. # allow booting; allow bootp; option dhcp6.bootfile-url code 59 = string; option dhcp6.bootfile-url "tftp://[xxxx:xxxx:xxxx:xxxx::xxxx]/mboot.efi";
在機器嘗試進行 PXE 開機時,DHCP 伺服器會提供 IP 位址和 TFTP 伺服器上 mboot.efi 二進位檔案的位置。
使用具有 IPv4 的 HTTP 來開機的範例
此範例顯示如何將 ISC DHCP 伺服器設定為使用位於 IPv4 位址 xxx.xxx.xxx.xxx 的 Web 伺服器將 ESXi 開機。此範例會對舊版 BIOS 主機使用 gPXELINUX 並對 UEFI 主機使用 iPXE。
# # ISC DHCPv6 server configuration file snippet. This is not a complete # configuration file; see the ISC server documentation for details on # how to configure the DHCP server. # 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"; next-server xxx.xxx.xxx.xxx; if option client-system-arch = 00:07 or option client-system-arch = 00:09 { if exists user-class and option user-class = "iPXE" { # Instruct iPXE to load mboot.efi as secondary bootloader filename = "mboot.efi"; } else { # Load the snponly.efi configuration of iPXE as initial bootloader filename = "snponly.efi"; } } else { filename "gpxelinux.0"; } }
在機器嘗試進行 PXE 開機時,DHCP 伺服器會提供 IP 位址和 TFTP 伺服器上 gpxelinux.0 或 snponly.efi 二進位檔案的位置。在 UEFI 案例中,iPXE 接著會向 DHCP 伺服器詢問下一個要載入的檔案,而這次伺服器會傳回 mboot.efi 做為檔案名稱。
使用具有 IPv6 的 HTTP 來開機的範例
此範例顯示如何將 ISC DHCPv6 伺服器設定為使用位於 IPv6 位址 xxxx:xxxx:xxxx:xxxx::xxxx 的 TFTP 伺服器將 ESXi 開機。
# # ISC DHCPv6 server configuration file snippet. This is not a complete # configuration file; see the ISC server documentation for details on # how to configure the DHCP server. # allow booting; allow bootp; option dhcp6.bootfile-url code 59 = string; if exists user-class and option user-class = "iPXE" { # Instruct iPXE to load mboot.efi as secondary bootloader option dhcp6.bootfile-url "tftp://[xxxx:xxxx:xxxx:xxxx::xxxx]/mboot.efi"; } else { # Load the snponly.efi configuration of iPXE as initial bootloader option dhcp6.bootfile-url "tftp://[xxxx:xxxx:xxxx:xxxx::xxxx]/snponly.efi"; }
在機器嘗試進行 PXE 開機時,DHCP 伺服器會提供 IP 位址和 TFTP 伺服器上 snponly.efi (iPXE) 二進位檔案的位置。iPXE 接著會向 DHCP 伺服器詢問下一個要載入的檔案,而這次伺服器會傳回 mboot.efi 做為檔案名稱。