PXE boot TFTP/DHCP/NFSサーバ : FreeBSD4.9 (IBM ThinkPad G40) client(Panasonic CF-W4) にFreeBSD5.4を導入 (後にFreeBSD6.1を導入;全く同じ方法で問題無し) Panasonic CF-W4の第一世代は、FD/CDからのinstallが不可なので、 下の様なネットワーク越しのpxebootを用いて対応した。 /etc/rc.confに以下の行を追加 (起動時にNFSサーバを立ち上げる。するとmountdは自動で立ち上がる) nfs_server_enable="YES" portmap_enable="YES" tftpの準備 etc/inetd.confに以下を追加 tftp dgram udp wait root /usr/libexec/tftpd tftpd -s /tftpboot そして、/tftpboot以下にpxebootを置く ファイルpxebootはftpで取得可能 ftp.jp.freebsd.org等からISOイメージを取って来て > vnconfig vn0 ??????.iso > mount -t cd9660 /dev/vn0 /mnt/cdrom > cp /mnt/cndom/boot/pxeboot /tftpboot > umount /dev/vn0 > vnconfig -u vn0 NFSの準備 /etc/exportsは以下とする。 /usr -alldirs -maproot=root -ro -network 192.168.1 -mask 255.255.255.0 (作業は-ro無しでやったが、read onlyにしといた方が安全 -alldirsとすると、/usr以下のどのdirectoriesもmount pointになる) /usr/local/etc/dhcpd.confは以下のようにした。 option routers 192.168.1.1; option subnet-mask 255.255.255.0; option broadcast-address 192.168.1.255; #server-name "trtl2"; server-identifier 192.168.1.2; # サーバのip #next-server 192.168.1.6; default-lease-time 600; max-lease-time 7200; ddns-update-style none; subnet 192.168.1.0 netmask 255.255.255.0 { range 192.168.1.10 192.168.1.10; #動的にclientのipを192.168.1.10にする。 # option root-path "/usr/local/export/tmp"; option root-path "192.168.1.2:/usr/local/export/pxe"; #NFSにより、/でmountさせる場所;kernel等を置く # option root-path "192.168.1.6:/mnt/cdrom"; filename "pxeboot"; # tftpで持って行かせるfile名 /usr/local/export/pxe以下にkernel等を置いてNFSで公開 ISOイメージが/mnt/cdromにあるとすると、 > tar -cf - -C /mnt/cdrom . | tar -xf - と展開。 またsysinstallを立ち上げるためには、./boot/loader.confに以下の行を追加 すべし。 vfs.root.mountfrom="ufs:/dev/md0c" これは次のようにすれば良い。 > echo 'vfs.root.mountfrom="ufs:/dev/md0c"' >> ./boot/loader.conf 再起動し、(nfsd,mountdを手動で立ち上げるのも可) rootになって #dhcpd bge0 で、DHCPサーバも立ち上げる。 そしてclientを起動する。 dhcpd.confに従って、ip address(ここでは192.168.1.10)が割り当てられ、その後 inetd.confに従い、/tftpbootの中から、dhcpd.confで記述されたファイルpxeboot をTFTPで取得。そしてbootが始まる。 最期にdhcpd.confで指定されたNFSの / pathをNFS mountしてkernelを読み込 みinstallが始まる。