pxebootとはネットワーク経由でマシンをブートさせる方法。
ここでは概要だけ記載。詳しくは
こちらや
こちらや
こちら参照。
pxebootの仕組み概要
1.クライアント←→DHCPサーバ
- サーバ側準備4で指定しする形で、IPとbootローダーのファイル名を指定
2.クライアント←→TFTPサーバ
- bootローダーファイル(pxelinux.0等)を取得
- 起動方法が書かれたファイル(pxelinux.cfg/default)を取得
- カーネル本体(vmlinuz)や起動ディスク(initrd等)を取得
3.クライアント
- カーネル本体(vmlinuz)や起動ディスク(initrd等)により、起動を開始する。
※DHCPサーバとTFTPサーバは同一マシンに載せることが多い。
※pxebootを行うにはNICがpxe対応である必要がある。
サーバ側準備
1.TFTPサーバ準備
1-1.必要パッケージのインストール
yum tftp-server
1-2.tftpの自動起動有効
systemctl enable xinetd.service
1-3.xinetdの再起動による有効化(tftpはxinetdを仲介して通信するため)
1-4.tftpの設定ファイル修正
/etc/xinetd.d/にtftp用のファイルを作って編集等。
2.DHCPサーバ準備
2-1.必要パッケージのインストール
yum dhcp
2-2.dhcpの自動起動有効
systemctl enable dhcpd.service
2-3.DHCPサーバー設定(/etc/dhcpd.conf修正)
allow booting:
allow bootp;
subnet 自分の環境{
next-server tftp-serverのIPアドレス #dhcpサーバとtftpサーバを別にする時に使用
filename "pxeboot/pxelinux.0"
}
3.ブートローダーの準備
3-1.必要パッケージのインストール
yum syslinux
3-2.bootローダーファイル(pxelinux.0)の準備
cp -p /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/pxeboot/pxelinux.0
※syslinuxの中のファイルをコピー
※dhcpd.confファイルで指定する場所にコピーする。
3-3.カーネル本体(vmlinuz)や起動ディスク(initrd等)の格納
<isoイメージの中からkernel本体や初期RAMディスクを格納する場合>
mount -t iso9660 -o loop,ro /isoimageのパス /mount先のパス
cp -p /mount先のパス/images/pxeboot/{vmlinuz,initrd.img} /var/lib/tftpboot/OS名等
<wgetなどでインターネットから取得する場合>
wget http://ファイルを取得するサーバの場所/vmlinuz.img
wget http://ファイルを取得するサーバの場所/initrd.img
3-4.起動方法が書かれたファイル(/var/lib/tftpboot/pxelinux/pxelinux.cfg/default)の修正。
これによりpxeboot時のOS選択メニューが表示される。
default vesamenu.c32 #メニュー選択画面を表示するためのソフトウェア
prompt 1 #ブートプロンプト表示フラグ(1:表示、0:非表示)
timeout 60 #ブートメニューの表示時間
display boot.msg #ブート直後にコンソール画面に表示するメッセージ
menu title === PXE Boot Menu === #メニューのタイトル
label XXX
menu label ^1) ラベル名 #メニューに表示させるラベル名。
#^はショートカットキーを表し、^の後ろの文字でメニュー選択できる。
menu default #該当ラベルをデフォルト設定にする場合
kernel vmlinuz #インストーラーkernelを指定
append load initrd=initrd.img devfs=nomount #初期RAMディスクを指定。kickstartと連携する場合はks=kickstart用ファイルが置かれた場所/ファイル名.cfg(※)とする。Preseedと連携する場合はpressed/url=preseed.cfgが置かれた場所とする。
label YYY
・・・
(※)指定方法の例
(※)kickstartファイルの準備方法は
こちら。
クライアント側準備
1.BIOS等で起動の優先順位として、ネットワークの起動の優先度を上げる
2.boot:プロンプトでpxelinux.cfgで設定したパッケージのラベルを入力する。
最終更新:2021年07月01日 19:43