iPXE を使用して、HTTP サーバから ESXi インストーラを起動できます。次のトピックでは、UEFI ブートをサポートする ESXi ホストと、レガシーの BIOS のみをサポートするホストの前提条件と手順について説明します。

  • レガシー BIOS マシンの場合、すべてのターゲット マシンに対して同じ pxelinux.0 の初期ブート ローダーを使用して複数の異なるバージョンの ESXi インストーラを起動することができますが、PXELINUX 構成ファイルはターゲット マシンの MAC アドレスに応じて異なる場合があります。
  • UEFI マシンの場合、すべてのターゲット マシンに対して同じ mboot.efi の初期ブート ローダーを使用して複数の異なるバージョンの ESXi インストーラを起動することができますが、boot.cfg ファイルはターゲットマシンの MAC アドレスに応じて異なる場合があります。

前提条件

使用する環境内に次のコンポーネントがあることを確認します。

  • VMware Web サイトからダウンロードした ESXi インストーラの ISO イメージ。
  • 使用している ESXi のバージョンでサポートされるハードウェア構成を備えたターゲット ホスト。『VMware の互換性ガイド』を参照してください。
  • ターゲット ESXi ホストに、PXE をサポートするネットワーク アダプタ。
  • PXE ブート向けに構成できる DHCP サーバ。DHCP の構成例を参照してください。
  • TFTP サーバ。
  • TFTP トラフィックを許可するネットワーク セキュリティ ポリシー(UDP ポート 69)。
  • レガシー BIOS の場合は、IPv4 ネットワークのみを使用できます。UEFI の PXE ブートの場合は、IPv4 または IPv6 ネットワークを使用できます。
  • (オプション)インストール スクリプト(キックスタート ファイル)。
  • ほとんどの場合、ネイティブ VLAN を使用します。PXE ブートで使用する VLAN ID を指定する場合は、NIC が VLAN ID 仕様をサポートしていることを確認します。
HTTP サーバを使用して PXE ブートを実行するために必要な次の前提条件を、使用中の環境が満たしていることを確認します。
  • インストール先の ESXi ホストから HTTP サーバにアクセスできることを確認します。
  • ESXi ホストでレガシー BIOS ファームウェアのみが実行されている場合は、SYSLINUX パッケージのバージョン 3.86 を取得します。詳細については、『ネットワーク ブートの背景情報』を参照してください。

手順

  1. iPXE を取得して構成します。
    1. iPXE ソース コードを取得します。
    2. iPXE のダウンロード ページで、ビルド手順を実行します。ただし、次のいずれかのコマンドを実行してください。
      • ESXi ホストでレガシー BIOS ファームウェアのみが実行されている場合は、make bin/undionly.kpxe を実行します。
      • ESXi ホストで UEFI ファームウェアが実行されている場合は、make bin-x86_64-efi/snponly.efi を実行します。
    3. undionly.kpxe ファイルまたは snponly.efi ファイルを TFTP サーバの /tftpboot ディレクトリにコピーします。
  2. 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 と指定します。
  3. ESXi ホストで UEFI ファームウェアが実行されている場合は、ESXi インストーラ ISO イメージから TFTP サーバ上の /tftpboot フォルダに efi/boot/bootx64.efi ファイルをコピーし、ファイル名を mboot.efi に変更します。
    注: 通常、 mboot.efi の新しいバージョンは、 ESXi の前のバージョンを起動できますが、 mboot.efi の前のバージョンは、 ESXi の新しいバージョンを起動できない場合があります。異なるホストを構成して異なるバージョンの ESXi インストーラを起動する場合は、最新バージョンの mboot.efi を使用します。
  4. DHCP サーバを構成します。
  5. HTTP サーバに保持される ESXi のバージョンと同じ名前のディレクトリを、HTTP サーバに作成します。たとえば、/var/www/html/ESXi-7.x.x-XXXXXX ディレクトリを作成します。
  6. ESXi インストーラ イメージのコンテンツを、新しく作成したディレクトリにコピーします。
  7. boot.cfg ファイルを修正します。
    1. 次の行を追加します。
      prefix=http://XXX.XXX.XXX.XXX/ESXi-7.x.x-XXXXXX
      http://XXX.XXX.XXX.XXX/ESXi-7.x.x-XXXXXX は HTTP サーバのインストーラ ファイルの場所です。
    2. kernel=modules= の行のファイル名がスラッシュ (/) で始まる場合は、このスラッシュを削除します。
    3. kernelopt= の行に文字列 cdromBoot が含まれている場合は、その文字列のみを削除します。
  8. (オプション) スクリプトを使用したインストールの場合は、boot.cfg ファイルの kernel コマンドの後の行に 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 ホストで同じインストーラを起動するかどうかを指定します。
    オプション 説明
    同じインストーラ /tftpboot/boot.cfgboot.cfg ファイルをコピーまたはリンクします。
    異なるインストーラ
    1. /tftpboot のサブディレクトリを作成します。名前には、たとえば 01-23-45-67-89-0a-bc のようにターゲットのホストマシンの MAC アドレス (01-mac_address_of_target_ESXi_host) を使用します。
    2. このディレクトリ(たとえば /tftpboot/01-23-45-67-89-0a-bc/boot.cfg)に、ホストの boot.cfg ファイルをコピー(またはリンク)します。