Palm84 某所の日記

死のうは一定、しのびクマには何しよぞ...

httpサーバで PXELINUX しちゃうYO!

下記ページの続きなのでありますん。。。
【2014.7.1 追記】Tiny PXE Server がおすすめ

ここは無視でw下記ページがおすすめです。

httpサーバからのダウンロードでネットワークisoブートが速くなったわけですが、そもそもhttpサーバからPXEブートできひんの?ということで。

ひと手間かかりますが、これができるんですなぁ。でも、通常PXEブートに比べるとやや汎用性が低いと思われますので、通常ブートからいくつかの手段をチェインロードする設定にしてみましてん。

※ Linux ユーザーにおかれましては「そんなん初歩やん」てなかんじと思われますが、そこはそれ...

※ SYSLINUX のバージョンは 5.01 での確認です。

  • gPXEのブートストラップ (Boot File) にカスタマイズしたスクリプトを埋め込みー
  • PXELINUXのブート設定ファイル (pxelinux.cfg\default) はそのままでちょいと追記ー
  • 普通にPXEブート後に選択してチェインロードすんねんー

スクリプト編集

埋め込み用のスクリプトを書いとこかー。

IPアドレス部分は自分の環境に合わせてなー。

#!gpxe
echo Performing DHCP on first network interface
dhcp net0
set 209:string pxelinux.cfg/default
set 210:string http://192.168.11.3/
chain ${210:string}pxelinux.0

ブートストラップ (Boot File) 作成

IPアドレス指定しますんでサーバ毎に作らなあきません。

いちばん上のリンクから

PC環境によってなんやかんやあるんで、とりあえずは計5種類作成しときますねん。

all-drivers で3種類 とも、undionly では kpxekkpxe の2種類 (※ pxeとkpxeは同じになるので)

  • Choose an output format:
    • PXE bootstrap loader image [Unload PXE stack] (.pxe)
    • PXE bootstrap loader keep [Keep PXE stack method 1] (.kpxe)
    • PXE bootstrap loader keep [Keep PXE stack method 2] (.kkpxe)
  • Choose a NIC type:
    • all-drivers
    • undionly

「format」を選択する

f:id:palm84:20181225091114p:plain

「Choose NIC type」は all-driversundionly

f:id:palm84:20181225091117p:plain

f:id:palm84:20181225091121p:plain

Cutomize ボタン押してカスタマイズ用ページを開く

ページ下部の「Embedded Script:」 のテキストエリアにスクリプトを貼り付け

f:id:palm84:20181225091123p:plain

f:id:palm84:20181225091126p:plain

Get Image ボタン押してファイルを保存するする

f:id:palm84:20181225091204p:plain

再作成は StartOver ボタンを押し

あとは同様に format 及び NIC type を選択して5種類繰り返しで

チェインロード設定

ファイル名が長いんでリネームしますわ。TFTPルートに保存しとく。

  • gpxe.pxe
  • gpxe.kpxe
  • gpxe.kkpxe
  • undionly.kpxe
  • undionly.kkpxe

pxelinux.cfg\default に設定を追記しますねん。

LABEL gpxe_pxe
MENU LABEL chainload gpxe.pxe
PXE /gpxe.pxe

LABEL gpxe_kpxe
MENU LABEL chainload gpxe.kpxe
PXE /gpxe.kpxe

LABEL gpxe_kkpxe
MENU LABEL chainload gpxe.kkpxe
PXE /gpxe.kkpxe

LABEL gpxe_undionly_kpxe
MENU LABEL chainload undionly.kpxe
PXE /undionly.kpxe

LABEL gpxe_undionly_kkpxe
MENU LABEL chainload undionly.kkpxe
PXE /undionly.kkpxe

LABEL gpxelinux
MENU LABEL chain gpxelinux.0
PXE /gpxelinux.0

すくしょ

ブートメニューはこんなんですわ

f:id:palm84:20181225091209p:plain

undionly が確実なんかぁなと思いましたが、途中エラー出たりとかあったんで試行錯誤してくださいまし。

f:id:palm84:20181225091211p:plain

ここで Ctrl-b 押すとコマンドラインになったりしますで。

f:id:palm84:20181225091211p:plain

この後はまたおんなじメニューが出ます。

めもめも

【追記】2013.9.22

httpサーバ込みでめちゃ便利ツール発見しますた!

ROM-o-matic の iPXE版を発見しま(ry。

gPXEは現在iPXEとして開発が続いてるようでおます。

ほなまたやねん