FD も CD/DVD ドライブもない PC に FreeBSD をインストールする
TOP > チョロっとFreeBSD > FD も CD/DVD ドライブもない PC に FreeBSD をインストールする
目次

1 PXE を利用した FreeBSD インストール

PC が LAN からブートできる場合、PXE を利用してインストールできます。
ただし、ネットワークドライバが fxp でないとだめなようです。東芝のノートPCだと大丈夫でした。
母艦となる PC (FreeBSD) がローカルネットワーク上にあることが前提で、IP は 192.168.0.10 としていますので、ご自身の環境に読み替えて下さい。

1.1 準備及び確認事項

  1. インストールするPC(以降クライアントPC)で PXE が動作するようにBIOSを設定
  2. 起動順位を HDD より LAN の方を先にしておきます。

  3. クライアントPCのMACアドレスをメモします。
  4. これは、PXEの動作時に表示されます。例) MAC 00:00:21:98:3B:12

  5. FreeBSD のCDまたはISOイメージを準備
  6. ISOイメージをCDに焼いても、そのままでもOKです。
    ISOイメージのままの場合、ISOイメージをマウントする必要があります。
    FreeBSD の ISO(i386)イメージは ftp://ftp-archive.freebsd.org/pub/FreeBSD-Archive/old-releases/i386/ISO-IMAGES/ にあります。
    たいてい、disc1 がブートCD でインストールには、disc1 を使います。

  7. ルーターの設定
  8. ローカルネットワークにルーターがあれば、ルーターのDHCPは無効にしておきます。

1.2 母艦(サーバーPC)の設定

母艦となるPC(サーバーPC)には
1.2.1 tftp
1.2.2 NFS
1.2.3 DHCP
が動作している必要があります。

1.2.1 tftpの設定

tftpの設定は割と簡単で
/etc/inetd.conf で

tftp dgram udp wait root /usr/libexec/tftpd tftpd -s /cdrom/boot
のように、tftp の行を生かしてやります。

FreeBSD 6.x の場合、デフォルトでは inetd.conf は無効なので、
/etc/rc.conf に
inetd_enable="YES"
にしてから、PCを起動しておく必要があります。

既に inetd が動いているなら、
kill -HUP `cat /var/run/inetd.pid`
で inetd が再起動します。

/etc/hosts.allow で許可するのをよく忘れるのですが、
tftpd : localhost : allow
tftpd : 127.0.0.1 : allow
tftpd : 192.168.0.0/225.225.225.0 : allow
tftpd : ALL : deny
で良いはずですが、うまくいかなかったので、
インストールする間まで、
ALL : ALL : allow 
の一行にしています。ただし、これはセキュリティ上非常に危険なので、インストールが終れば、すぐに元に戻します。

1.2.2 NFSの設定

/etc/rc.conf で

nfs_server_enable="YES"
portmap_enable="YES"
とします。

/etc/exports で
/cdrom -network 192.168.0.0 -mask 255.255.255.0
とします。

1.2.3 DHCPのインストールと設定

1.2.3.1 DHCPのインストール

/usr/ports/net/isc-dhcp3-server でインストール
FreeBSD 4.X系で /etc/rc.subr がないとエラーが出れば、
/usr/ports/sysutils/rc_subr をインストールして、
ln -s /usr/local/etc/rc.subr /etc/rc.subr
とリンクを張ってやればよいです。

1.2.3.2 DHCPの設定

/etc/dhcpd.conf を下記のようにします。

server-identifier	192.168.0.10; ←(*1)
default-lease-time		3600;
max-lease-time 			7200;
ddns-update-style 		none;

subnet 192.168.0.0 netmask 255.255.255.0 {
	range 192.168.0.100 192.168.0.150; ←(*2)
	option routers 192.168.0.1;
	option subnet-mask 255.255.255.0;

	host pxeboot {
		hardware ethernet 00:00:21:98:3B:12; ←(*3)
		fixed-address 192.168.0.101; ←(*4)
		filename "pxeboot"; ←(*5)
		option root-path "192.168.0.10:/cdrom"; ←(*6)
	}
}
(*1) server-identifier 母艦(サーバーPC)のIP
(*2) range DHCPで割り当てるIPの範囲
(*3) hardware ethernet クライアントPCのMACアドレス
(*4) fixed-address DHCPでクライアントPCに割り当てるIP
(*5) filename "pxeboot";FreeBSDのCDにあるブートファイル、通常"pxeboot"のままです。
(*6) option root-path "母艦(サーバーPC)のIP:/cdrom"

