您可以使用 Web 伺服器對 ESXi 安裝程式進行 PXE 開機。因為大部分環境均包含支援 UEFI 開機的 ESXi 主機和僅支援舊版 BIOS 的主機,本主題將討論這兩類主機的必要條件和步驟。

  • 針對舊版 BIOS 機器,該程序透過針對所有目標機器使用相同的 pxelinux.0gpxelinux.0 初始開機載入器,支援將多個不同版本的 ESXi 安裝程式開機,但取決於目標主機的 MAC 位址,可能存在不同的 PXELINUX 組態檔。
  • 針對 UEFI 機器,該程序透過針對所有目標機器使用相同的 mboot.efi 初始開機載入器,支援將多個不同版本的 ESXi 安裝程式開機,但取決於目標主機的 MAC 位址,可能存在不同的 boot.cfg 檔案。

必要條件

確認您的環境具有下列元件:

  • 從 VMware 網站下載的 ESXi 安裝程式 ISO 映像。
  • 目標主機具有您的 ESXi 版本支援的硬體組態。請參閱《VMware 相容性指南》
  • 目標 ESXi 主機上支援 PXE 的網路介面卡。
  • 已針對 PXE 開機設定的 DHCP 伺服器。請參閱範例 DHCP 組態
  • TFTP 伺服器。
  • 允許 TFTP 流量的網路安全性原則 (UDP 連接埠 69)。
  • 針對舊版 BIOS,您僅可使用 IPv4 網路功能。針對 UEFI PXE 開機,您可以使用 IPv4 或 IPv6 網路功能。
  • (選擇性) 安裝指令碼 (kickstart 檔案)。
  • 在大多數情況下使用原生 VLAN。如果您要指定用於 PXE 開機的 VLAN 識別碼,請檢查您的 NIC 是否支援 VLAN 識別碼規格。
確認您的環境也滿足下列使用 Web 伺服器進行 PXE 開機所需的必要條件:

程序

  1. 設定 DHCP 伺服器以進行 HTTP 開機。
  2. (僅限 UEFI) 取得並設定 iPXE:
    1. 取得 iPXE 原始程式碼,如 http://ipxe.org/download 中所述。
    2. 依照該頁面上的指示,但使用下列 make 命令:
      make bin-x86_64-efi/snponly.efi
    3. 將產生的檔案 snponly.efi 複製到您 TFTP 伺服器上的 /tftpboot 目錄。
  3. (僅限 UEFI) 將檔案 efi/boot/bootx64.efiESXi 安裝程式 ISO 映像複製到您 TFTP 伺服器上的 /tftpboot/mboot.efi
    備註: 較新版本的 mboot.efi 通常可將較舊版本的 ESXi 開機,但較舊版本的 mboot.efi 可能無法將較新版本的 ESXi 開機。如果您計劃設定不同的主機將不同版本的 ESXi 安裝程式開機,請使用最新版本的 mboot.efi
  4. (僅限舊版 BIOS) 取得並設定 PXELINUX:
    1. 取得 SYSLINUX 3.86 版,將其解除封裝,然後將 gpxelinux.0 檔案複製到您 TFTP 伺服器上的頂層 /tftpboot 目錄。
    2. 使用下列程式碼模型建立 PXELINUX 組態檔。
      ESXi-6.x.x-XXXXXX 為包含 ESXi 安裝程式檔案的 TFTP 子目錄名稱。
      DEFAULT install
      NOHALT 1
      LABEL install
        KERNEL ESXi-6.x.x-XXXXXX/mboot.c32 					
        APPEND -c ESXi-6.x.x-XXXXXX/boot.cfg
        IPAPPEND 2
      
    3. 以可判定是否所有主機都能依預設將此安裝程式開機的檔案名稱,將 PXELINUX 檔案儲存在您 TFTP 伺服器上的 /tftpboot/pxelinux.cfg 目錄中:
      選項 說明
      相同的安裝程式 如果您希望所有主機都能依預設將此 ESXi 安裝程式開機,請將檔案命名為 default
      不同的安裝程式 如果您希望使用此檔案僅可將某特定主機開機,請使用目標主機電腦 (01-mac_address_of_target_ESXi_host) 的 MAC 位址為檔案命名,例如,01-23-45-67-89-0a-bc
  5. 在您的 HTTP 伺服器上建立目錄,以其將保留的 ESXi 的版本命名,例如,/var/www/html/ESXi-6.x.x-XXXXXX
  6. ESXi 安裝程式映像的內容複製到您剛建立的目錄中。
  7. 修改 boot.cfg 檔案
    1. 新增下列行:
      prefix=http://XXX.XXX.XXX.XXX/ESXi-6.x.x-XXXXXX
      其中, http://XXX.XXX.XXX.XXX/ESXi-6.x.x-XXXXXX 為 HTTP 伺服器上安裝程式檔案的位置。
    2. 如果 kernel=modules= 行中的檔案名稱以正斜線 (/) 字元開頭,請刪除該字元。
  8. (選擇性) 對於指令碼式安裝,請在 boot.cfg 檔案中核心命令的下一行新增 kernelopt 選項,來指定安裝指令碼的位置。
    使用下列程式碼做為模型,其中 XXX.XXX.XXX.XXX 為安裝指令碼所在伺服器的 IP 位址, esxi_ksFiles 為包含 ks.cfg 檔案的目錄。
    kernelopt=ks=http://XXX.XXX.XXX.XXX/esxi_ksFiles/ks.cfg
  9. (僅限 UEFI) 指定您是否希望所有 UEFI 主機將相同的安裝程式開機。
    選項 說明
    相同的安裝程式 boot.cfg 檔案複製或連結至 /tftpboot/boot.cfg
    不同的安裝程式
    1. 建立 /tftpboot 的子目錄,以目標主機電腦 (01-mac_address_of_target_ESXi_host) 的 MAC 位址命名,例如,01-23-45-67-89-0a-bc
    2. 在該目錄中放置主機的 boot.cfg 檔案的複本 (或連結),例如,/tftpboot/01-23-45-67-89-0a-bc/boot.cfg