それマグで!

知識はカップより、マグでゆっくり頂きます。 takuya_1stのブログ

習慣に早くから配慮した者は、 おそらく人生の実りも大きい。

PXEブートをためしたので

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

用意したけれど、旨く動かすのが面倒だったので、使う箇所だけにして、使わない箇所は結局コメントアウトした。

そういえばWindowsは?

WindowsのPXEブートと自動インストールはどうするんだろう。

PXEブートのデュアルブートとか出来るとテンションあがるけどな。