PXEを使ってPCもディスクレスにしよう |
YAMAMORI Takenori ●yamamori |
まずはPXE対応のNICを用意しましょう. PXE対応のNICとして,筆者としては 「Intel PRO/100+マネージメント・アダプタ」 (82559チップ使用,以下PRO/100+と略記)をお勧めします. これは,後述のRTL8139搭載のNICや, そのほか一般に安価に出回っているNICより割高ですが, PRO/100+に搭載のフラッシュROMには 購入時点ですでにPXEのブートコードが書き込まれており, これによってハードウェアレベルの雑事に悩まされることなく, スムーズにネットワークブート環境を整えられます.
なお,NICによってはEP-ROMを挿すためのDIPのソケットが付いているものも ありますが,それよりもフラッシュROMが載ったNICを用いる方が, オンボードでのブートコードの書き込みができて便利です.
また,Intel 8255x系のチップを使ったフラッシュROM搭載のNICで,
最初から書き込まれているブートコードが古い場合,
PXEのブートコード
を入手し,その書き込みユーティリティを用いてブートコードを書き込めば,
PXE対応のNICとして使えるようになります.
(コラム「謎のジャンパでフラッシュROM出現」参照)
NICがオンボードで搭載されているタイプのマザーボードの場合は, マザーボードのBIOSのアップデートでPXE対応にできる場合があります. 筆者の手元にあるASUS P2B-Nは,Intel 82558がオンボードで搭載されていますが, このマザーボードのBIOSのバージョンを1011に上げることによって PXE対応になりました.(ただし,なぜか最新の1012に上げるとPXE非対応になります)
そのほか,少々手間と危険が伴いますが, Realtek RTL8139のチップが載った安価なNICの場合, NIC上にはROMは載っていませんが, PXEのブートコードをマザーボードのBIOSイメージにcbrom.exeというツールを使って 追加し,BIOSを書き換えて動作させる という方法が存在します.
ここではPRO/100+を使用するものとします. PRO/100+をPCに挿すと,マシンの起動時に
“Press Ctrl+S to enter the Setup Menu..”
というメッセージが現われます. そこで[Ctrl]+[S]を押すと,ネットワークブートの設定画面になります. (ブートROMのバージョンによっては,設定画面が呼び出せないものもあります)
●PXEの設定画面
設定画面の中には,ブートROMのバージョンによって表示が多少違うと思いますが, “Try network first, then local drives” あるいは“Default Boot Network” というような選択肢があるはずですので,これを選んでおきます. PXEかRPLかの選択肢がある場合はもちろんPXEを選択します. これでマシンの起動時にDHCPのパケットが送出さるようになり, ネットワークブートが可能になります. なお,DHCPでサーバからの応答待ちになっている間に [Ctrl]+[C]を押してネットワークブートをキャンセルすることもでき, その場合はローカルディスクからのブートになります.
また,マザーボードのBIOSによって異なると思いますが, Award BIOS 6.0(Phoenix BIOS風の画面)の場合は, ブートROM付きのNICを挿したことにより, BIOS設定画面の「Boot」→「Other Boot Device」のメニューの中に, “INT18 Device (Network)”とは別に “Intel(R) Boot Agent Version 3.0.” のような項目が現われます.(下図) (ただし筆者環境ではこの画面でのブート設定に関係なく, ネットワークブートが行なえました)
●BIOSのブート設定画面に表示されるPXE対応NIC
なお,ブートROMイメージのバージョンによって, マザーボード側のBIOSのブートの設定よりも優先して NIC側の設定によってネットワークブートが可能になるタイプと, マザーボード側のBIOSのブート設定でネットワークブートを選択しないと NIC側のブートコードが有効にならないタイプがあります. これらについてはさまざまなケースが考えると思いますので, 実際のハードウェア環境で確認して下さい.