FreeBSD On ThinkPad X60

PXE boot

ThinkPad X60 は搭載しているチップセットの問題からか、 USB CD-ROM ドライブはおろか USB FDD からも FreeBSD 6.3-RELEASE のインストーラは起動できない。
そこで内蔵の NIC からネットワーク経由で起動する PXE ブートの機能を利用して FreeBSD のカーネルを起動してインストーラを実行する。

PXE とはネットワークブートのために Intel が策定した規格であり、 ネットワークからダウンロードしたブートイメージで起動する仕組みである。 そのために、電源を入れると DHCP サーバから IP アドレスと ブートイメージのファイル名を取得し、 tftp プロトコルを利用してブートイメージを取得し起動する。

今回は起動直後の IP アドレスの配布と FreeBSD のブートイメージのファイル名を通知するためにDHCP サーバ、 ブートイメージファイルを配布すせるために tftp サーバが必要になる。 更に PXE ブートした FreeBSD のカーネルは必要なファイルを NFS マウントした領域から参照するので NFS サーバも必要である。

インストールイメージの取得

FreeBSD 6.3-RELEASE のインストール CD の ISO イメージを取得して 必要なファイルを取り出す。 FreeBSD 6.3-RELEASE のインストーラが起動した後は 従来通りネットワークインストールが可能なので、 ファイルサイズの小さい bootonly イメージを取得する。
次に取得した ISO イメージをマウントする。
# mkdir -p /var/nfsroot
# fetch -o /var/tmp/6.3-RELEASE-i386-bootonly.iso ftp://ftp.jp.freebsd.org/pub/FreeBSD/ISO-IMAGES-i386/6.3/6.3-RELEASE-i386-bootonly.iso
# mdconfig -a -t vnode -f /var/tmp/6.3-RELEASE-i386-bootonly.iso
md1
# mount -t cd9660 /dev/md1 /var/nfsroot
mdconfig コマンドの引数に不足がありあましたので修正しました。 ご指摘ありがとうございました。

DHCP サーバの準備

既に DHCP サーバ動作している場合はPXE ブートに必要な設定を追加する。 DHCP サーバがインストールされていない場合は /usr/ports/net/isc-dhcp3-server をインストールして初期設定を完了させる。
host ホスト名{
	hardware ethernet XX:XX:XX:XX:XX:XX;              # MAC アドレス
	fixed-address YYY.YYY.YYY.YYY;                    # 付与するIPアドレス
	filename "pxeboot";                               # ブートイメージのファイル名
	option root-path "ZZZ.ZZZ.ZZZ.ZZZ:/var/nfsroot";  # NFS マウントするディレクトリ
}

TFTP サーバの準備

DHCP サーバが指定したブートイメージファイルを配布するために TFTP サーバを準備する。
TFTP サーバは通常 inetd 経由で実行されるので、 /etc/inetd.conf を編集して TFTP サーバを有効にする。
tftp	dgram	udp	wait	root	/usr/libexec/tftpd	tftpd -l -s /var/nfroot/boot

NFS サーバの準備

起動した FreeBSD のカーネルが NFS マウントするために NFS サーバを準備する。 /var/nfsroot を NFS で公開するために /etc/exports を編集する。
/var/nfsroot -maproot=root -alldir YYY.YYY.YYY.YYY
以前は /var/nfsroot/boot/loader.conf を修正する記述でしたが、 起動時にカーネルに直接指定する様に修正しました。 ご指摘ありがとうございました。

サーバの起動

ここまで準備したら各サーバを起動する
# /usr/local/etc/rc.d/isc-dhcpd forcestart
# /etc/rc.d/inetd forcestart
# /etc/rc.d/mountd forcestart
# /etc/rc.d/nfsd forcestart

ThinkPad の起動

電源投入直後の ThinkPad ロゴの画面で F12 キーを押下すると 起動デバイスの選択画面が表示されるので、 ネットワークデバイスを指定する。

Last Update: 4 Feb. 2010