前回までで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 で指定されたディレクトリがTFTPのルートになる。ダウンロードさせるファイルのパスを書くときはちょっと注意。設定を変更したので再起動を忘れずに。
{
(省略)
server_args = -s /tftpboot
disable = no
(省略)
}
/etc/init.d/xinetd restart
次に今回の準備作業のメインともいえる、ファイルの配置を行う。必要なのはブートローダ、OSのカーネルイメージ、initrdイメージ、PXEブート用設定ファイルの4つ。
まずブートローダと呼ばれるファイルだが、これはsyslinuxパッケージに含まれているpxelinux.0というファイルがそのまま使える。整理のためTFTPルート下にディレクトリを切ってここにコピーする。
mkdir /tftpboot/pxeboot続いてOSのカーネルイメージとinitrdイメージ。これはリポジトリからダウンロードする。インストールしたいOSの種類とバージョン、アーキテクチャ、CPUの種類(命令セット?)によって必要なファイルが異なる。後半2つは置いといて、OSの種類とバージョンについてはCentOS6.2でいくつもり満々だったのだが重大事項が発覚。どうもCentOS6.2は2003年製のノートPCじゃ荷が重いらしい。64bit、Windowsだと7を動かせるくらいが一応の目安だとか。げ。じゃあ5.xか。というとこれでもまだ厳しいとのこと。結論としてCentOS4.8をインストールする、ということで落ち着いた。まぁ異存はないです。
cp /usr/lib/syslinux/pxelinux.0 /tftpboot/pxeboot/
mkdir /tftpboot/pxeboot/i386最後に設定ファイル。これは pxelinux.cfg というディレクトリの下に default という名前のファイルを自分で作成する。
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
mkdir /tftpboot/pxeboot/pxelinux.cfgdefault ファイルの内容は以下の通り。
vi /tftpboot/pxeboot/pxelinux.cfg/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 件のコメント:
コメントを投稿