あたりまえなんですが、PXEブートはサーバの電源ONで開始されます。リモートから電源ONを操作するための技術はいくつかありますが、PXEブートの要素技術ではありません。でも、PXEブートを活用したOSの自動インストールの中で使用するのはとても有益なので解説します。
リモートからの電源操作
今回は、PXEブートでOSを自動インストールするフローにおいて、以下の赤線の処理が対象です。

ほとんどの高価なサーバは、サーバ本体とは独立したBMCというプロセッサを持っています。BMCはサーバ本体からは独立したシステムで、サーバ本体の監視や電源操作を行うことができます。
BMCはネットワークに接続可能なので、リモートからBMC経由でサーバ本体の電源操作を行うことが多いです(IPMIというインターフェースを使う)。BMCはサーバ本体のNICとは別のNICを持ち、MacアドレスもIPアドレスもサーバ本体のNICとは別のものとなります(物理的なNICのポートを、サーバ本体のNICと共有することもできますが、その場合もMacアドレスとIPアドレスは別のものになります)。
ipmitoolをインストールする
BMCをIPMIのインターフェースでリモートから操作したい場合、IPMIのクライアントソフトウェアとしてipmitoolをインストールします。RedHatやRocky Linuixでは以下の通りdnfコマンドを実行すればipmitoolがインストールされます。
# dnf -y install ipmitool
ブートオーダの変更
PXEブートはサーバの電源ONで開始されると書きましたが、正確には電源ONの前に、
「BIOSのブートオーダの設定で、PXE対応デバイスが起動順序の最上位となるように変更する」
という操作が必要になります。
これもipmitoolを使えばリモートから操作することが可能です。
# ipmitool -H <bmcipaddress> -U <bmcuser> -P <bmcpass> chassis bootdev pxe
ここで、<bmcipaddress> はBMCのIPアドレス、<bmcuser> はBMCの管理ユーザ名、<bmcpass> はBMCの管理ユーザのパスワードです。
電源操作
ipmitoolによる電源ON操作は以下の通り実行します。
# ipmitool -H <bmcipaddress> -U <bmcuser> -P <bmcpass> power on
サーバが電源ONの状態にある場合は、一旦、サーバを電源OFFする必要があります。OSが稼働している場合は、いきなり電源OFFするとシステムを破壊する恐れがあるので、以下の通りIPMI経由でshutdownの依頼をかけます。
# ipmitool -H <bmcipaddress> -U <bmcuser> -P <bmcpass> power soft
さて、「BIOSのブートオーダの設定で、PXE対応デバイスが起動順序の最上位となるように変更して、電源ON操作を行えば」、PXEブートが開始されるはずなんですけど、BMCが接続されているネットワークの中に、PXEブートに必要なDHCPサーバ、TFTPサーバが稼働していて、PXEブートに必要なブートローダが提供されなければ、PXEブートは失敗します。この場合、PXEで起動すべきメディアが見つからないので、起動順序に従って次の起動デバイスからシステムが起動されることになります。
PXEブート環境の構築手順は、次章から説明をします。
BMCのないサーバはどうしたら良いの?
PXEブートを開始するには、ブートオーダの最上位にPXE可能なデバイスを指定して、電源ONの操作をするだけなので、IPMIに拘る必要はありません。
私がおうちで使っているミニサーバ GMKtec NucBox3 は安価なサーバなのでBMCなってものは付いていません。WOL(Wake On LAN)に対応しているってWebサイトに書いてあったけれども、WOLのクライアントアプリから電源操作することもできませんでした。
だから、ブートオーダの変更も電源操作も、手作業でやっています。
GMKtec NucBox3 のBIOSのBootメニューでは、通常では以下のように、起動順序の最上位が「RedHatEnterpiseServer8」となっています。これは既にSSDにRedHatをインストール済だからです。

さて、Boot Option Prioritiesには、PXE可能なデバイスは「UEFI: PXE IP4 Realtek PCIe GBE Family Controller」と表示されています。起動順序の2番目になっていますので、Boot Option #1のところで以下のように、「UEFI: PXE IP4 Realtek PCIe GBE Family Controller」選択します。

この操作後にブートオーダは以下のように変わりました。

変わったことを確認したら、BIOSの「Save & Exit」メニューで、「Save Changes and Exit」を選択して設定を保存しましょう。
このようにBIOS画面でブートオーダを変更したら、サーバ本体の電源ONボタンを押して、電源ONしましょう。これでPXEブートを開始することができます。この場合も、PXEブートに必要なDHCPサーバやTFTPサーバの環境が構築されていることが前提となります。
広告主へのリンク
![]()
このブログにおける関連リンク
・犬でも分かるPXEブート(1):PXEブートとは
・犬でも分かるPXEブート(3):DHCPサーバの構築
・犬でも分かるPXEブート(4):TFTPサーバの構築
・犬でも分かるPXEブート(5):HTTPサーバとリポジトリーの構築
・犬でも分かるPXEブート(6):kickstartによるOS自動インストール
・犬でも分かるPXEブート(7):実際にやってみた
・犬でも分かるKVM シリーズ


コメント