PXE タグの一覧です(1 件)

CentOSをネットワークインストールする

ある事情により、自宅のiTunesサーバ(兼ファイルサーバ)として使用していたノートPCを人に譲ることになり、他のノートPCを代替サーバに仕立てようとCentOSのインストールを試みたのですが、DVD-ROMドライブが壊れているようでインストールが出来ない〜><。
そこで以前より気になっていたPXEを利用したネットワークインストールに挑戦してみました。

参考にしたサイト

上記サイトを主に参考にさせて頂きました。大変助かりました。この場を借りてお礼申し上げます。

PXEサーバの構築

ノートPCにネットワーク経由でCentOSをインストールする為には、ノートPCをPXEBOOTさせ、且つ取得させるOSイメージをセットするサーバが必要になります。既存サーバに後述する必要な環境をセッティングすることもアリなのですが、自宅にサーバが無いので、今回はMacBookのVMwareFusion上にあるCentOS5.1をサーバとして使用します。

イメージファイルのダウンロード

まず、CentOSのDVDイメージファイルをサイトからダウンロードします。今回はバージョン5.1を使います。
イメージファイルは今回構築するPXEサーバ上でダウンロードしてもかまいませんが、私はMacBookにBitTorrent
クライアントがあったので、BitTorrent経由でダウンロード、その後samba経由でPXEサーバに移動させました。 
DVDイメージは /home/hoge/images に移動します。このファイルは後で使用します。

vsftpdのインストールと設定

PXEブートしたクライアントが取得するイメージファイルの提供方法は、VFS、HTTP、FTP等があるようです。
今回参考にさせていただいたサイトでも、HTTP、FTPのいづれかを使用していました。今回はvsftpd(FTP)を使用してイメージファイルを配布しようと思います。vsftpdはyumでインストールします。

# yum -y install vsftpd

vsftpdを起動します。vsftpdはデフォルトでanonymousログインが許可されています。

# /etc/rc.d/init.d/vsftpd start

tftp-serverのインストールと設定

tftpと後述するdhcpはクライントPCをPXEBOOTさせる為に必要。tftpがインストールされていない場合はyumでインストールします。

# yum -y install tftp-server

インストール後にconfigファイルを設定します。disableのyesをnoに変更します。

# vi /etc/xinetd.d/tftp

service tftp
{

中略

        disable                 = no  #yesをnoに変更

中略

}

次に、tftp-serverのインストール時に作成された /tftpboot にcentosというフォルダを作成し、PXE用ブートローダをコピーします。このフォルダにはあと2つのファイルをコピーします(後述)。

# mkdir /tftpboot/centos
# cp /usr/lib/syslinux/pxelinux.0 /tftpboot/centos/

次に、/tftpboot/centos/にpxelinux.cfgという名前でフォルダを作成し、defaultというファイル名で起動用設定ファイルを記述します。

# mkdir /tftpboot/centos/pxelinux.cfg

# vi /tftpboot/centos/pxelinux.cfg/default

default centos

label centos
kernel vmlinuz
append load initrd=initrd.img devfs=nomount

DVDイメージのマウント

予めダウンロードしたDVDイメージファイルを、クライアントがFTP接続した際のディレクトリ(/var/ftp)内にフォルダを作成し、マウントさせます。マウントポイントは /var/ftp/centos になります。

# mkdir /var/ftp/centos
# mount -t iso9660 -o loop /home/hoge/images/CentOS-5.1-i386-bin-DVD.iso /var/ftp/centos

イメージファイルをマウントさせた後、その中にある起動イメージファイルを /tftpboot/centos にコピーします。

# cp /var/ftp/centos/images/pxeboot/initrd.img /tftpboot/centos/
# cp /var/ftp/centos/images/pxeboot/vmlinuz /tftpboot/centos/

ここで先程のtftpを起動させます。

# /etc/rc.d/init.d/xinetd start

dhcpのインストールと設定

あと一息です!dhcpはクライアントPCにIPアドレスを与え、クライアントPCにPXEサーバの場所を教えます。dhcpが入っていない場合はyumでインストールします。

# yum -y install dhcp

dhcpのconfigファイルを設定します。/etc/dhcpd.confに下記のような記述をします。私の環境では設定値は下表のようになりました。


Network(192.168.11.0/24) 192.168.11.0 subnet
Subnetmask 255.255.255.0 netmask
DefaultGateway 192.168.11.1 option routers
DNSServer 192.168.11.1 option domain-name-servers
DHCPで割当可能範囲 192.168.11.70 〜 192.168.11.80
PXEサーバのIPアドレス 192.168.11.5 next-server※

ddns-update-style interim;
ignore client-updates;

subnet 192.168.11.0 netmask 255.255.255.0 {

# --- default gateway
        option routers                  192.168.11.1;
        option subnet-mask              255.255.255.0;

        option domain-name              "Centos.hogehoge.com";
        option domain-name-servers      192.168.11.1;
        range dynamic-bootp 192.168.11.70 192.168.11.80;
#      next-server 192.168.11.5;
        filename "/centos/pxelinux.0";
}

filenameの箇所はtftpbootにあるpxelinux.0の場所になります。またnext-serverはPXEサーバのIPアドレスを指定してあるのですが、記述しなくてもクライアントはPXEサーバを見つけてくれました。もしうまく行かない場合は記述してみて下さい。

記述が終了したら、dhcpを起動させるのですが、ルータのDHCP機能を使用している場合はいったんDHCP機能を切ります。複数のDHCPを共存させながらPXEBOOTさせる方法もあると思うのですが、追々調べていきます。
いったんルータのDHCP機能を切った後、dhcpを起動させます。
又、PXEサーバにFirewallサービスが動作している場合はこれも休止させます(必要なPORTを空けて使用するのでも勿論構いません)。

PXEブートの実施

あとはLANケーブルをつないだクライアントPCの電源投入し、BIOS設定でネットワーク起動を有効、起動の順序を変更して再度起動させます。
問題がなければ、テキストインストール画面が出現します。いくつかの設定後、インストール方法の選択でFTPを選択して、FTPサーバのIPアドレスとイメージファイルの場所を入力します。
インストール完了後は、クライアント側はBIOS設定をリセットすること、PXEサーバ側はumount等をして下さい。

まとめ

これで、DVD-ROMドライブが壊れたPCにCentOSをインストールすることが出来ました。今回はVMware上にPXEサーバを作成した為、このVMサーバがあれば、いつでも起動させてネットワークインストール環境が手に入ります。ただインストーラーを呼び出してからのセッティングはメディアを使ったインストールと変わらず面倒なので、今度はkickstartを利用したインストールの自動化をやってみたいと思います。続く。


PAGE TOP