SLESのインストールをインストールメディアを用意することなくできるように、ネットワークブートさせてインストールできるようになると効率がよい。これにはインストールサーバとPXEブートサーバを構築すればできるので設定方法を調べてみた。SLES11 for x86_64で実施。
PXEブートサーバを作るためには、3つの手順が必要
- TFTPサーバの設定
- PXEブート用ブートイメージおよびメニューの設定
- DHCPサーバの設定
[TFTPサーバの設定]YaSTから[ネットワークサービス] > [TFTPサーバ]を選択。(注意:このときにTFTPサーバアイコンが二つあるので、白い方を選択すること。実は茶色いもう一つのTFTPサーバのアイコンは普通のFTPサーバの設定で表示名の間違い)。続いて次の設定を行う
[有効化]をチェック- [ブートイメージディレクトリ]にTFTPサーバを設定するパスを指定する
例) /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サーバを再起動させる
以上で完成。