2012年3月3日土曜日

準備は続く

ちょっとお仕事が忙しくてね、ブログの更新が進んでいないのだけど。ちょっとは作業も進んでおります。ほんのちょっと。
前回まででtftp-serverとdhcpのインストールは済んでいる。それからsyslinuxは元々インストール済だったので、次は設定ファイルの書き換えとOSのイメージ本体を準備するという段階でした。

まずはtftp-serverのための設定。tftp-serverはxinetd経由で起動されるのでその設定をする。
ちなみにxinetdというのはスーパーサーバ型デーモンとかサービスディスパッチャと呼ばれるもので、他にもftpdやtelnetdなんかを間接的に起動させる役割を持っている。これらのサーバプログラムは本来常時起動してクライアントからの接続要求を待っていなければならないが、めったに呼ばれないのに常時起動していてはメモリがもったいない、ということでxinetdがこれらへの接続要求を代表して受け付け、リクエストが来たときだけ起動させるという仕組みになっている。ただし間接起動のオーバーヘッドは大きいので、httpdのように頻繁に接続要求を受けるサーバプログラムは常時起動しているのが普通ということだそう。なるほど。
さて、設定をいじるのは /etc/xinetd.d/tftp というファイルの disable という部分。ここがデフォルトでは「yes」になっているのを「no」に変える。これでtftp-serverが起動される設定になった。へぇ。

service tftp
{
(省略)
        server_args  = -s /tftpboot
        disable        = no
(省略)
}
ちなみに server_args で指定されたディレクトリがTFTPのルートになる。ダウンロードさせるファイルのパスを書くときはちょっと注意。設定を変更したので再起動を忘れずに。
/etc/init.d/xinetd restart 


次に今回の準備作業のメインともいえる、ファイルの配置を行う。必要なのはブートローダ、OSのカーネルイメージ、initrdイメージ、PXEブート用設定ファイルの4つ。
まずブートローダと呼ばれるファイルだが、これはsyslinuxパッケージに含まれているpxelinux.0というファイルがそのまま使える。整理のためTFTPルート下にディレクトリを切ってここにコピーする。
mkdir /tftpboot/pxeboot
cp /usr/lib/syslinux/pxelinux.0 /tftpboot/pxeboot/
 続いてOSのカーネルイメージとinitrdイメージ。これはリポジトリからダウンロードする。インストールしたいOSの種類とバージョン、アーキテクチャ、CPUの種類(命令セット?)によって必要なファイルが異なる。後半2つは置いといて、OSの種類とバージョンについてはCentOS6.2でいくつもり満々だったのだが重大事項が発覚。どうもCentOS6.2は2003年製のノートPCじゃ荷が重いらしい。64bit、Windowsだと7を動かせるくらいが一応の目安だとか。げ。じゃあ5.xか。というとこれでもまだ厳しいとのこと。結論としてCentOS4.8をインストールする、ということで落ち着いた。まぁ異存はないです。
mkdir /tftpboot/pxeboot/i386
cd /tftpboot/pxeboot/i386
wget http://ftp.riken.jp/Linux/centos/4.8/os/i386/images/pxeboot/vmlinuz
wget http://ftp.riken.jp/Linux/centos/4.8/os/i386/images/pxeboot/initrd.img
最後に設定ファイル。これは pxelinux.cfg というディレクトリの下に default という名前のファイルを自分で作成する。
mkdir /tftpboot/pxeboot/pxelinux.cfg
vi /tftpboot/pxeboot/pxelinux.cfg/default
default ファイルの内容は以下の通り。

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

ここまでのおさらい。
/tftpboot/pxeboot/
 |
 +- pxelinux.0 (ブートローダ)
 |
 +- i386/
 |    |
 |    +- vmlinuz (カーネルイメージ)
 |    +- initrd.img (initrdイメージ)
 |
 +- pxelinux.cfg/
      |
      +- default (設定ファイル)
だんだん準備が整ってきた。最後にdhcpdの設定を行う。続く。

0 件のコメント:

コメントを投稿