2010-04-24 PXEブートを試したのでメモ。
ちゃんと動くところまで言った。動作の原理はややこしいけれど、PXEブートは動作原理云々より、とにかくやってみることが大事なようだ。
参考書籍
SoftwareDesing 2009/07号 Debian GNU/Linux 5.x (lenny)をお勧めする理由 page 29-31
PXEブート環境の作成。
インストール
aptitude install dhcp3-server aptitude install atftpd #確実に動くのはatftpd
DHCPサーバーの設定。
/etc/dhcp3/dhcpd.conf
option routers 192.168.1.1; (インターネットに接続するためのルータのアドレス) option domain-name "example.com"; (ドメイン名) option domain-name-servers 192.168.1.254; (DNSサーバのアドレス) allow booting; allow bootp; allow unknown-clients; default-lease-time 600; max-lease-time 7200; subnet 192.168.1.0 netmask 255.255.255.0 { range 192.168.1.101 192.168.1.200; #100台 option subnet-mask 255.255.255.0; option broadcast-address 192.168.1.255; option domain-name-servers 192.168.1.1; option domain-name "utena.jp"; option routers 192.168.1.1; filename "/netinstaller/pxelinux.0"; next-server 192.168.1.3; # TFPTサーバーの"IPv4"アドレス }
atpftdサーバーの設定
/etc/default/atftpdを次のように変更する。
atftdを自動起動させる。inetd経由の起動はわざわざやらない。
変更内容は、OPTIONSに --daemon を付記。USE_INETD=trueをfalseに設定。
/etc/default/atftpd
USE_INETD=false OPTIONS="--daemon --tftpd-timeout 300 --retry-timeout 5 --mcast-port 1758 --mcast-addr 239.239.239.0-255 --mcast-ttl 1 --maxthread 100 --verbose=5 /var/lib/tftpboot"
/var/lib/tftpboot をtftpdのホームディレクトリに指定しているのココのファイル。
DHCP サーバとTFTP サーバの起動
$ sudo /etc/init.d/dhcp3-server start $ sudo /etc/init.d/atftpd start
PXEブートするファイルを準備。
PXEブートでカーネルの選択画面を作る。次のファイルを記述してカーネル選択画面が出るようにする。
べつに、これは無くても良いのですが。PXEブートを便利に使うための工夫ですね。
pxeboot.cfg
#pxelinuxのイメージから起動する場合。 default amd64 #label Install # menu label ^Install # menu default # kernel debian-installer/i386/linux # append vga=791 initrd=debian-installer/i386/initrd.gz url=http://HOST/PATH/TO/preseed.cfg -- quiet label amd64 menu label ^amd64 kernel debian-installer/amd64/linux append auto/install vga=791 initrd=debian-installer/amd64/initrd.gz url=http://HOST/PATH/TO/preseed.cfg -- quiet #label unstable # menu label ^unstable # kernel debian-installer/i386-sid/linux # append vga=791 initrd=debian-installer/i386-sid/initrd.gz -- quiet #label ubuntu9.04 # menu label ^ubuntu9.04 # kernel ubuntu-installer/i386/linux # append vga=791 initrd=ubuntu-installer/i386/initrd.gz -- quiet
用意したけれど、旨く動かすのが面倒だったので、使う箇所だけにして、使わない箇所は結局コメントアウトした。