/etc/rc.conf で
dhcpd_enable="YES"
dhcpd_conf="/etc/dhcpd.conf"
dhcpd_ifaces="ed0" ←母艦(サーバーPC)のネットワークアダプタ

1.2.3.3 DHCPの起動

/usr/local/etc/rc.d/isc-dhcpd.sh start
で起動します。

1.2.4 インストールメディアのセット

1.2.4.a CDを使う場合

サーバーPCにFreeBSDのCDをセットして、
# mount /cdrom 

**注意** CDをセットしたままサーバーPCを再起動すると、母艦(サーバーPC)にFreeBSDのインストーラーが起動してしまいます。

1.2.4.b ISOイメージを使う場合 (FreeBSD 4.x の場合)

FreeBSD 4.x の場合、kernel に擬似ディスクデバイス「vn」が組込まれている必要があります。
つまり、kernelコンフィグファイルに
pseudo-device vn
が記載されて、kernelが構築されているということです。

ちなみに、kernel の再構築は、kernelコンフィグファイルを
/usr/src/sys/i386/conf/TFTP とすると、
# cd /usr/src/sys/i386/conf
# config TFTP
# cd ../../compile/TFTP
# make depend
エラーが出ないことを確認して、
# make
# make install
ここで、再起動すれば、新しい kernel でたちあがります。

やっと本題のISOイメージのマウントですが、

# vnconfig -c /dev/vn0 ISOイメージ
# mount -t cd9660 -o ro /dev/vn0 /cdrom
アンマウントは、
# umount /cdrom
# vnconfig -u /dev/vn0

1.2.4.c ISOイメージを使う場合 (FreeBSD 6.x の場合)

FreeBSD 6.x の場合、kernel に擬似ディスクデバイス「md」が最初から設定されているので、kernel をいじる必要がありません。

ISOイメージのマウントは、

# mkdir /cdrom ← /cdrom ディレクトリがない場合、作成します。
# mdconfig -a -t vnode -f ISOイメージ
# mount -t cd9660 -o ro /dev/md0 /cdrom
アンマウントは、
# umount /cdrom
# mdconfig -d -u 0

1.3 FreeBSDのインストール開始

1.1 準備及び確認事項で準備したように、クライアントPCのBIOSで、LANがHDDより先にブートするように設定して起動します。
すると、めでたくクライアントPCでFreeBSDのインストーラーが起動します。
インストールメディアの設定では、NFSを選択し、192.168.0.10(サーバーPCのIP):/cdrom とします。

1.4 FreeBSD 6.x系をインストールする場合の注意

1.ネットワークブートが始まり、DHCPでIPアドレスが割り当てられ、
2.TFTPでPXEのブートコード(pxeboot)がサーバからダウンロードされ,
3.pxebootが動き、NFSでカーネルが読み込まれ、
4.FreeBSD 6.x のブート画面がでても、
5.インストーラではなく、ログインプロンプトが出て、
6.強引に /usr/sbin/sysinstallを動かして、
7.そのままインストールを試みても、
8.読み込み専用でディレクトリを作れないというメッセージが出て、
9.強引に進めてもうまくいかない。

この場合、
http://www.wheel.gr.jp/~dai/freebsd-cft4/freebsd62r.html
を参考にさせていただきました。

これをまとめると、
4.FreeBSD 6.x のブートメニューが出た段階でローダプロンプトを表示させます。
つまり、ブートメニューの [6.Escape to loader prompt} を選択。
「OK」プロンプトのところでboot -aと入力。
しばらく、デバイスの検出に時間がかかりますが、それが終わると、
mountroot>
というプロンプトが出て、ルートデバイスをどれにするかを尋ねられるので、
ufs:/dev/md0c と入力。
すると、インストーラが起動し、国の選択画面になり、
おなじみのsysinstall画面がでてきて、めでたしめでたし。
インストールメディアの設定では、NFSを選択し、192.168.0.10(サーバーPCのIP):/cdrom とします。

TOP > チョロっとFreeBSD > FD も CD/DVD ドライブもない PC に FreeBSD をインストールする
http://www.yumi-chan.com/