PXEを使ってPCもディスクレスにしよう |
YAMAMORI Takenori ●yamamori |
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で正常にブートできるようになるはずです.