PXEブートサーバを作るためには、3つの手順が必要
- TFTPサーバの設定
- PXEブート用ブートイメージおよびメニューの設定
- DHCPサーバの設定
[TFTPサーバの設定]
YaSTから[ネットワークサービス] > [TFTPサーバ]を選択。(注意:このときにTFTPサーバアイコンが二つあるので、白い方を選択すること。実は茶色いもう一つのTFTPサーバのアイコンは普通のFTPサーバの設定で表示名の間違い)。続いて次の設定を行う 例) /srv/tftpboot/
- [ファイアウォールでポートを開く]をチェック
[PXEブート用ブートイメージの構築]
TFTPサーバで指定したパスにPXEブートに必要なファイルをSLESのインストールメディアからコピーする。
/boot/x86_64/loader/linux
/boot/x86_64/loader/initrd
/boot/x86_64/loader/message
/boot/x86_64/loader/biostest
/boot/x86_64/loader/memtest
上記はx86_64の場合。もしx86であれば/boot/i586/loader以下からコピーする
つづいてpxelinux.0をコピーする。これもコピー先はTFTPのパス直下。もしファイルがなければsyslinuxパッケージがインストールされていないのでインストールすること
/usr/share/syslinux/pxelinux.0
つづいてPXEブート時に呼び出すメニューを作成する。
まずpxelinux.cfgフォルダを作成し、/boot/x86_64/loader/isolinux.cfgをdefaultと言う名前でコピーする。
#mkdir /srv/tftpboot/pxelinux.cfg
#cp <マウントポイント>/boot/x86_64/loader/isolinux.cfg /srv/tftpboot/pxelinux.cfg/default
defaultファイルを編集してPXEブートからインストールできるようにする
まずはgfxboot、readinfo、およびframebufferで始まる行を削除。
次に "# install"セクションを編集する。
[編集前]

# install
label linux
kernel linux
append initrd=initrd splash=silent showopts
[編集後]
# SLES11 for x86_64
label sles11_x86_64
kernel linux
append initrd=initrd splash=silent showopts install=http://<インストールサーバのアドレス>/sles11_x86_64
install=はnfs,samba,httpなどインストールサーバであればなんでもよいので設定したSLES11 for x86_64サーバのインストールURLを記述する。
つづいて余計な部分を削除してしまう。noacpi, nolapic, failsafe, rescueなど削除

最後にmessageファイルを編集してpxelinux.cfg/defaultで指定した"label"を入力できるようにメッセージを出力させる
linux - Installation 行を次のように変更
sles11_x86_64 - Install SUSE Linux Enterprise Server 11 for x86_64
その他の不要な部分は削除
[DHCPサーバの設定]
DHCPサーバからPXEブートサーバのアドレスとブートイメージファイルを指定する。
/etc/dchpd.confを編集する。
next-serverにPXEブートサーバのアドレスを設定
filename に"pxelinux.0"を指定
例)
subnet 192.168.1.0 netmask 255.255.255.0 {
range dynamic-bootp 192.168.1.200 192.168.1.228;
next-server ip_tftp_server:
filename "pxelinux.0";
}
設定が完了したらdhcpサーバを再起動させる
以上で完成。
始めまして参考にさせていただいたのですが、
返信削除append initrd=initrd splash=silent showopts install=http://インストールサーバのアドレス/sles11_x86_64
の部分のパス?(sles11_x86_64)は意味があるのでしょうか?
設定をしている最中でテスト段階まで進んでいないのですが、
上記の設定は任意に別の物に代えても問題ないでしょうか?
いきなりの質問すみません。
コメントありがとうございます。
返信削除これは異なるカーネルのインストールも出きるようにするためにパスを切っています。例えば32bit版は/sles11_x86/などとしてその下に32bit版のbootイメージをコピーしてdefaultファイルにSLES11 for x86の項目を作ってあげれば32bit版と64bit版のインストールを使い分けることができます。
OpenSUSE 11.1なども同様にパスを区切って追加してあげれば便利なインストールサーバが出来上がります。