Linux
Tips
PXEネットワークブート用サーバを構築するには
北浦訓行
2005/3/10
PXE (Preboot eXecution Environment)は、Intelが開発したネットワークブートの規格である。PXEによるネットワークブートを行うには、PXE対応NICとPXEサーバが必要だ。PXEサーバ(DHCPおよびTFTPサーバが稼働)は、ネットワークブートするPC(クライアント)に対してブートイメージを転送する。ここでは、インストール済みのFedora Core 3(FC3)をPXEサーバにする手順を説明する。
最初に、PXEブートしたPCへブートイメージを転送するためのTFTPサーバを用意する。
$ rpm -qa | grep tftp
tftp-0.39-1
tftp-server-0.39-1
として、TFTPサーバ(tftp-server)がインストールされていることを確認する。インストールされていない場合は、yumコマンドでインストールする。
TFTPサーバは、xinetd経由で起動される。FC3の場合、デフォルトでは起動しないようになっているため、/etc/xinetd.d/tftp を以下のように修正する。
service tftp
{
(省略)
disable = no ←「yes」を「no」に変更
(省略)
}
修正したら、xinetdを再起動する。
次に、インストールするディストリビューションのISOファイルをTFTPサーバでマウントする。ここでは、FC3のISOイメージ(FC3-i386-DVD.iso)を/mnt/isoにマウントする。
# mkdir /mnt/iso
# mount -t iso9660 -o loop /tmp/FC3-i386-DVD.iso /mnt/iso
次に、PXEサーバ(syslinux)がインストールされているか否かを確認する。
$ rpm -qa | grep syslinux
syslinux-2.11-1
「syslinux」という項目名が出でてこないときは、yumコマンドでインストールする。そして、ISOイメージの/images/pxeboot ディレクトリにあるPXE用のブートイメージをTFTPサーバ上にコピーする。
# cp /mnt/iso/images/pxeboot/vmlinuz /tftpboot/linux-install
# cp /mnt/iso/images/pxeboot/initrd.img /tftpboot/linux-install
最後に、PXEブート用の設定ファイルを作成する。FC3の場合は、/tftpboot/inux-install/pxelinux.cfg ディレクトリは作成されているので、そこに以下のような内容のファイル(/tftpboot/inux-install/pxelinux.cfg/default )を作成する。
default fc3
label fc3
kernel vmlinuz
append load initrd=initrd.img devfs=nomount
以上でTFTPサーバに関する設定は終了だ。
次に、DHCPサーバの設定を行う。LAN内に別のDHCPサーバがある場合は、それを停止する。PXEサーバにDHCPサーバ(dhcp)がインストールされていないときは、yumコマンドでインストールする。
$ rpm -qa | grep dhcp
dhcpv6_client-0.10-11_FC3
dhcp-3.0.1-40_FC3
dhcpv6-0.10-11_FC3
dhcp-devel-3.0.1-40_FC3
DHCPサーバの設定ファイルは/etc/dhcpd.conf になる(作成方法やDHCPサーバの起動方法については、DHCPサーバを立てるには 参照)。/etc/dhcpd.confに以下の設定を追加する。
subnet 192.168.0.0 netmask 255.255.255.0 { ←自分の環境に合わせる
(省略)
filename "/linux-install/pxelinux.0"; ←追加
}
注: 動作を確認した環境(FC3)では、/etc/dhcpd.confに「option vendor-class-identifier "PXEClient";」の行を追加すると、PXEでのブートができなくなる。
修正が終わったら、DHCPサーバを再起動する。
以上でDHCPサーバの設定は終了だ。
さらに、インストール用のパッケージなどを転送するサーバを用意する。ここでは、すでに起動しているHTTPサーバ(Apache)を使用するが、FTPサーバもしくはNFSサーバでも構わない。TFTPサーバの設定を行った際に、FC3のISOイメージを/mnt/isoにマウントしているので、そのディレクトリをLANに対して公開する。そのために、/etc/httpd/conf/httpd.conf に以下の設定を追加する。
Alias /fedora "/mnt/iso"
<Directory /mnt/iso>
Options MultiViews Indexes FollowSymLinks
Order deny,allow
Deny from all
Allow from 192.168.0.0/24 127.0.0.1
</Directory>
修正が終わったら、HTTPサーバを再起動する。
以上で、PXEサーバの設定は終了だ。PXEサーバを利用してLinuxをインストールする方法については、PXEネットワークブートでLinuxをインストールするには を参照。
なお、ファイアウォールを有効にしている場合は、いくつかのポートを開ける必要がある。PXE関連で使用するポートは以下のとおり。
プログラム
ポート番号
プロトコル
DHCP
67
UDP
FTFP
69
UDP
PXE
4011
UDP
Linux Squareフォーラム Linux Tipsカテゴリ別インデックス
TechTargetジャパン
Linux Square フォーラム 新着記事
新しい記事も入っていて安心しました (2012/2/7) Linux Squareのアクセスランキングを公開します。定番の記事ばかりでなく、連載中の記事もよろしくお願いいたします
エラーメッセージをどう扱うか? (2012/2/2) 今回は、スクリプト実行時にエラーが発生したことを知らせるメッセージの扱い方を説明します
ファイルのアップロードを制限する (2012/1/30) HTTPクライアントがアップロードしてくるファイルの扱いについて解説します。そもそも受け入れる必要があるのか? ということのほかにも、いろいろ設定が必要です
OSに付属するシェルスクリプトを読んで技術を盗む (2012/1/27) シェルスクリプトマスターに近づくには、他人から技術を盗まなければならない。OS付属のスクリプトから技術を盗もう
キャリアアップ