可以使用 TFTP 服务器以 PXE 方式引导 ESXi 安装程序。具体过程将根据您是使用 UEFI 还是从旧版 BIOS 进行引导而稍有不同。因为大多数环境都包括支持 UEFI 引导的 ESXi 主机和仅支持旧版 BIOS 的主机,所以本主题讨论这两种主机类型的必备条件和步骤。

  • 对于旧版 BIOS 计算机,该过程支持引导多个不同版本的 ESXi 安装程序,方法是对所有目标计算机使用同一 pxelinux.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 规范。
对于旧版 BIOS 系统,请获取 3.86 版本的 SYSLINUX 软件包。有关详细信息,请参见 网络引导背景信息

过程

  1. 如果 ESXi 主机仅运行旧版 BIOS 固件,请获取并配置 PXELINUX。
    1. 获取 SYSLINUX 版本 3.86 并进行解压,然后将 pxelinux.0 文件复制到 TFTP 服务器的顶级 /tftpboot 目录。
    2. 使用以下代码模型创建 PXELINUX 配置文件。
      ESXi-7.x.x-XXXXXX 是包含 ESXi 安装程序文件的 TFTP 子目录的名称。
      DEFAULT install
      NOHALT 1
      LABEL install
        KERNEL ESXi-7.x.x-XXXXXX/mboot.c32
        APPEND -c ESXi-7.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
  2. 如果 ESXi 主机运行 UEFI 固件,请将 efi/boot/bootx64.efi 文件从 ESXi 安装程序 ISO 映像复制到 TFTP 服务器的 /tftpboot 文件夹中,并且将文件重命名为 mboot.efi。对于 7.0 Update 3 及更高版本,还请将 efi/boot/crypto64.efi 文件复制到 /tftpboot 文件夹。
    注: 新版本的 mboot.efi 通常可以引导旧版本的 ESXi,但旧版本的 mboot.efi 可能无法引导新版本的 ESXi。如果您计划配置不同的主机以引导不同版本的 ESXi 安装程序,请使用最新版本中的 mboot.efi
  3. 配置 DHCP 服务器。
  4. 创建 TFTP 服务器顶级 /tftpboot 目录的子目录,并以其将保存的 ESXi 版本命名,例如 /tftpboot/ESXi-7.x.x-xxxxx
  5. ESXi 安装程序映像的内容复制到新创建的目录。
  6. 修改 boot.cfg 文件
    1. 添加以下行:
      prefix=ESXi-7.x.x-xxxxxx
      其中, ESXi-7.x.x-xxxxxx 是安装程序文件相对于 TFTP 服务器 root 目录的路径名称。
    2. 如果 kernel=modules= 行中的文件名以正斜杠 (/) 字符开头,请删除该字符。
    3. 如果 kernelopt= 行包含字符串 cdromBoot,请只移除该字符串。
  7. (可选) 对于脚本式安装,在 boot.cfg 文件中内核命令后的一行添加 kernelopt 选项以指定安装脚本的位置。
    将以下代码用作模型,其中 XXX.XXX.XXX.XXX 是安装脚本所在的服务器的 IP 地址, esxi_ksFiles 是包含 ks.cfg 文件的目录。
    kernelopt=ks=http://XXX.XXX.XXX.XXX/esxi_ksFiles/ks.cfg
  8. 如果您的 ESXi 主机运行 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