2007/07/24
PXEでCentOSをネットワークインストールする
新しく用意したマシンにCentOSをインストールしようとしたのだけれど、なんとこのマシンにはCDDもFDDもついてなかった!
というわけで、PXEネットーワークブートを使用してCentOSをインストールすることにしました。
PXEネットワークブート用サーバを構築
まずは、PXEネットワークブート用のサーバを構築します。
「@IT:PXEネットワークブート用サーバを構築するには」
「PXEを使ったネットワークブート」
を参考にしました。
開発用のサーバとして使用しているCentOS4.4マシンをPXEサーバにすることにします。
- TFTPサーバを構築
- tftp-serverをインストール
/etc/xinetd.d/tftpを編集し、サービスを有効にする# rpm -qa | grep tftp # yum install tftp-server Installed: tftp-server.i386 0:0.39-2 Complete!
PXE用ブートイメージを取得# vi /etc/xniinetd.d/trftp 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 } # service xinetd restart xinetd を停止中: [ OK ] xinetd を起動中: [ OK ]# mkdir /tftpboot/pxe_centos4.5 # cd /tftpboot/pxe_centos4.5 # wget ftp://ftp.riken.jp/Linux/centos/4.5/os/i386/images/pxeboot/vmlinuz # wget ftp://ftp.riken.jp/Linux/centos/4.5/os/i386/images/pxeboot/initrd.img # ls initrd.img vmlinuz - DHCPサーバを構築
- dhcpをインストール
設定ファイルを編集 ※ 不要な行は削除しています# rpm -qa | grep dhcp dhcpv6_client-0.10-14_EL4 # yum install dhcp Installed: dhcp.i386 7:3.0.1-59.EL4 Complete!# cp /usr/share/doc/dhcp-3.0.1/dhcpd.conf.sample /etc/dhcpd.conf # vi /etc/dhcpd.conf ddns-update-style interim; ignore client-updates; subnet 192.168.0.0 netmask 255.255.255.0 { option routers 192.168.0.1; option subnet-mask 255.255.255.0; option domain-name "r-stone.net"; option domain-name-servers 192.168.0.2; option time-offset -18000; # Eastern Standar d Time filename "/pxe_centos4.5/pxelinux. 0"; range dynamic-bootp 192.168.0.250 192.168.0.254; default-lease-time 21600; max-lease-time 43200; } # mkdir /var/lib/dhcpd # touch /var/lib/dhcpd/dhcpd.leases # service dhcpd start dhcpd を起動中: [ OK ] - PXEサーバを構築
- syslinux(pxelinux)のインストール (既にインストール済みでした)
ブートローダの準備# rpm -qa | grep syslinux syslinux-2.11-1
設定ファイルの作成# cp /usr/lib/syslinux/pxelinux.0 /tftpboot/pxe_ccentos4.5/# mkdir /trftpboot/pxe_centos4.5/pxelinux.cfg # vi /tftpboot/pxe_centos4.5/pxelinux.cfg/default default centos4 label centos4 kernel vmlinuz append load initrd=initrd.img devfs=nomount - ファイアウォールの設定
- これまで構築したサーバで使用するポートを開放
サーバ ポート プロトコル DHCP 67 UDP TFTP 69 UDP PXE 4011 UDP ### # DHCP ### iptables -A INPUT -p udp -s 192.168.0.0/24 --dport 67 -j ACCEPT ### # TFTP ### iptables -A INPUT -p udp -s 192.168.0.0/24 --dport 69 -j ACCEPT ### # PXE ### iptables -A INPUT -p udp -s 192.168.0.0/24 --dport 4011 -j ACCEPT - CentOSのイメージをマウント&HTTP公開
-
ISOイメージをマウント
Apatchで公開# mkdir /mnt/iso # mount -t iso9660 -o loop /home/r-stone/iso/CentOS-4.5-i386-binDVD.iso /mnt/iso# vi /usr/local/apache2/conf/httpd.conf Alias /centos4.5 "/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> # /usr/local/apache2/bin/apachectl restart
PXEネットワークブートでCentOSをインストール
いよいよCentOSをネットワークインストールします。
こちらは、
「@IT:PXEネットワークブートでLinuxをインストールするには」
を参考にしました。
- インストール方法の設定
-
PXEブートよりインストーラが起動してしまえば、あとは通常のインストールと同じです。
ただ、パッケージの転送はHTTPを使用するようにしましたので、インストール方法の画面では「HTTP」を選択し、HTTPの設定を行います。 - インストール後
-
PXEサーバ側:
念のため使用後はサービスを停止しておきます- HTTP公開の停止
- イメージのアンマウント
- TFTPサーバの停止
- DHCPサーバの停止
- BIOSのPXEを無効に
CDDがなかったのは焦りましたが、結局CDDなんてインストール時にしか使わないわけで、消費電力を抑えるためにもPXEでのネットワークインストールも良いかなと思います。
ラベル: server
