You can boot the ESXi installer directly from an HTTP server, without additional software to support the process.

UEFI HTTP supports booting multiple versions of the ESXi installer. You use the same mboot.efi initial boot loader for all target machines, but potentially different boot.cfg files depending on the target machine's MAC address.
Note: Do not mix IPv4 or IPv6 networking during the boot process. Use either IPv4 or IPv6 networking.

Prerequisites

Verify that your environment has the following components:

  • ESXi host with UEFI firmware that supports the HTTP boot feature.
  • ESXi installer ISO image, downloaded from the VMware Web site.
  • Target host with a hardware configuration that is supported for your version of ESXi. See the VMware Compatibility Guide.
  • Network adapter with UEFI networking support on the target ESXi host.
  • DHCP server that you can configure for UEFI HTTP booting. See Sample DHCP Configurations
  • (Optional) Installation script (kickstart file).
  • Use a native VLAN in most cases. If you want to specify the VLAN ID to be used with PXE booting, check that your NIC supports VLAN ID specification.

Procedure

  1. Copy the efi/boot/bootx64.efi file from the ESXi installer ISO image to a directory on your HTTP server and rename the file to mboot.efi. For example, http://www.example.com/esxi/mboot.efi.
    Note: Newer versions of mboot.efi can generally boot older versions of ESXi, but older versions of mboot.efi might be unable to boot newer versions of ESXi. If you plan to configure different hosts to boot different versions of the ESXi installer, use the mboot.efi from the newest version.
  2. Configure the DHCP server.
  3. Create a directory on your HTTP server with the same name as the version of ESXi it will hold. For example, http://www.example.com/esxi/ESXi-7.x.x-XXXXXX.
  4. Copy the contents of the ESXi installer image to the newly created directory.
  5. Modify the boot.cfg file.
    1. Add the following line with the URL of the newly created directory.
      prefix=http://www.example.com/esxi/ESXi-7.x.x-XXXXXX
    2. If the filenames in the kernel= and modules= lines begin with a forward slash (/) character, delete that character.
    3. If the kernelopt= line contains the string cdromBoot, remove the string only.
  6. (Optional) For a scripted installation, in the boot.cfg file, add the kernelopt option to the line after the kernel command, to specify the location of the installation script.
    For example, kernelopt=ks=http://www.example.com/esxi_ksFiles/ks.cfg
  7. (Optional) Starting with ESXi 7.0 Update 2, you can use the virtual machine configuration parameters networkBootProtocol and networkBootUri to specify from where a virtual machines can boot. The setting networkBootProtocol specifies the boot protocol, IPv4 or IPv6. For example, networkBootProtocol = httpv4. The setting networkBootUri specifies the HTTP URL to the ESXi bootloader (bootx64.efi). For example, networkBootUri = http://192.168.30.6/esxi70uc1/efi/boot/bootx64.efi.
  8. Specify whether you want all UEFI hosts to boot the same installer.
    Option Description
    Same installer Add the boot.cfg file to the same directory as mboot.efi. For example, http://www.example.com/esxi/boot.cfg
    Different installers
    1. Create a subdirectory of the directory that contains the mboot.efi file. Name the directory as the MAC address of the target host machine (01-mac_address_of_target_ESXi_host), for example, 01-23-45-67-89-0a-bc.
    2. Add the custom boot.cfg file in the directory. For example, http://www.example.com/esxi/01-23-45-67-89-0a-bc/boot.cfg.
    You can use both installer types. ESXi hosts without custom boot.cfg file on your HTTP server, boot from the default boot.cfg file.