pxeboot をやってみた。

用意するもの

  • pxeboot 対応のNIC (Type-Gは内蔵のものでいける)
  • LANハブ
  • LANケーブル×2
  • pxebootのサーバ
  • pxebootによりインストールしたいマシン(今回はType-G)

以下は作業メモで各設定等の細かい点についてはあまりふれていません.

まず, サーバに DHCP/tftp/NFS の設定をします.
それからクライアントを起動すれば自動的にブータが起動します.

DHCPサーバの設定(isc-dhcp)

ソースとってきて, configure して make すれば install できた.

# cp /usr/local/etc/dhcpd.conf /etc
# vi /etc/dhcpd.conf
# dhcpd

うまくいかない. デフォルトの設定ファイルが複雑でエラー箇所が特定できないので一から書く

# dhcpd.conf
#
		
option domain-name "example.org";
default-lease-time 600;
max-lease-time 7200;
		
ddns-update-style none;
		
log-facility local7;
	
subnet 10.0.1.0 netmask 255.255.255.0 {
	range 10.0.1.101 10.0.1.120;
	option domain-name-servers 10.0.1.1;
	option broadcast-address 10.0.1.255;
	option routers 10.0.1.254;
}
		
host nico {
  hardware ethernet XX:XX:XX:XX:XX:XX;
  fixed-address 10.0.1.110;
  filename "pxeboot";
  option root-path "/mnt";
}
# dhcpd
 *** 省略 ***
	Can't open lease database /usr/local/var/db/dhcpd.leases: No such file or directory --
	  check for failed database rewrite attempt!
	Please read the dhcpd.leases manual page if you
	don't know what to do about this.
 *** 省略 ***

ここで dhcpd を実行すると, dhcpd.leases がないっぽいエラーがでるので touch する


# touch /usr/local/var/db/dhcpd.leases
touch: /usr/local/var/db/dhcpd.leases: No such file or directory
# mkdir /usr/local/var/db
# touch /usr/local/var/db/dhcpd.leases
# dhcpd
 *** 省略 ***
	No subnet declaration for fxp0 (no IPv4 addresses).
	** Ignoring requests on fxp0.  If this is not what
	   you want, please write a subnet declaration
	   in your dhcpd.conf file for the network segment
	   to which interface fxp0 is attached. **


	Not configured to listen on any interfaces!
 *** 省略 ***


先に IP アドレスふっとかないとだめらしい.

# ifconfig fxp0
fxp0: flags=8802 mtu 1500
        ether XX:XX:XX:XX:XX:XX
        media: Ethernet autoselect (100baseTX )
        status: active
# ifconfig fxp0 10.0.1.1 netmask 0xffffff00
# ifconfig fxp0
fxp0: flags=8843 mtu 1500
        inet 10.0.1.1 netmask 0xffffff00 broadcast 10.0.1.255
        ether XX:XX:XX:XX:XX:XX
        media: Ethernet autoselect (100baseTX )
        status: active
# dhcpd fxp0

これでやっと起動した.

tftpの設定

# vnconfig -c -v /dev/vn0 6.X-RELEASE-amd64-boot.iso
/dev/vn0: 0 bytes on 6.X-RELEASE-amd64-boot.iso
# mount -t cd9660 -o ro /dev/vn0 /mnt

# vi /etc/inetd.conf
''tftp の部分の # を削除''
tftp	dgram	udp	wait	root	/usr/libexec/tftpd	tftpd -s /tftpboot
tftp	dgram	udp6	wait	root	/usr/libexec/tftpd	tftpd -s /tftpboot

# mkdir /tftpboot
# cp /mnt/boot/pxeboot /tftpboot
# kill -HUP `cat /var/run/inetd.conf`


tftp のチェック

# tftp localhost
tftp> get pxeboot
Received 228066 bytes in 0.2 seconds
tftp> quit

NFSの設定

sysinstall で,

Configure → Networking → NFS server をチェック → ファイル編集(/etc/exports)

ハブにつながったところだけで運用するネットワークなのでとりあえずこれで

#/etc/export
# @see man exports
/mnt

起動チェック

# ps x | egrep 'mountd|nfs'
   81  ??  Is     0:00.00 mountd -r
   84  ??  Is     0:00.00 nfsd: master (nfsd)
   86  ??  I      0:00.00 nfsd: server (nfsd)
   87  ??  I      0:00.00 nfsd: server (nfsd)
   88  ??  I      0:00.00 nfsd: server (nfsd)
   89  ??  I      0:00.00 nfsd: server (nfsd)

インストール

BIOS の設定でネットワークブートを enable にして起動すればうまくいくはず.

後片付け

NFS, tftp サービスを停止

独り言

あーあー.
やってしまった...X-(