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を再起動する。

# service xinetd restart

 次に、インストールするディストリビューションの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サーバを再起動する。

# service dhcpd restart

 以上で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サーバを再起動する。

# service httpd restart

 以上で、PXEサーバの設定は終了だ。PXEサーバを利用してLinuxをインストールする方法については、PXEネットワークブートでLinuxをインストールするにはを参照。

 なお、ファイアウォールを有効にしている場合は、いくつかのポートを開ける必要がある。PXE関連で使用するポートは以下のとおり。

 
プログラム ポート番号 プロトコル
DHCP 67 UDP
FTFP 69 UDP
PXE 4011 UDP

Linux Tips Index



 Linux Squareフォーラム Linux Tipsカテゴリ別インデックス
インストール/RPM ブート/ブートローダ
ファイル操作 環境設定
ユーザー管理 コンソール/ターミナル
X Window System セキュリティ
トラブルシューティング 他OS関係
ネットワーク ハードウェア
Webサーバ Samba
GNOME KDE
OpenOffice.org エミュレータ
ソフトウェア そのほか/FAQ
全Tips公開順インデックス Linux Tips月間ランキング
Linux Squareフォーラム全記事インデックス

MONOist組み込み開発フォーラムの中から、Linux関連記事を紹介します


Linux & OSS フォーラム 新着記事
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Linux & OSS 記事ランキング

本日 月間