iPXEは、2010年にgPXE(gPXEは2008年まではEtherbootという名前でした)のフォークとして作成された、 Preboot eXecution Environment (PXE)クライアントソフトウェアおよびブートローダーのオープンソース実装です。 [ 2 ] iPXEを使用すると、PXE機能が内蔵されていないコンピュータでもネットワークから起動したり、内蔵PXEが提供する機能を超える追加機能を提供したりできます。
標準のPXEクライアントは、サーバーからパラメータやプログラムをロードするためにTFTPのみを使用しますが、iPXEクライアントソフトウェアは、 HTTP、iSCSI、ATA over Ethernet(AoE)、Fibre Channel over Ethernet (FCoE)などの追加プロトコルを使用できます。また、特定のハードウェアでは、iPXEクライアントソフトウェアは、PXE規格で要求される有線接続ではなく、 Wi-Fiリンクを使用することもできます。
iPXEクライアントは、従来のPXE実装の上位互換であり、それらを置き換えることも補完することもできます。
iPXEはgPXEの公式後継バージョンです。gPXEのすべての機能を備えており、ユーザーはgPXEからiPXEへシームレスにアップグレードできます。[ 2 ]
iPXEは、対応するネットワークインターフェイスカード(NIC)上の既存の標準PXE ROMを交換(再フラッシュ)するか、NICの標準PXE ROMを起動してからiPXEバイナリにチェーンロードすることで、コンピュータから起動できます。後者の場合、NICを再フラッシュする必要なくiPXEの機能を取得できます。iPXEファームウェアは設定スクリプトをファームウェアイメージに埋め込んでいるため、設定を変更するにはNICを再フラッシュする必要があります。
iPXEは、iPXEが提供するネットワークカードドライバを使用するか、標準PXE ROMからiPXEがロードされる場合は標準PXE UNDIドライバを使用することで、独自のPXEスタックを実装します。独立したPXEスタックを実装することで、NICに標準PXE ROMが搭載されていないクライアントでも、別のメディアからロードすることで代替のiPXEスタックを使用できるようになります。
iPXEの基本的な役割はPXEスタックを実装することですが、エンドユーザーとのメニューベースの対話機能が限定されたネットワークブートマネージャとしても使用できます。iPXEは、TFTP、NFS、HTTP、FTPなど、複数のネットワークプロトコルを使用してブートファイルを取得できます。
iPXEはLinuxカーネルのブートローダーとして機能し、マルチブートにも対応しています。Windows CEなどの他のオペレーティングシステムの場合、iPXEは対応するMicrosoftブートローダーをチェーンロードします。さらに、iPXEはスクリプトに対応しており、COMBOOTおよびCOM32 SYSLINUX拡張機能をロードできます。これにより、例えばSYSLINUXベースのグラフィカルメニュー機能をネットワークブートで利用できるようになります。