DebianでのPXE設定

PXEブートのおおまかな流れ。

  1. PXEで起動。
  2. DHCPサーバからIPアドレスブートローダのファイル名(と場所)を取得する。
  3. TFTPサーバからブートローダファイル(pxelinux.0)を取得する。
  4. ブートローダ(pxelinux.0)でブート
  5. TFTPサーバから最終的に起動する方法が書かれた pxelinux.cfg/default を取得する。
  6. pxelinux.cfg/defaultに書かれている方法で起動する。

・インストールするもの
TFTP、DHCPPXE(syslinux)
・機器の設定
DHCP、TFTPなどのサービスを1筐体で動かしている。
サーバ(192.168.6.105)
クライアント(192.168.6.101)name:h101


1.DHCPサーバの設定
今回はDHCP3のインストールを行う。DHCPでも可。aptコマンドでインストールを実施します。
#apt-get install dhcp3-server

#cp /usr/share/doc/dhcp-3.0.1/dhcpd.conf.sample /etc/dhcpd.conf
↑あれば行う。

#vim /etc/dhcp3/dhcpd.conf
ここのオプションは色々書き方があるので自分で調べて書いて欲しい。
今回はクライアントはh101と決めていたので、h101のmac-addressだけ割り振るようにしています。

ーーーーーーーーーーーーーーーーーーーーーーーーーー
allow bootp;
ddns-update-style none;
default-lease-time 3600;
max-lease-time 7200;
server-identifier h105;

subnet 192.168.6.0 netmask 255.255.255.0{

range 192.168.6.101;
option ip-forwarding off;
option dhcp-server-identifier 192.168.6.105;
next-server 192.168.6.105;
option broadcast-address 192.168.6.255;

host h101 {
hardware ethernet mac-address;
fixed-address 192.168.6.101;
filename "pxelinux.0";
}
}
ーーーーーーーーーーーーーーーーーーーーーーーーーー

設定が終わったら、DHCPの再起動を行う。
#/etc/init.d/dhcpd start ←あればこれでもおk
#/usr/sbin/dhcpd -q

これでDHCPの設定は終わり。

2.tftpサーバの設定
aptコマンドでインストールを実施します。
#apt-get install tftpd-hpa
tftpd-hpa以外にもtftpdはあるが、tftpd-hpaが推奨。

次に、inetdのTFTPの項目の設定を行います。
#vi /etc/default/tftpd-hpa

ーーーーーーーーーーーーーーーーーーーーーーーーーー
tftp dgram udp wait root /usr/sbin/in.tftpd /usr/sbin/in.tftpd -s /tftpboot
ーーーーーーーーーーーーーーーーーーーーーーーーーー

上の例は、/tftpboot以下を転送する前提で設定しています。

# /etc/init.d/openbsd-inetd restart

設定後、inetdを再起動させます。

3.tftpbootの設定
rootに戻り、
#mkdir -p /tftpboot
#mkdir /var/lib/tftpboot/pxelinux.cfg
のフォルダを作成する。

次にPXEブート用のブートローダを用意します。
# apt-get install syslinux
# cp /usr/lib/syslinux/pxelinux.0 /tftpboot
事前に、TFTPで/tftpboot以下を転送するよう設定&DHCPでTFTP経由で転送するファイル名を設定してあるので、pxelinux.0ファイルを/tftpboot直下に配置します。

OS起動イメージを用意
jaistftpサーバからダウンロードできます。(http://ftp.jaist.ac.jp/)
今回はdebianのデータをダウンロードします。
#mkdir -p /tftpboot/debian-installer/
#cd /tftpboot/debian-installer
#wget http://ftp.jaist.ac.jp/pub/Linux/Debian/dists/Debian6.0.3/main/installer-amd64/current/images/netboot/debian-installer/amd64/

起動パラメータを記す設定ファイルを編集します。
# vi /tftpboot/pxelinux.cfg/default

ーーーーーーーーーーーーーーーーーーーーーーーーーー
#default debian
label debian
kernel debian-installer/amd64/linux
append load initrd=debian-installer/amd64/initrd.gz devfs=nomount
ーーーーーーーーーーーーーーーーーーーーーーーーーー

これでクライアント側が起動すると、debianのinstallerが起動するはずである。
次回はnfsをインストールし、オンメモリで起動できるようにする。