iPXEは、Preboot eXecution Environment(PXE)クライアントファームウェアおよびブートローダーのオープンソースによる実装で、2010年にgPXEからフォークして作成された。iPXEは、内蔵PXEサポートがないコンピュータでネットワークからブート出来るようにするため、また、既存のPXEクライアントの実装を拡張するのに使用される。また、追加のプロトコルもサポートする。

標準のPXEクライアントはデータを転送するのにTFTPを使うのに対し、iPXEクライアントファームウェアは、HTTP、iSCSI、ATA over Ethernet (AoE)、ファイバチャネルover Ethernet (FCoE) を含む他のプロトコル経由でデータを受け取る機能を追加で有している。また、サポートされているハードウェアiPXEファームウェアは、Wi-Fiリンクを利用できるため、有線接続は必須ではない。iPXEファームウェアは、「ドロップイン」のPXEファームウェアの代替とみなすことはできない。

PXEの実装

iPXEは、サポートされているネットワークインターフェースカード(NIC)上に存在する標準PXE ROMを置き換え (re-flashing) るか、NICの標準PXE ROMでブートし、iPXEバイナリをチェーンロードすることによって起動できる。後者の場合、NICを再書き込みせずにiPXEを利用できる。なお、前者の場合、iPXEファームウェアはその構成スクリプトをファームウェアイメージに埋め込むことが出来るので、何らかの構成変更はNICの再書き込みを必要とする。

iPXEは、iPXEによって提供されるネットワークカードドライバを使うか、iPXEが標準PXE ROMからiPXEがチェーンロードされた場合、標準PXE UNDIドライバのどちらかを使う、固有のPXEスタックを実装する。独立したPXEスタックの実装は、NIC上に標準PXE ROMがないクライアントが、代替の媒体からロードすることにより、代替 iPXEスタックを使えるようにする。

ブートマネージャ

基本的な役割が、PXEスタックを実装することにもかかわらず、iPXEは、エンドユーザーがメニューベースで対話しながら操作する限定的な機能を持つ、ネットワークブートマネージャとして使用することができる。iPXEは、たとえばTFTP、NFS、HTTP、FTPのような複数のネットワークプロトコルを使ってブートファイルを読み出せる。

iPXEは、マルチブートをサポートする、Linuxカーネル用のブートローダとして振る舞うことが出来る。他のOS向け、例えばWindows CEでは、iPXEは、適切なMicrosoftブートローダをチェーンロードする。更に、iPXEは、スクリプトによる設定が可能で、COMBOOTとCOM32 SYSLINUX拡張をロードできる。例えば、SYSLINUXベースのグラフィカルメニューにネットワークブートを有効にする。

関連項目

  • PXE
  • PXELINUX
  • gPXE
  • Coreboot

参考文献

外部リンク

  • 公式ウェブサイト
  • ソースコードリポジトリ
  • Introduction to Network Booting and Etherboot

Network boot for UEFI devices with iPXE cylab.be

What is iPXE?

Please prominently display the latest version of ipxe on the

Kleine Experimente mit iPXE durchgeführt Deutscher Syslinux Blog