BIOS上で「ネットワークブート」の選択肢がある場合、CDやフロッピードライブが搭載されていなくてもLinuxインストールが行える。ここでは、PXE(Preboot eXecution Environment)対応のネットワークアダプタを前提とし、Red Hat Linuxのインストーラが起動するまでの手順を紹介しよう。
CD/FDドライブの標準搭載されていないノートPCなどでは、ネットワークブートが効果的だ
ただし、インストーラ画面までたどり着くためには、次のような条件を満たす必要がある。ハードウェア面ではPXE対応NICさえ用意できればよく、あとは以下に解説するソフトウェア設定で可能だ。
1. クライアントにPXE対応のネットワークアダプタが搭載されている(BIOSからネットワークブートが可能)
2. LAN内のサーバにDHCPサーバソフトが稼働
3. LAN内のサーバにTFTPサーバソフトが稼働
4. ツール「BpBatch」を使う
ネットワークブートのプロセスを知っておくと作業の見通しがよくなる。簡単に紹介しておこう。
PXE対応のネットワークデバイスは、カード上のフラッシュメモリから基本ソフトを読み込み、ネットワーク上のDHCPサーバを探し出しIPアドレスを受け取る。受け取れた場合には、TFTPサーバによって接続が許可され、ブートイメージを探す。
・TFTP接続時にDHCPでIPアドレスが自動発行されるようにする
DHCPサーバを稼働させる基本事項は、「DHCPサーバを立てたい」Tipsを参考にしてほしい。
ただし、後述するTFTPとBpBatchの関連から、次のような設定内容(dhcpd.conf)にしておく必要がある。なお、注意点としてRed Hat Linux 7.x/8.0最新のRPMパッケージではPXEブートがうまく行かない場合がある。この際には、DHCPのパッケージをアンインストール(rpm -e dhcp-3.0xxxx)し、「dhcp-2.0pl5-8.i386.rpm」などの2.xを利用しよう(ここではこのパッケージを使っている)。
# cat /etc/dhcpd.conf #ddns-update-style ad-hoc; server-identifier server; server-name "server"; option domain-name "localdomain"; option domain-name-servers 192.168.0.175; option routers 192.168.0.1; subnet 192.168.0.0 netmask 255.255.255.0 { range 192.168.0.200 192.168.0.254; option broadcast-address 192.168.0.255; } host client { hardware ethernet 00:80:45:21:xx:xx; fixed-address 192.168.0.245; filename "bpbatch"; option root-path "/tftpboot"; option dhcp-class-identifier "PXEClient"; option vendor-encapsulated-options 01:04:00:00:00:00; option option-135 "-i"; } |
黄色文字の個所は自分の環境に合わせて編集する必要がある。また、「host client..」以下の設定は「client」に任意な文字列、「hardware ethernet .....」にはクライアントネットワークアダプタのMACアドレス、「filename....」個所には後述するツール「BpBatch」のファイル名の記述などに注目しておきたい。ブロードバンドルータなどで同一ネットワークアドレス内にDHCPが稼働している場合には、オフにしてからサーバ上でdhcpdを起動させるのも注意点だ。
・TFTPdでクライアントからの接続環境を用意する
次にTFTPサーバソフトの環境を整える。まず最初に次のように指定し、システム上にTFTPがインストールされているかを確認しよう。
# rpm -qa|grep tftp |
見つからなかった場合には、SpeakEasy.Rpmfind.Net Serverなどで探し出せばよい。
# rpm -ivh tftp-server-0.29-3.i386.rpm # vi /etc/xinetd.d/tftp service tftp { socket_type = dgram protocol = udp wait = yes user = root server = /usr/sbin/in.tftpd server_args = -c -s /tftpboot disable = no per_source = 11 cps = 100 2 } |
ここではスーパーデーモンXinetdを介してTFTPdを起動させる例だ。RPMパッケージによるインストールであれば、「/etc/xinetd.d/tftp」ファイルもインストール時に用意される。黄色文字の個所を確認しよう。
次に、クライアントがネットワークブート要求をした際、TFTPへアクセスを行いブートイメージを読み込むための実ファイルを用意する。これには、「/etc/xinetd.d/tftp」ファイル内の「server_args...」行を確認し、ディレクトリ指定先と、実際にそのディレクトリが存在するかを確認すればよい。
# ls /tftpboot/ X86PC # /etc/rc.d/init.d/xinetd restart |
Xinetdを再起動させれば、ここまでの設定が有効となる。
・インストールCDをNFSマウントさせる
Red Hat LinuxのインストールCD(1枚目)をマウントさせよう。次のように指定し、ネットワークブート時に利用するフロッピーイメージファイルがimages/下にあることも確認しておく。
# mount /mnt/cdrom # ls /mnt/cdrom/images/ README boot.img drvblock.img pcmcia.img pxeboot TRANS.TBL bootnet.img drvnet.img pcmciadd.img |
NFSサーバの設定ファイル「/etc/exports」には、次の行を追加してCDドライブをNFS共有できるようにする。ここでの例は、/mnt/cdrom下すべてをリードオンリー共有を意味する。
# vi /etc/exports /mnt/cdrom *(ro) |
設定後は、NFSサーバを起動させる。
# /etc/rc.d/init.d/nfs start # /etc/rc.d/init.d/nfslock start |
なお、NFSサーバのためにはportmapデーモンも起動させておく必要がある。次のように指定し、portmapが無い場合には、SpeakEasy.Rpmfind.Net Serverで探し、インストールすればよい。NFSサーバソフト起動後は、次のように共有されていることが確認できる。
# showmount -e localhost Export list for localhost: /mnt/cdrom * |
ここまでで、NFSのインストールCDマウント、TFTPサーバによるクライアントからの接続、Xinetdを介したDHCPでクライアントに自動IPアドレス割り振りが可能となった。
・BpBatchを/tftpboot/ディレクトリ下に用意する
/tftpboot/は、PXE要求によってTFTPログインを受けた際、ディレクトリ下のファイルをクライアントに転送してブートを行わせるための標準設定領域だ。
XFTPでクライアントからの接続を受けた際には、「/tftpboot/」ディレクトリ下に用意するBpBatchを読み込むようにする(/etc/xinet.d/tftpdファイル内でログイン後のトップ階層指定)。BpBatchはPXEネットワークブートを行ったクライアントに対してファイル転送を行いブート環境を提供できるものだ。また、フロッピーイメージファイルを読み込ませる機能もあるため、これを使うことでRed Hat Linuxのインストーラを起動させるわけだ。
・BpBatch入手先
http://www.bpbatch.org/
# cd /tftpboot/ # wget http://www.bpbatch.org/downloads/bpb-exe.tar.gz # tar zxfv bpb-exe.tar.gz # ls -l 合計 4152 -rw-r--r-- 1 root root 856 2月 11 2000 INSTALL -rw-r--r-- 1 root root 3471 2月 11 2000 LICENSE drwxrwxrwx 3 root root 4096 9月 22 01:39 X86PC -rwxrwxrwx 1 root root 1474560 2月 5 22:50 bootnet.img -rw-r--r-- 1 root root 807620 2月 11 2000 bpb-exe.tar.gz -rw-r--r-- 1 root root 2183 2月 11 2000 bpbatch -rw-r--r-- 1 root root 2183 2月 11 2000 bpbatch.P -rw-r--r-- 1 root root 58659 2月 11 2000 bpbatch.hlp -rw-r--r-- 1 root root 191812 2月 11 2000 bpbatch.ovl -rwxr-xr-x 1 root root 173607 2月 11 2000 mrbatch -rw-r--r-- 1 root root 203190 2月 11 2000 mrbatch.exe -rwxr-xr-x 1 root root 399536 2月 11 2000 mrbatch.static -rwxr-xr-x 1 root root 208763 2月 11 2000 mrzip -rw-r--r-- 1 root root 210416 2月 11 2000 mrzip.exe -rwxr-xr-x 1 root root 429816 2月 11 2000 mrzip.static -rw-r--r-- 1 root root 771 2月 11 2000 readme -rw-r--r-- 1 root root 8631 2月 11 2000 whatsnew # cp /mnt/cdrom/images/bootnet.img /tftpboot/ |
ここまでで設定が完了だ。DHCP、NFS、TFTPサーバそれぞれのデーモン起動確認後、クライアント側で再起動を行い、BIOSからネットワークブート操作を行ってみよう。
プロンプトが表示されればBpBatchが読み込まれた状態であり、次のように入力すればよい。イメージファイル「bootnet.img」が読み込まれ、Red Hat Linuxのインストーラが表示されるはずだ。
> set cachenever = "on" > loadramdisk "bootnet.img" Loading ramdisk image... 1440 Kb loaded to the ramdisk > floppyboot Booting from floppy disk |
なお、ここでは特にRed Hat Linuxと明記しているが、フロッピーイメージファイルさえ揃えばよく、ほかのディストリビューションだけでなくMS-DOSなどのブートも可能だ。
Copyright © ITmedia, Inc. All Rights Reserved.