ネットブート + NFSルートガイド HPPA編

注意

書きかけです!

他のアーキテクチャ

はじめに

昔のワークステーションであればかなり安く買えるようになりました。しかし、手に入れた計算機のハードディスクの容量が少なかったり、そもそも壊れていたりして使えない場合もあると思います。また、動くとしても何年も前のハードディスクを使いたくないと思うかもしれません。

ネットブート + NFSルートではサーバのハードディスクを利用するため、これらの問題に頭を悩ませる必要がなくなります(その代わりファイルアクセスが遅いということで頭を悩ますかもしれませんが)。

サーバの設定

サーバではnfsd、dhcpd、tftpdを動作させる必要があります。次のページおよびこのページの設定例を参考にしてデーモンのインストールおよび設定を行ってください。

設定例

nfsdのための設定

#/etc/exports
/export   192.168.0.0/255.255.255.0(rw,sync,no_root_squash)

dhcpdのための設定

#dhcpd.conf
option domain-name "local.example.com";
option domain-name-servers 192.168.0.1;
option subnet-mask 255.255.255.0;
default-lease-time 172800;
max-lease-time 259200;

subnet 192.168.0.0 netmask 255.255.255.0 {
    option routers 192.168.0.1;
    option subnet-mask 255.255.255.0;
    option broadcast-address 192.168.0.255;
    range 192.168.0.100 192.168.0.199;
}

host alpha{
    hardware ethernet 00:00:00:00:00:00;
    fixed-address 192.168.0.203;
    filename "/tftpboot/vmlinux-hppa";
    server-name "dhcp.local.example.com";
    next-server 192.168.0.1;
    option root-path "/export/hppa";
}

クライアントのインストール・設定

インストールCDから起動し、NFSファイルシステムをマウントできるように /etc/init.d/nfsmount start を実行します。次に、mount nfsserver:/export/hppa /mnt/gentoo というようにルートディレクトリとしてマウントしたいディレクトリをマウントしstage3を解凍してください。あとは基本的にハンドブックのインストール編第6章以降に従ってインストールを進めます。

注意しなければいけない点は、カーネルの設定および作成、/etc/fstabの設定、そしてネットワークの設定です。また、ハンドブックに書かれていないパッケージも入れる必要があります。

カーネルの設定および作成

まず、カーネルの設定ですが、IPアドレスをカーネルがDHCP経由で取得できるようにすること、NFSルートを可能にすること、そして使用するNICのドライバをカーネルに組み込む必要があります。make menuconfig などで普通にカーネルの設定を行ったあと(もちろんNICのドライバを組み込むことを忘れずに!)、.configをエディタで開き、一番最後に下の内容を追加するのが簡単な方法だと思います。これにより、最初の2つの設定を行ったことになります。

CONFIG_UNIX=y
CONFIG_IP_PNP=y
CONFIG_IP_PNP_DHCP=y
CONFIG_IP_PNP_BOOTP=n
CONFIG_IP_PNP_RARP=n

CONFIG_NFS_FS=y
CONFIG_ROOT_NFS=y

また、ネットブートが可能なカーネルを作成する作成するために、emerge palo を実行してpaloをインストールします。その後、/usr/src/linuxに以下の内容でpalo.confというファイルを作ります。

--init-tape=lifimage
--recoverykernel=vmlinux

--commandline=0/vmlinux root=/dev/nfs nfsroot=192.168.0.1 ip=dhcp

全ての準備が終わったら、ハンドブックにあるコマンドを実行し、最後に make palo を実行します。/usr/src/linuxにネットブート可能なカーネル lifimage が作成されますので、サーバの/tftpbootに置いてください。この時、dhcpd.confのfilenameで指定したファイル名になるよう変更してください。このページで使っている例ではvmlinux-hppaになります。

/etc/fstabの設定

ハンドブックではローカルのハードディスクをルートファイルシステムとしてマウントするようにfstabを書いていますが、NFSを使ってマウントするように記入します。

192.168.0.1:/export/hppa    /       nfs    rsize=1024,wsize=1024     0 0

ネットワークの設定

IPアドレスは起動時にカーネルが取得しますので、起動時に使うNICの設定は不要です。

インストールが必要なパッケージ

nfs-utils
ルートファイルシステムにNFSを使うので必要です。インストール終了後、rc-update add nfsmount default を実行してください。
ntp
時刻がサーバと同期していないと、コンパイル時に問題が発生する場合があります。オプションです。

起動

Firmwareで次のようにすると起動します。

boot lan

オートブート

毎回電源を入れるたびにブートコマンドを入力するのは面倒です。次のようにすれば自動的に起動してくれるようになります。うまくいかなかったら、configuration defaultで初期状態に戻して試してみてください。

configuration boot on
configuration path pri lan

DHCPサーバからIPアドレスを取得できない

まれに設定は問題ないはずなのにIPアドレスが取得できない場合があります。そういった事態に当たってしまった場合は、dhcpd を dhcpd -d で起動して情報を得てください。 もし、次のようなエラーの場合はサーバ側のNICを変更することで解決することがあります。

ip length 328 disagrees with bytes received 332.
accepting packet with data after udp payload.
parse_option_buffer: option unknown-233 (189) larger than buffer.