您可以使用 iPXE 從 HTTP 伺服器將 ESXi 安裝程式開機。

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

必要條件

必要條件和步驟僅取決於對 UEFI 開機或舊版 BIOS 的支援。您可以使用 iPXE 從 HTTP 伺服器將 ESXi 安裝程式開機。下列主題討論了以下兩類主機的必要條件和步驟:支援 UEFI 開機的 ESXi 主機和僅支援舊版 BIOS 的主機。

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

  • 從 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 識別碼規格。
確認您的環境也滿足下列使用 HTTP 伺服器進行 PXE 開機所需的必要條件:
  • 確認 HTTP 伺服器可透過您的目標 ESXi 主機進行存取。
  • 如果您的 ESXi 主機僅執行舊版 BIOS 韌體,請取得 SYSLINUX 套件 3.86 版。如需詳細資訊,請參閱 網路開機背景資訊

程序

  1. 取得並設定 iPXE。
    1. 取得 iPXE 原始程式碼。
    2. 在 iPXE 下載頁面上,依照組建指示進行操作,但執行下列其中一個命令。
      • 對於僅執行舊版 BIOS 韌體的 ESXi 主機,執行 make bin/undionly.kpxe
      • 對於執行 UEFI 韌體的 ESXi 主機,執行 make bin-x86_64-efi/snponly.efi
    3. undionly.kpxesnponly.efi 檔案複製到 TFTP 伺服器上的 /tftpboot 目錄。
  2. 如果您的 ESXi 主機僅執行舊版 BIOS 韌體,請取得並設定 PXELINUX。
    1. 取得 SYSLINUX 3.86 版,將其解除封裝,然後將 pxelinux.0 檔案複製到 TFTP 伺服器上的 /tftpboot 目錄。
    2. 使用下列程式碼模型建立 PXELINUX 組態檔。
      ESXi-8.x.x-XXXXXX 為包含 ESXi 安裝程式檔案的 TFTP 子目錄名稱。
      DEFAULT install
      NOHALT 1
      LABEL install
        KERNEL ESXi-8.x.x-XXXXXX/mboot.c32
        APPEND -c ESXi-8.x.x-XXXXXX/boot.cfg
        IPAPPEND 2
      
    3. 將 PXELINUX 檔案儲存在 TFTP 伺服器上的 /tftpboot/pxelinux.cfg 目錄中。
      檔案名稱決定了所有主機是否依預設將此安裝程式開機。
      選項 說明
      相同的安裝程式 如果您希望所有主機都能依預設將此 ESXi 安裝程式開機,請將檔案命名為 default
      不同的安裝程式 如果僅特定主機必須將此檔案開機,則使用目標主機電腦的 MAC 位址來命名檔案 (01-mac_address_of_target_ESXi_host)。例如,01-23-45-67-89-0a-bc
  3. 如果 ESXi 主機執行 UEFI 韌體,請將 efi/boot/bootx64.efi 檔案從 ESXi 安裝程式 ISO 映像複製到 TFTP 伺服器上的 /tftpboot 資料夾,然後將該檔案重新命名為 mboot.efi
    備註: 較新版本的 mboot.efi 通常可將較舊版本的 ESXi 開機,但較舊版本的 mboot.efi 可能無法將較新版本的 ESXi 開機。如果您計劃設定不同的主機將不同版本的 ESXi 安裝程式開機,請使用最新版本的 mboot.efi
  4. 設定 DHCP 伺服器。
  5. 在 HTTP 伺服器上建立目錄,其名稱與它將保留的 ESXi 版本相同。例如,/var/www/html/ESXi-8.x.x-XXXXXX
  6. ESXi 安裝程式映像的內容複製到新建立的目錄中。
  7. 修改 boot.cfg 檔案
    1. 新增下列行:
      prefix=http://XXX.XXX.XXX.XXX/ESXi-8.x.x-XXXXXX
      其中, http://XXX.XXX.XXX.XXX/ESXi-8.x.x-XXXXXX 為 HTTP 伺服器上安裝程式檔案的位置。
    2. 如果 kernel=modules= 行中的檔案名稱以正斜線 (/) 字元開頭,請刪除該字元。
    3. 如果 kernelopt= 行包含字串 cdromBoot,則僅移除該字串。
  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. 如果 ESXi 主機執行 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