CentOS4.5をネットワーク経由で自動インストール

CentOS4.5のネットワークインストール鯖を構築したときのメモ。

tftp-server用意

CentOS4.5はxinetdが使用できるので
/etc/xinetd.d/tftpを変更

server_args = -s /depot/pxe //ここが√になる
disable = no

pxelinux.0用意

何故かデフォルトで入ってるので、上で記述した場所にコピーするだけ

cp /usr/lib/syslinux/pxelinux.0 /depot/pxe/

dhcpd用意

filename "/pxelinux.0";

な感じで、さっき.0をおいたPATH(tftpdの√からの)を記述

boot kernel用意

vmlinuzとか、initrd.imgとか。
ringサーバのcentos/4.5/os/i386/images/pxeboot/の下あたりにあるので取ってきて
/depot/pxeの下あたりに投げとく。

pxeの起動ファイル用意

√の下(/depot/pxeの下)あたりにpxelinux.cfgってディレクトリを掘る。
MACとかで特に制御しない場合は、defaultという名前で次を記述

default centos4.5

label centos4.5
kernel vmlinuz
append ks=http://192.168.0.100/ks/ks.cfg load initrd=initrd.img devfs=nomount

prompt 1とか、timeout 150とか記述するとブート途中で起動方法選べたりするけど、この設定は問答無用でOSインストール。
これがオレのジャスティス。

ks.cfg用意

自動インストールの設定ファイル。
なんかGUIの奴で作れたんだけど、コマンド忘れた。
まぁ一度作ればviで編集できるからどうでも。

httpd用意

んで、ks.cfgをクライアントに渡さにゃならんのんだけど、
使えるのがhttpかNFSかなので(今のところftpはダメ)見えるところにちゃんとおいておきましょう。
というお話。

その後

これでクライアントのBIOSで起動順位をPXEを有効にして起動と。
PXEの起動順位はHDより低くしておくと、もあべたー*1
再インストールしたいときは次のコマンドでMBRを初期化して再起動すれば、インストールが始まると。

# dd if=/dev/zero of=/dev/hda bs=512 count=1

*1:HDより高くしておくといつまでもインストールし続けちゃいます