您可以使用 iPXE 从 HTTP 服务器引导 ESXi 安装程序。以下主题讨论支持 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 规范。
确认您的环境还满足使用 HTTP 服务器进行 PXE 引导所需的以下必备条件:
- 确认 HTTP 服务器可供目标 ESXi 主机访问。
- 如果 ESXi 主机仅运行旧版 BIOS 固件,请获取 3.86 版本的 SYSLINUX 软件包。有关详细信息,请参见网络引导背景信息。
过程
- 获取并配置 iPXE。
- 获取 iPXE 源代码。
- 在 iPXE 下载页面上,按照构建说明进行操作,但要运行以下命令之一。
- 对于仅运行旧版 BIOS 固件的 ESXi 主机,请运行 make bin/undionly.kpxe。
- 对于运行 UEFI 固件的 ESXi 主机,请运行 make bin-x86_64-efi/snponly.efi。
- 将 undionly.kpxe 或 snponly.efi 文件复制到 TFTP 服务器上的 /tftpboot 目录中。
- 如果 ESXi 主机仅运行旧版 BIOS 固件,请获取并配置 PXELINUX。
- 获取 SYSLINUX 版本 3.86 并进行解压,然后将 pxelinux.0 文件复制到 TFTP 服务器的 /tftpboot 目录中。
- 使用以下代码模型创建 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
- 将 PXELINUX 文件保存在 TFTP 服务器上的 /tftpboot/pxelinux.cfg/ 目录中。
文件名决定了是否所有主机都默认引导此安装程序。
选项 |
描述 |
同一安装程序 |
如果希望所有主机都默认引导此 ESXi 安装程序,请将文件命名为 default。 |
不同安装程序 |
如果只有特定主机必须引导此文件,请使用目标主机的 MAC 地址 (01-mac_address_of_target_ESXi_host) 命名文件。例如,01-23-45-67-89-0a-bc。 |
- 如果 ESXi 主机运行 UEFI 固件,请将 efi/boot/bootx64.efi 文件从 ESXi 安装程序 ISO 映像复制到 TFTP 服务器的 /tftpboot 文件夹中,并且将文件重命名为 mboot.efi。
注: 新版本的
mboot.efi 通常可以引导旧版本的
ESXi,但旧版本的
mboot.efi 可能无法引导新版本的
ESXi。如果您计划配置不同的主机以引导不同版本的
ESXi 安装程序,请使用最新版本中的
mboot.efi。
- 配置 DHCP 服务器。
- 在 HTTP 服务器上创建一个与其将包含的 ESXi 的版本同名的目录。例如, /var/www/html/ESXi-7.x.x-XXXXXX。
- 将 ESXi 安装程序映像的内容复制到新创建的目录。
- 修改 boot.cfg 文件
- 添加以下行:
prefix=http://XXX.XXX.XXX.XXX/ESXi-7.x.x-XXXXXX
其中,
http://XXX.XXX.XXX.XXX/ESXi-7.x.x-XXXXXX
是安装程序文件在 HTTP 服务器上的位置。
- 如果
kernel=
和 modules=
行中的文件名以正斜杠 (/) 字符开头,请删除该字符。
- 如果 kernelopt= 行包含字符串 cdromBoot,请只移除该字符串。
- (可选) 对于脚本式安装,在 boot.cfg 文件中内核命令后的一行添加
kernelopt
选项以指定安装脚本的位置。
将以下代码用作模型,其中
XXX.XXX.XXX.XXX 是安装脚本所在的服务器的 IP 地址,
esxi_ksFiles 是包含
ks.cfg 文件的目录。
kernelopt=ks=http://XXX.XXX.XXX.XXX/esxi_ksFiles/ks.cfg
- 如果您的 ESXi 主机运行 UEFI 固件,请指定是否希望所有 UEFI 主机引导同一安装程序。
选项 |
描述 |
同一安装程序 |
将 boot.cfg 文件复制或链接到 /tftpboot/boot.cfg |
不同安装程序 |
- 创建 /tftpboot 的子目录,并以目标主机的 MAC 地址 (01-mac_address_of_target_ESXi_host) 命名,例如 01-23-45-67-89-0a-bc。
- 将主机 boot.cfg 文件的副本(或链接)置于此目录中,例如 /tftpboot/01-23-45-67-89-0a-bc/boot.cfg。
|