PXEを使ってPCもディスクレスにしよう

YAMAMORI Takenori ●yamamori

■コラム■「dhcp-2.0系のソースの修正」

PXEのブートコードのバージョンと,dhcpのバージョンの相性によっては, PXEでうまくブートできないケースがあることを確認しています. dhcp-2.0系の中の比較的新しいバージョンやdhcp-3.0系では, “parameter request list”という機能に対応し, クライアントから要求されたパラメータに応じて返答を行なうようになっています. しかし,このことが災いして必要なパラメータまでもがうまく渡らなくなり, その結果PXEでブートできなくなるのです. もし,PXEでのブートがうまくいかない場合は以下の方法を試してみて下さい.

まず,簡単な方法として, 少し前のバージョンになりますが, dhcpdのバージョンをdhcp-2.0b1pl6(β1のパッチレベル6)に戻してみて下さい. dhcp-2.0b1pl6では,“parameter request list”には対応していないため, 問題なくブートできるはずです.

dhcp-2.0系の執筆時点で最新のdhcp-2.0pl5を使いたい場合は, dhcpのソースの,common/options.cの181行目付近の, cons_options()関数の先頭の,変数の宣言の直後に, 以下の3行を追加してください.

prl = (u_int8_t *)0;
prl_len = 0;
bootpp = 0;

この追加行により,parameter request listを強制的に無効にし, かつ,応答パケットサイズも最大まで使えるようになります. この修正を行なったdhcpdを使えば,PXEで正常にブートできるようになるはずです.


To『PXEを使ってPCもディスクレスにしよう』[index]


このページは、技術評論社 「パワーアップFreeBSD」および SoftwareDesign 2000年10月号、11月号『PXEによるネットワークブート設定術』の原稿を元に、Web 用に再構成したものです。
To 謎の処理系 SunOS 4.1.4 [Home]
yamamori