Fedora Core2 ネットワークインストール(DHCPD+PXE+TFTPD+NFSD)

[サーバの実験室 Redhat/Fedora]

作成 : 2004/06/06

"サーバの実験室"の検索


インストールサーバの構成

以下のような構成でインストールサーバを用意する。 Fedora Core2でサーバを構築したので、以下のパッケージ名はFedora Core2の場合。

サーバパッケージ役割
DHCPサーバdhcp-3.0.1rc12-4IPアドレスと最初にロードするプログラム(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.isoFC2-i386-disc2.isoFC2-i386-disc3.isoFC2-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インストーラにしたがってインストールを進める。


[サーバの実験室 Redhat/Fedora]