可以使用 Web 服务器以 PXE 方式引导 ESXi 安装程序。因为大多数环境都包括支持 UEFI 引导的 ESXi 主机和仅支持旧版 BIOS 的主机,所以本主题讨论这两种主机类型的必备条件和步骤。

  • 对于旧版 BIOS 计算机,该过程支持引导多个不同版本的 ESXi 安装程序,方法是对所有目标计算机使用同一 pxelinux.0gpxelinux.0 初始引导加载程序,但 PXELINUX 配置文件可能不同,具体视目标计算机的 MAC 地址而定。
  • 对于 UEFI 计算机,该过程支持引导多个不同版本的 ESXi 安装程序,方法是对所有目标计算机使用同一 mboot.efi 初始引导加载程序,但 boot.cfg 文件可能不同,具体视目标计算机的 MAC 地址而定。

前提条件

确认您的环境包含以下组件:

  • 从 VMware 网站下载的 ESXi 安装程序 ISO 映像。
  • 硬件配置受 ESXi 版本支持的目标主机。请参见《VMware 兼容性指南》
  • 目标 ESXi 主机上支持 PXE 的网络适配器。
  • 配置为以 PXE 方式引导的 DHCP 服务器。请参见示例 DHCP 配置
  • TFTP 服务器。
  • 允许 TFTP 流量的网络安全策略(UDP 端口 69)。
  • 对于旧版 BIOS,您只能使用 IPv4 网络连接。对于 UEFI PXE 引导,可以使用 IPv4 或 IPv6 网络连接。
  • (可选)安装脚本(kickstart 文件)。
  • 多数情况下使用本地 VLAN。如果要指定用于 PXE 引导的 VLAN ID,请检查您的网卡是否支持 VLAN ID 规范。
确认您的环境还满足使用 Web 服务器进行 PXE 引导所需的以下必备条件:

过程

  1. 针对 HTTP 引导配置 DHCP 服务器。
  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
      不同安装程序 如果只希望特定主机使用此文件进行引导,请使用目标主机的 MAC 地址 (01-mac_address_of_target_ESXi_host) 来命名此文件,例如 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 的子目录,并以目标主机的 MAC 地址 (01-mac_address_of_target_ESXi_host) 命名,例如 01-23-45-67-89-0a-bc
    2. 将主机 boot.cfg 文件的副本(或链接)置于此目录中,例如 /tftpboot/01-23-45-67-89-0a-bc/boot.cfg