FreeBSD 4.10 + NetBoot
はじめに
FreeBSD 4.10 + PXE でネットワークブート(NetBoot) をやってみました。
クライアント側のネットワークカードは、PXE(Preboot eXecution Environment)対応のネットワークアダプタINTEL PRO/100+ です。
ネットワーク環境はこんな感じ。
+---------------------------+
| HUB |
+---------------------------+
| |
+------------------+ +-------------------------+
| eden.hayagui.com | | mico.hayagui.com |
| 192.168.0.8 | | 192.168.0.7 (DHCP割付) |
| DNS Server | +-------------------------+
| TFTP Server |
| DHCP Server |
| NFS Server |
+------------------+
ちなみに、「NetBoot」とは、クライアント自身のローカルドライブからではなくてネットワーク経由で起動すること。
参考にしたページ
http://www15.big.or.jp/~yamamori/sun/pxe/
http://micho.mimora.com/pxeinst.txt
http://www.starbed.org/netboot/pxeboot_freebsd-j.html
INTEL PRO/100+のファーム更新
クライアントPCのBIOS設定で、ネットワークをブートデバイスの一番に設定して起動させたら、
PXE-EC1: Base-code ROM ID structure was not found.
のようなメッセージがでちゃいました。はて?
DELL のページから、「NIC のファームを更新する必要」があることを調べて、
INTEL のダウンロードページから、「Boot Agent ユーティリティ (FBOOT ユーティリティ)」を get して更新しました。
DNS Server
ネットワークにDNSを立てます。
「FreeBSD 4.4 + BIND8」を参考にしてやってください。ちなみに、今回の設定ファイルはこんな感じです。
- named.conf
-
options {
directory "/etc/namedb";
};
zone "." {
type hint;
file "named.root";
};
zone "localhost" {
type master;
file "localhost.zone";
};
zone "0.0.127.IN-ADDR.ARPA" {
type master;
file "localhost.rev";
};
zone "hayagui.com" {
type master;
file "hayagui.zone";
};
zone "0.168.192.in-addr.arpa" {
type master;
file "hayagui.rev";
};
- localhost.zone
-
$TTL 3600
@ IN SOA eden.hayagui.com. root.eden.hayagui.com. (
2004121801 ;
604800 ;
28800 ;
3600000 ;
2419200) ;
IN NS eden.hayagui.com.
IN A 127.0.0.1
- localhost.rev
-
$TTL 3600
@ IN SOA eden.hayagui.com. root.eden.hayagui.com. (
20041218 ; Serial
3600 ; Refresh
900 ; Retry
3600000 ; Expire
3600 ) ; Minimum
IN NS eden.hayagui.com.
1 IN PTR localhost.hayagui.com.
- hayagui.zone
-
$TTL 3600
@ IN SOA eden.hayagui.com. root.eden.hayagui.com. (
2004121801 ;
604800 ;
28800 ;
3600000 ;
2419200) ;
IN NS eden.hayagui.com.
eden IN A 192.168.0.8
mico IN A 192.168.0.7
jhon IN A 192.168.0.6
- hayagui.rev
-
$TTL 3600
@ IN SOA eden.hayagui.com. root.eden.hayagui.com. (
20041218 ; Serial
3600 ; Refresh
900 ; Retry
3600000 ; Expire
3600 ) ; Minimum
IN NS eden.hayagui.com.
8 IN PTR eden.hayagui.com.
7 IN PTR mico.hayagui.com.
6 IN PTR jhon.hayagui.com.
named を起動し、nslookup で動作を確認してください。
TFTP Server
tftpサーバを立てます。「FreeBSD 4.10 + tftp」を参考にしてください。
tftp のルートディレクトリに指定した /tftpboot に、/boot/pxeboot をコピーします。
eden# cp -p /boot/pxeboot /tftpboot
eden# chmod 444 /tftpboot/pxeboot
DHCP Server
次に DHCP サーバを立てます。dhcpd.conf を以下のように設定します。
server-identifier 192.168.0.8;
server-name "eden.hayagui.com";
option domain-name "hayagui.com";
option domain-name-servers eden.hayagui.com;
default-lease-time 600;
max-lease-time 7200;
ddns-update-style none;
log-facility local7;
subnet 192.168.0.0 netmask 255.255.255.0 {
range 192.168.0.6 192.168.0.7;
option routers 192.168.0.1;
option broadcast-address 192.168.0.255;
}
host mico {
hardware ethernet 00:20:e0:60:1b:e6;
fixed-address 192.168.0.7;
filename "pxeboot";
option root-path "192.168.0.8:/tmp/diskless/freebsd";
}
下のセクションは、以下のような意味を持ちます。
- MACアドレスが 00:20:e0:60:1b:e6 のクライアントからの要求の時は、192.168.0.7 というIPアドレスをリースする。
- PXEBoot のファイル名として pxeboot を通知する。
その後、クライアントはtftpでこのファイルを get することになる。
- クライアントが使用するNFS領域として 192.168.0.8:/tmp/diskless/freebsd を通知する。
dhcpd.conf の dhcpd_enable を YES に設定してください。
「FreeBSD 4.5 + DHCPサーバとクライアント」を参考にしてやってください。
NFS Server
クライアントはNFSサーバが提供するディスク領域を使用します。
FreeBSD 4.10 mini.iso のCDをマウントして、Kernelを含むファイルをNFS公開領域に保存します。
eden# mkdir /tmp/diskless
eden# mkdir /tmp/diskless/freebsd
eden# mount /cdrom
eden# cd /cdrom/bin
eden# cat bin.?? | tar zxvpf - --numeric-owner -C /tmp/diskless/freebsd
eden# cp /tmp/diskless/freebsd/kernel.GENERIC /tmp/diskless/freebsd/kernel
Kernel.GENERIC というファイルを Kernel にしておきます。
次に、http://www15.big.or.jp/~yamamori/sun/pxe/freebsd.html を参考にして、
クライアントが使う rc.confとfstab を設定します。
- /tmp/diskless/freebsd/etc/rc.conf
-
root_rw_mount="YES"
nfs_client_enable="YES"
- /tmp/diskless/freebsd/etc/fstab
-
192.168.0.8:/tmp/diskless/freebsd / nfs rw 0 0
NFSサーバの設定として、/etc/exports を書きます。IPアドレスはクライアントのIPアドレスです。
/tmp/diskless/freebsd -maproot=root 192.168.0.7
NFS サーバを起動します。showmount でマウント状況を確認します。
eden# portmap
eden# nfsd -u -t -n 4
eden# mountd -r
eden# showmount -e
Exports list on localhost:
/tmp/diskless/freebsd 192.168.0.7
次回起動用に、rc.conf に以下の行を追加します。
portmap_enable="YES"
nfs_server_enable="YES"
nfs_server_flags="-u -t -n 4"
mountd_flags="-r"
さて、これで一通り設定終了。
やってみよう。
動いたー!
戻る
|