入口
i386/current
  2007/01/27
  進行
  必要なもの
  入手
    1. pxeboot_ia32.bin
    2. netbsd-INSTALL.gz
  サーバ設定
    3. BOOTP/DHCP
    4. TFTP
    5. NFS
      /etc/exports
      /etc/rc.conf
    6. binary/sets
  問題

Software | Hardware

NetBoot

Last Update: "2009/04/29 07:54:54 makoto"

i386/current

以下に i386 の場合を示します。2007/01/27 に設定した時の記録ですが、 特に日付に関係する情報は入っていません。この日付に意味があるとすると、 下記の方法は、その時には少なくとも この方法で実際に動いていた、ということです。
また以下は -current に限定して書ていますが Release でも名前等を読替えれば同様に可能です。
もっと重要な点として、以下の話が成立つためには、目的機械(client) が Netboot に対応して いることが必要です。 HP サーバLet's Note 等であれば起動時に F12 を押すことで、その 場での対応が可能ですし、また常に netboot で起動するような設定も可能です。

2007/01/27

NetBSD-daily/HEAD at ki.nu (always points recent binary)
ftp://ftp.ki.nu/pub/NetBSD-daily/HEAD/arch/i386
HEAD map
ftp://ftp.ki.nu/pub/NetBSD-daily/HEAD/00map/index.html
NetBSD-daily/HEAD/
ftp://ftp.netbsd.org/pub/NetBSD/NetBSD-daily/HEAD/

進行

目的の機械を netboot により起動し、NetBSD の installer (sysinst) が実行されるまでの段階を示します:
  1. BOOTP/DHCP で MAC アドレスを伝え、 IPaddress, next-server, boot-file, root-path の四点を教わる
  2. next-server から tftp で boot-file を転送し、それを起動する
  3. boot-file (この場合 pxeboot_ia32.bin ) は root-path を NFS mount し、その中の netbsd を転送する
  4. netbsd (この場合 netbsd-INSTALL.gz) が起動し、sysinst を実行する

必要なもの

前項の段階が進むために必要なものは次の通りです。
項目 説明 入手元 設置・設定先(例)
1pxeboot_ia32.bin boot プログラム (base.tgz) /export/tftpboot/i386/pxeboot_ia32.bin
2netbsd-INSTALL.gz 標準設置系付 RAM Disk kernel ftp /export/tftpboot/i386/netbsd
3DHCP サーバ Host 構成の設定 /usr/share/example/etc /etc/dhcpd.conf
4TFTPサーバ pxeboot_ia32.bin ファイル転送サーバ /etc/inetd.conf
5NFS サーバ RAM Disk kernel ファイル提供サーバ /etc/exports, /etc/rc.conf
6binary/sets 設置用バイナリ一式 binary/sets sysinst の中で入力すれば良い
上記では 1 と 2 は単なるファイルです。一方 3 4 5 がサーバの設定、6 は NetBSD そのもの(全体) の実行形式です。 1 は 4 の、2 は 5 の設定の中に置きます。

入手

上記の一覧に挙げたものを入手し、設置・設定する手順を(上記の番号に一致した項番で) 書いて見ます。

1. pxeboot_ia32.bin

pxeboot_ia32.bin を入手する。 NetBSD-4.0 以降の場合には release(8) で分離されているので次のところから単独に持って来ます。 3.1 以前の版ではこれは base.tgz に含まれています。 ftp directory 等に
cd /tmp wget ftp://ftp.netbsd.org/pub/NetBSD/NetBSD-daily/HEAD/200701200000Z/i386/binary/sets/base.tgz wget ftp://ftp.ki.nu/pub/NetBSD-daily/HEAD/arch/i386/binary/sets/base.tgz tar zxvf base.tgz ./usr/mdec/pxeboot_ia32.bin ./usr/mdec/pxeboot_ia32.bin tar: ustar vol 1, 3792 files, 70010880 bytes read, 0 bytes written in 1 secs (70010880 bytes/sec)

2. netbsd-INSTALL.gz

netbsd-INSTALL.gz: これはそのものが binary/kernel の中に置いてあります。 amd64 の場合: i386 の場合:

サーバ設定

サーバとしては、三種類必要です。これらが同じ機械でも構いませんが、良くある問題として、 DHCP サーバが既に動いていて、それを利用(設定変更)出来るかどうかが少し問題になるかも知れません。 今回は、その DHCP サーバの設定を変更出来る場合を想定しています。

3. BOOTP/DHCP

dhcp サーバに次の設定をします。
host tc2120 { # HP machine second, with SCSI disk 
        hardware ethernet 00:08:02:f7:66:xx;
        fixed-address 192.168.1.210;
        filename="i386/pxeboot_ia32.bin";
        next-server 192.168.1.211;
        option root-path="/export/tftpboot/i386/";
}
設定項目 意味設定・指定時の方法、注意
host 目的機械の 名前 任意(自分で決める)
hardware ethernet 目的機械の MAC address 別途調べて、それを設定
fixed-address 目的機械の IP address 任意(自分で決める)
filename ブートプログラム名 実際には名前は何でもいいが pxeboot_ia32.bin を置いた名前
next-server TFTP/NFS サーバ の IP address利用{す|してい}る TFTP/NFS サーバの IP address
option root-path NFS サーバ側でのファイルの位置 netbsd-INSTALL.gz を置くディレクトリの PATH

4. TFTP

TFTP サーバの設定
/etc/inetd.conf の設定と、設定先に pxeboot_ia32.bin を置くことです。
tftp            dgram   udp     wait    root    /usr/libexec/tftpd      tftpd -l -s /export/tftpboot

5. NFS

/etc/exports の設定、/etc/rc.conf に nfs/mountd サーバ起動設定 をします。
/etc/exports
/export -maproot=0 -noresvport -noresvmnt -network 192.168.1.0    -mask 255.255.255.0   -alldirs
/etc/rc.conf
mountd=YES
nfs_server=YES
nfs_client=YES
nfsd=YES

6. binary/sets

これは sysinst の中 で指定します。媒体としては CDROM, FTP, NFS 等、何でもいいのですが、それなりに準備が必要 です。速い回線が利用出来るなら、 FTP を選び(自分で用意するではなく) 外部のサーバを利用するのが簡単です。 その場合には、 例えば、 ftp://ftp.ki.nu/pub/NetBSD-daily/HEAD/arch のように arch まで、最後の / 無で指定します。

問題

既に DHCP サーバが動いていて、設定変更が出来ないとします。 この時に、その他に別に DHCP または BOOTP サーバを用意して、 そちらを使うようにするには client 側でどのように操作したら良いですか ?
(答えは準備中)
Last Update: Sat, 07 Jun 2014 22:16:17 GMT 1.66 2008/03/08