Fedora Core2 ネットワークインストール(DHCPD+PXE+TFTPD+NFSD)
作成 : 2004/06/06
インストールサーバの構成
以下のような構成でインストールサーバを用意する。 Fedora Core2でサーバを構築したので、以下のパッケージ名はFedora Core2の場合。
| サーバ | パッケージ | 役割 |
|---|---|---|
| DHCPサーバ | dhcp-3.0.1rc12-4 | IPアドレスと最初にロードするプログラム(pxelinux.0)を教える |
| PXEサーバ | syslinux-2.08-3 | ブートイメージ(initrd.img)とカーネルイメージ(vmlinuz)を教える |
| TFTPサーバ | tftp-server-0.33-3 | ブートイメージ(initrd.img)とカーネルイメージ(vmlinuz)をダウンロードさせる |
| NFSサーバ | nfs-utils-1.0.6-22 | インストールパッケージをnfsマウントさせる |
Fedora Core2 の入手
本家のサイトは、http://fedora.redhat.com/。 ミラーサイトのKDDI研究所FTPサーバ(ftp://ftp.kddilabs.jp/Linux/packages/fedora/core/2/i386/iso/)からISOイメージファイル(CD-ROM)FC2-i386-disc1.iso、FC2-i386-disc2.iso、FC2-i386-disc3.iso、FC2-i386-disc4.isoをダウンロード。 DVDのISOイメージファイルならFC2-i386-DVD.iso。 インストールサーバの適当なフォルダ(/tmpとか)に置いておく。
クライアントの構成
PXEに対応したBIOSとNICを搭載していること。 ブートシーケンスでNICを優先させておくこと。
DHCPサーバのインストールと構成
DHCPサーバをインストールする。
# rpm -Uvh dhcp-3.0.1rc12-4.rpm
設定ファイル/etc/dhcpd.confは以下のような感じ。 filenameオプションで最初にロードするファイルpxelinux.0を指定する。
default-lease-time 86400;
max-lease-time 259200;
ddns-update-style none;
subnet 192.168.0.0 netmask 255.255.255.0 {
range 192.168.0.20 192.168.0.250;
option subnet-mask 255.255.255.0;
option broadcast-address 192.168.0.255;
option routers 192.168.0.1;
option domain-name-servers 192.168.0.10;
option domain-name "nina.jp";
}
host pxeclient {
hardware ethernet 00:00:00:00:00:00; <---クライアントのMACアドレス
fixed-address 192.168.0.2; <---クライアントに割り当てるIPアドレス
filename "/pxelinux.0"; <---pxelinux.0を指定
}
DHCPサーバを起動する。 ファイアウォールを使用している場合は、UDPの67番ポートを開けておくこと。
# /etc/init.d/dhcpd start
TFTPサーバのインストールと構成
TFTPサーバをインストールする。
# rpm -Uvh tftp-server-0.33-3.rpm
スーパーサーバからtftpdを起動できるよう、/etc/xinetd.d/tftpを書き換える。
service tftp
{
socket_type = dgram
protocol = udp
wait = yes
user = root
server = /usr/sbin/in.tftpd
server_args = -s /tftpboot <---/tftpbootがルートディレクトリになる
disable = no <---disableをnoにする
per_source = 11
cps = 100 2
flags = IPv4
}
ファイアウォールを使用している場合は、UDPの69番ポートを開けておくこと。
PXEサーバのインストールと構成
PXEサーバを構築するために、syslinuxパッケージに含まれるpxelinux.0ファイルを使用する。 syslinuxパッケージをインストールする。
# rpm -Uvh syslinux-2.08-3
pxelinux.0ファイルをTFTPサーバのルートディレクトリにコピーする。 tftp-server-0.33-3パッケージをインストールすると、/tftpbootディレクトリが作成され、/etc/xinetd.d/tftpでそれがルートディレクトリに指定されている。
# cp /usr/lib/syslinux/pxelinux.0 /tftpboot
FC2-i386-disc1.isoファイルまたはFC2-i386-DVD.isoから、ブーとイメージファイルinitrd.imgとカーネルイメージファイルvmlinuxをTFTPサーバのルートディレクトリにコピーする。 まずは、ISOイメージファイルをloopデバイスを使用してマウントし、ファイルをコピーする。
# mount -o loop -t iso9660 /tmp/FC2-i386-disc1.iso /mnt/cdrom <---ISOイメージをマウント # cp /mnt/cdrom/images/pxeboot/initrd.img /tftpboot <---ブートイメージを/tftpbootにコピー # cp /mnt/cdrom/images/pxeboot/vmlinuz /tftpboot <---カーネルイメージを/tftpbootにコピー
PXEサーバの設定ファイルを作成する。 TFTPサーバのルートディレクトリにpxelinux.cfgディレクトリを作成し、そこにdefaultファイルを作成する。
# mkdir /tftpboot/pxelinux.cfg # touch /tftpboot/pxelinux.cfg/default
/tftpboot/pxelinux.cfg/default prompt label fedora <---ラベル名 kernel vmlinuz append load initrd=initrd.img devfs=nomount
NFSサーバのインストールと構成
NFSサーバをインストールする。
# rpm -Uvh nfs-utils-1.0.6-22.rpm
portmapも必要になるのでインストールする。
# rpm -Uvh portmap-4.0-59.rpm
/etc/exportsファイルに、どのファイルシステムのエクスポートを許可するか指定する。 たとえば、192.168.0.Xのクライアントに対して/var/nfsディレクトリのエクスポートをリードオンリーで許可する。
# mkdir /var/nfs
/etc/exports
/var/nfs 192.168.0.0/255.255.255.0(ro)
インストールCD(またはDVD)をNFSでエクスポートするディレクトリへコピーする。
# mount -o loop -t iso9660 /tmp/FC2-i386-disc1.iso /mnt/cdrom # cp -R /mnt/cdrom/* /var/nfs # umount /mnt/cdrom # mount -o loop -t iso9660 /tmp/FC2-i386-disc2.iso /mnt/cdrom # cp -R /mnt/cdrom/Fedora/RPMS/*.rpm /var/nfs/Fedora/RPMS # umount /mnt/cdrom # mount -o loop -t iso9660 /tmp/FC2-i386-disc3.iso /mnt/cdrom # cp -R /mnt/cdrom/Fedora/RPMS/*.rpm /var/nfs/Fedora/RPMS # umount /mnt/cdrom # mount -o loop -t iso9660 /tmp/FC2-i386-disc4.iso /mnt/cdrom # cp -R /mnt/cdrom/Fedora/RPMS/*.rpm /var/nfs/Fedora/RPMS # umount /mnt/cdrom
NFSサーバとportmapサービスを起動する。
# /etc/init.d/portmap start # /etc/init.d/nfs start
Fedora Core2のインストール
クライアントをブートする。 boot:プロンプトが表示されたら、/tftpboot/pxelinux.cfg/defaultファイルで指定したラベルを入力する。
boot: fedora
インストールに使用するサーバの種類(CD-ROM/NFS/HTTP/FTP)を選択し、インストールサーバのIPアドレスとファイルシステム(/var/nfsとか)を入力する。 あとはGUIインストーラにしたがってインストールを進める。