pxeを使ったFreeBSDインストール クライアント : FreeBSDをインストールするpxe対応のマシン サーバー : インストールフロッピーの内容をクライアントに送るマシン Step1. クライアントの準備 ! クライアントのMACアドレスを調べます。 1. クライアントのNICにケーブルを差してハブにつなぎます。 2. クライアントを起動します。 3. クライアントはDHCPサーバーを探します。 4. その時にMACアドレスが表示されるので記録します。 Step2. DHCPサーバーの準備 ! クライアントの pxe はDHCPで自分のアドレスを取得します。 ! サーバーでdhcpサーバーを動かして、クライアントにアドレスを ! 教えます。 ! また、pxeはdhcpでtftpで取得するファイルを聞いてきますので、 ! そのファイル名を教えます。 1. isc-dhcpをインストールします。 ./configure make make install で行けます。 2. /etc/dhcpd.conf を記述します。 内容は次のような感じです。 server-identifier 210.***.***.153; option domain-name "hoge.jp"; option domain-name-servers 211.***.***.33; option subnet-mask 255.255.255.192; option routers 210.***.***.129; option broadcast-address 210.***.***.191; default-lease-time 31536000; max-lease-time 63072000; ddns-update-style ad-hoc; subnet 210.***.***.128 netmask 255.255.255.192 { } host ahoaho { hardware ethernet **:**:**:**:**:**; fixed-address 210.***.***.186; filename "pxeboot"; option root-path "210.***.***.153:/tmp/nfs"; } 注意 * 必ず server-identifier をサーバーのNICのアドレスにします。 このアドレスにクライアントがtftpで接続してきます。 書かないと 127.0.0.1 になってしまい、クライアントが接続 して来ません。 * hardware ethernet にはクライアントのMACアドレスを書きます。 * fixed-address にはクライアントに振るIPアドレスを書きます。 * filename には pxe がtftpで取得するファイルを書きます。 "pxeboot" は後で設置します。 * option root-path は pxeboot が参照する値です。 pxeboot は nfsmount で、ここに書かれたnfsパスを / にマウントします。 3. dhcpサーバーを起動します。 # dhcpd ed0 Step3. tftpサーバーの準備 ! pxeはDHCPで自分のアドレスを取得すると、サーバーから ! tftpで "pxeboot" ファイルを取得します。 ! "pxeboot" ファイルをtftpで取れるようにします。 1. /etc/inetd.conf を書換えます tftp dgram udp wait nobody /usr/libexec/tftpd tftpd /tmp/tftp /tmp/tftp は tftpサーバーのルートとなるパスを書きます。 2. /tmp/tftp に pxeboot をコピーします。 pxeboot は /boot にあります。 3. /etc/hosts.allow で tftpd へのアクセスを許可します。 4. killall -1 inetd します Step4. nfsサーバーの準備 ! クライアントは tftp で "pxeboot" ファイルを取得するとそれを ! 実行します。pxebootはnfsで / をマウントします。 ! そのマウントのsourceは再度DHCPでoption root-pathを聞くことで ! 取得します。 ! dhcpで /tmp/nfs を / にマウントするように指定しているので、 ! /tmp/nfs をクライアントにnfsで公開します。 1. /etc/rc.conf を書換えて nfs サーバーとなる設定を書きます。 nfs_server_enable="YES" portmap_enable="NO" 2. /etc/exports を書きます。 /tmp/nfs -maproot=root 210.***.***.186 クライアントのIPアドレスを書きます。 3. /etc/hosts.allow で portmap へのアクセスを許可します。 portmap : 210.***.***.186 : allow 4. /tmp/nfs にインストールフロッピーの中身を置きます。 ftp で boot.flp を拾って来ます。 boot.flp を vn デバイスを使ってマウントします。 vnconfig vn0 boot.flp mount /dev/vn0 /mnt /mnt の中身を /tmp/nfs にコピーします。 /tmp/nfs に kernel.gz があるので、これだけ解凍します。 gzip -d kernel.gz 5. マシンを再起動するか、nfsd と mountd と portmap を手動で 起動します。 Step5. FreeBSDのインストール 1. クライアントを再起動します。 2. 奇跡的にうまく行けば、 DHCP -> TFTP -> FreeBSDのインストールの 順に進みます。 3. 後はいつも通りインストールします。 参考文献 http://www15.big.or.jp/~yamamori/sun/pxe/intro.html http://akiba.to/diskless.html