ディスク無しの X サーバ: 一つのガイド
Prev |  |

# 5. システムがネットワーク越しにブートすることを許可する (サーバ上で)

`/etc/inetd.conf` ファイルが tftp や bootps についてのエントリを持っているかどうかを確認してください。 わたしのは次のようになっています。

    tftp   dgram   udp wait    nobody  /usr/libexec/tftpd  tftpd /tftpboot
    #
    # Additions by who ever you are
    bootps  dgram  udp  wait  root  /usr/libexec/bootpd bootpd /etc/bootptab

もし `/etc/inetd.conf` ファイルを変更したときには、 inetd(8) に `HUP` シグナルを送ってください。 これをするには、`inetd` のプロセス ID を `ps -ax | grep inetd | grep -v grep` して 取得してください。プロセス ID がわかったら、 それに向けて HUP シグナルを送ってください。 これは `kill -HUP <pid>` として行います。 これによって `inetd` はその設定ファイルを読み直します。

ディスク無しシステム上でブートローダが出力した `addr` の出力を覚えているでしょうか? ここでそれが必要となるのです。

`/etc/bootptab` (おそらくファイルを作成して) に エントリを加えてください。それはこれと同様の書式で書きましょう。

    altair:\
            :ht=ether:\
            :ha=004001432666:\
            :sm=255.255.255.0:\
            :hn:\
            :ds=199.246.76.1:\
            :ip=199.246.76.2:\
            :gw=199.246.76.1:\
            :vm=rfc1048:

これらの行は次のような意味です。

`altair` | ドメイン名を除いたディスク無しのシステムの名前
`ht=ether` | “イーサネット”ハードウェアタイプ
`ha=004001432666` | (先に記録した) ハードウェアのアドレス
`sm=255.255.255.0` | サブネットマスク
`hn` | クライアントにクライアントのホスト名を送るよう、 サーバに伝えます
`ds=199.246.76.1` | ドメインサーバがどれなのかをクライアントに伝えます
`ip=199.246.76.2` | クライアントの IP アドレスが何なのかを クライアントに伝えます
`gw=199.246.76.1` | デフォルトゲートウェイがどれなのかを クライアントに伝えます
`vm=...` | これはそのままにしておいてください

> Note: IP アドレスは正しく設定してください。 上のアドレスはわたしだけのものです。

`/tftpboot` ディレクトリをサーバに作成して、 サーバがサービスを行うディスク無しのシステムのための設定ファイルをこのディレクトリに入れておきます。 これらのファイルは `cfg.`ip`` という名前になっていて、`ip` はディスク無しシステムの IP アドレスを表しています。 `altair` の設定ファイルは `/tftpboot/cfg.199.246.76.2` となります。この中身は次のようになっています:

    rootfs 199.246.76.1:/DiskLess/rootfs/altair
    hostname altair.example.com

`hostname altair.example.com` の行は単にディスク無しのシステムがどのような完全なドメイン名を持っているのかを表しています。

`rootfs 199.246.76.1:/DiskLess/rootfs/altair` の行はディスク無しのシステムが NFS でマウントできるルートファイルシステムの場所を表しています。

> Note: NFS でマウントされたルートファイルシステムは 読み出し許可だけで マウントされます。

ディスク無しのシステムの階層は要求されれば読み書き可能にして、 マウントし直すことができます。

わたしは予備の 386DX-40 を専用の X 端末として使用しています。

`altair` の階層は次の通りです。

/
/bin
/etc
/tmp
/sbin
/dev
/dev/fd
/usr
/var
/var/run

実際のファイルのリストは次の通りです。

    -r-xr-xr-x  1 root  wheel  779984 Dec 11 23:44 ./kernel
    -r-xr-xr-x  1 root    bin  299008 Dec 12 00:22 ./bin/sh
    -rw-r--r--  1 root  wheel     499 Dec 15 15:54 ./etc/rc
    -rw-r--r--  1 root  wheel    1411 Dec 11 23:19 ./etc/ttys
    -rw-r--r--  1 root  wheel     157 Dec 15 15:42 ./etc/hosts
    -rw-r--r--  1 root    bin    1569 Dec 15 15:26 ./etc/XF86Config.altair
    -r-x------  1 bin     bin  151552 Jun 10  1995 ./sbin/init
    -r-xr-xr-x  1 bin     bin  176128 Jun 10  1995 ./sbin/ifconfig
    -r-xr-xr-x  1 bin     bin  110592 Jun 10  1995 ./sbin/mount_nfs
    -r-xr-xr-x  1 bin     bin  135168 Jun 10  1995 ./sbin/reboot
    -r-xr-xr-x  1 root    bin   73728 Dec 13 22:38 ./sbin/mount
    -r-xr-xr-x  1 root  wheel    1992 Jun 10  1995 ./dev/MAKEDEV.local
    -r-xr-xr-x  1 root  wheel   24419 Jun 10  1995 ./dev/MAKEDEV

(FreeBSD 5.X において初期状態で有効になっている) devfs(5) を利用していないのであれば、`dev` ディレクトリで `MAKEDEV all` するのを忘れずに。

`altair` の `/etc/rc` は 次の通りです。

    #!/bin/sh
    #
    PATH=/bin:/
    export PATH
    #
    # localhost の設定
    /sbin/ifconfig lo0 127.0.0.1
    #
    # イーサネットカードの設定
    /sbin/ifconfig ed0 199.246.76.2 netmask 0xffffff00
    #
    # NFS で root ファイルシステムをマウントする
    /sbin/mount antares:/DiskLess/rootfs/altair /
    #
    # NFS で /usr ファイルシステムをマウントする
    /sbin/mount antares:/DiskLess/usr /usr
    #
    /usr/X11R6/bin/XF86_SVGA -query antares -xf86config /etc/XF86Config.altair > /dev/null 2>&1
    #
    # X を終了すると再起動
    /sbin/reboot
    #
    # うまく行かないときには....
    exit 1

コメントや質問はどんなものでも歓迎します。

Prev | Home |
ネットワークと通じてブートする |  |