最近のPCやサーバーではPXEというネットワークブートを使って、CDやDVDを使わずにOSをインストールすることができます。
もちろんネットワークインストールするためには、 インストールするサーバー以外にすでに動いているサーバーが必要になります。そのため、一台だけインストールする場合はあまり意味がないのですが、複数のサーバーにインストールする場合や、頻繁にインストールする場合などは結構便利になります。
まず、PXEでネットワークインストールするには、もちろんネットワーク環境とDHCPサーバー、tftpサーバー、ファイル配信用サーバー(HTTPやFTPなど)が必要になります。ここではサーバーもRHEL5を使用しているとします。
まずtftpサーバーで、最小限のブートイメージを配信するための設定が必要になります。RHEL5でtftp-serverのRPMがインストールされていれば、/tftpbootというディレクトリがあります。
まずは、tftpサーバーを有効にします。 disable=noにするだけです。
$ vi /etc/xinetd.d/tftp
service tftp { socket_type = dgram protocol = udp wait = yes user = root server = /usr/sbin/in.tftpd server_args = -s /tftpboot disable = no per_source = 11 cps = 100 2 flags = IPv4 }
設定を反映するには、xinetdを再起動します。
# /etc/init.d/xinetd restart
/tftpboot/の中はこんな感じです。initrd.imgやpxelinux.0, vmlinuzなどはインストールDVDにありますので、コピーしてきます。
/tftpboot/linux-install: 合計 9168 -r--r--r-- 1 root root 7399936 12月 4 11:03 initrd.img drwxr-xr-x 2 root root 4096 10月 1 02:22 msgs -rw-r--r-- 1 root root 13100 12月 20 2005 pxelinux.0 drwxr-xr-x 2 root root 4096 12月 4 11:19 pxelinux.cfg -r--r--r-- 1 root root 1932316 12月 4 11:03 vmlinuz /tftpboot/linux-install/msgs: 合計 48 -rw-r--r-- 1 root root 439 4月 7 2008 boot.msg -rw-r--r-- 1 root root 668 4月 7 2008 expert.msg -rw-r--r-- 1 root root 871 4月 7 2008 general.msg -rw-r--r-- 1 root root 860 4月 7 2008 param.msg -rw-r--r-- 1 root root 530 4月 7 2008 rescue.msg -rw-r--r-- 1 root root 545 4月 7 2008 snake.msg /tftpboot/linux-install/pxelinux.cfg: 合計 4 -rw-r--r-- 1 root root 91 12月 4 11:19 default
最後のdefaultはテキストファイルで、自分で書く必要があります。内容はこんな感じです。
default rhel
label rhel
kernel vmlinuz
append load initrd=initrd.img devfs=nomount
次はDHCPです。DHCPサーバーがRPMでインストールされているとして、/etc/dhcpd.confは以下のようにします。基本的に普通のdhcpサーバーの設定にnext-serverという設定とfilenameの設定が必要になります。
ddns-update-style interim; ignore client-updates; subnet 192.168.0.0 netmask 255.255.255.0 { next-server 192.168.0.2; #これが必要。HTTPやFTPサーバーのIPを指定する option routers 192.168.0.1; option subnet-mask 255.255.255.0; option domain-name-servers 192.168.0.1; option time-offset -18000; # Eastern Standard Time range dynamic-bootp 192.168.0.200 192.168.0.254; default-lease-time 21600; max-lease-time 43200; filename "/linux-install/pxelinux.0"; }
最後はインストールイメージを配信するサーバー、ここではapacheを使います。
まず、インストールのDVD ISOイメージを用意します。
httpdがrpmでインストールされているとして、デフォルトは/var/www/htmlがWEBサーバーのルートなので、ここに適当なディレクトリを作って、上記のISOイメージをマウントします。ここでは、/var/www/html/rhelにマウントするとします。
# mount -o loop ISOイメージ名 /var/www/html/rhel
apacheを起動します。
# /etc/init.d/httpd restart
以上で設定は完了です。BIOSでPXEブートができるようにしたマシンをネットワークに繋いで電源を入れると、起動するはずです。インストーラーが立ち上がる前に、インストールイメージの場所を指定する画面が出てきます。HTTPを選択後、上記の設定では、URLに192.168.0.2(サーバーのIP) 、パスに/rhelを入力すればインストーラーが立ち上がります。