この節では、ディスクレスクライアントで発生する可能性がある一般的な問題とその解決策について説明します。
問題:/usr ファイルシステムが nobody によって所有されているときにログインを試みると、ディスクレスクライアントから Owner of the module /usr/lib/security/pam_unix_session.so.1 is not root というメッセージが出力される。
対処方法:この問題を修正するには、次の対処方法に従います。
テキストエディタを使用して、ディスクレスクライアントの server:/export/root/client/etc/default/nfs ファイルを変更します。
#NFSMAPID_DOMAIN=domain 行を次のように変更します。
NFSMAPID_DOMAIN=the_same_value_as_in_server's_/var/run/nfs4_domain |
OS サーバーとディスクレスクライアントが同じ nfsmapid ドメインを使用していることを確認します。この情報を確認するには、/var/run/nfs4_domain ファイルを調べます。
ディスクレスクライアントの nfs4_domain ファイル内の値が、OS サーバーの /var/run/nfs4_domain ファイル内の値と異なっている場合は、ディスクレスクライアントのブート後にシステムにログインすることができません。
ディスクレスクライアントをリブートします。
詳細は、『Oracle Solaris カーネルのチューンアップ・リファレンスマニュアル』の第 3 章「NFS チューニング可能パラメータ」および nfsmapid(1M) のマニュアルページを参照してください。
問題:OS サーバーが次の処理に失敗する。
クライアントの RARP (Reverse Address Resolution Protocol) 要求に対する応答
クライアントの bootparam 要求に対する応答
ディスクレスクライアントのルート (/) ファイルシステムのマウント
ファイル環境で次の解決法を適用できます。
OS サーバーの /etc/nsswitch.conf ファイルの hosts、ethers、および bootparams の最初の参照元として files が設定されていることを確認します。
クライアントの IP アドレスが /etc/inet/hosts ファイルに含まれていることを確認します。
Solaris 10 8/07 以降のリリースを実行していない場合、クライアントの IP アドレスが /etc/inet/ipnodes ファイルに含まれていることも確認する必要があります。
この Oracle Solaris リリースでは、/etc/inet/hosts ファイルが、IPv4 エントリと IPv6 エントリの両方を含む単一のファイルとなります。常に同期させる必要がある 2 つの hosts ファイルに、IPv4 エントリを保持する必要はありません。/etc/inet/ipnodes ファイルは、下位互換性のために、 /etc/inet/hosts ファイルへの同名のシンボリックリンクに置き換えられています。詳細は、hosts(4) のマニュアルページを参照してください。
クライアントのイーサネットアドレスが /etc/ethers ファイルに表示されていることを確認します。
/etc/bootparams ファイルにクライアントのルート (/) ディレクトリとスワップ空間への次のパスが含まれていることを確認します。
client root=os-server:/export/root/ client swap=os-server: /export/swap/client |
スワップのサイズは、ディスクレスクライアントの追加時に -x swapsize オプションを指定したかどうかによって異なります。ディスクレスクライアントの追加時に -x dump オプションを指定した場合は、次の行が表示されます。
dump=os-server:/export/dump/client dumpsize=512 |
ダンプサイズも、ディスクレスクライアントの追加時に -x dumpsize オプションを指定したかどうかによって異なります。
OS サーバーの IP アドレスが /export/root/client/etc/inet/hosts ファイルに設定されていることを確認します。
OS サーバーが次の処理に失敗する。
クライアントの RARP 要求に対する応答
クライアントの bootparam 要求に対する応答
ディスクレスクライアントのルート (/) ファイルシステムのマウント
ネームサービス環境で次の解決法を適用できます。
OS サーバーとクライアントのイーサネットアドレスおよび IP アドレスが正しくマップされていることを確認します。
/etc/bootparams ファイルにクライアントのルート (/) ディレクトリとスワップ空間へのパスが含まれていることを確認します。
client root=os-server:/export/ root/client swap=os-server:/export/ swap/client swapsize=24 |
スワップのサイズは、ディスクレスクライアントの追加時に -x swapsize オプションを指定したかどうかによって異なります。ディスクレスクライアントの追加時に -x dump オプションを指定した場合は、次の行が表示されます。
dump=os-server:/export/dump/ client dumpsize=24 |
ダンプサイズも、ディスクレスクライアントの追加時に -x dumpsize オプションを指定したかどうかによって異なります。
ディスクレスクライアントパニック
対処方法:次の内容を確認します。
OS サーバーのイーサネットアドレスが IP アドレスに正しくマップされていることを確認します。システムをあるネットワークから別のネットワークに物理的に移動した場合、システムの新しい IP アドレスを再マップするのを忘れている可能性があります。
クライアントの RARP、TFTP (Trivial File Transfer Protocol)、または bootparam 要求に応答する「同じサブネット」にある別のサーバーのデータベースに、クライアントのホスト名、IP アドレス、およびイーサネットアドレスが存在しないことを確認します。インストールサーバーから OS をインストールするために、しばしばテストシステムがセットアップされます。このような場合、インストールサーバーはクライアントの RARP または bootparam 要求に対して、正しくない IP アドレスを返します。この不正なアドレスにより、間違ったアーキテクチャーのブートプログラムをダウンロードしたり、クライアントのルート (/) ファイルシステムのマウントが失敗したりしている可能性があります。
ディスクレスクライアントの TFTP 要求にインストールサーバー (または以前の OS サーバー) が応答しないことを確認します。このサーバーは不正なブートプログラムを転送しています。ブートプログラムのアーキテクチャーが異なる場合は、クライアントがただちにパニックになります。ブートプログラムが非 OS サーバーから読み込まれた場合、クライアントはそのルートパーティションを非 OS サーバー上に確保し、/usr パーティションを OS サーバー上に確保することがあります。この状況では、ルートおよび /usr パーティションのアーキテクチャーまたはバージョンが競合する場合、クライアントがパニックに陥ります。
インストールサーバーと OS サーバーの両方を使用している場合は、/etc/dfs/dfstab ファイルに次のエントリがあることを確認してください。
share -F nfs -o -ro /export/exec/Solaris_version- \ instruction-set.all/usr |
ここで、version は 8、9、10 であり、instruction-set は sparc または i386 です。
ディスクレスクライアントのルート (/)、/swap、/dump (指定されている場合) の各パーティションに次の共有エントリがあることを確認します。
share -F nfs -o rw=client,root=client /export/root/client share -F nfs -o rw=client,root=client /export/swap/ client share -F nfs -o rw=client,root=client /export/dump/ client |
OS サーバーで次のコマンドを入力し、共有されているファイルを確認します。
% share |
OS サーバーでは、ディスクレスクライアントを追加したときに指定した /export/root/client および /export/swap/client_name (デフォルト)、またはルート、/swap、/dump の各パーティションを共有する必要があります。
次のエントリが /etc/dfs/dfstab ファイルにあることを確認します。
share -F nfs -o ro /export/exec/Solaris_version- instruction-set.all/usr share -F nfs -o rw=client,root=client /export/root/ client share -F nfs -o rw=client,root=client /export/swap/ client |
OS サーバーがディスクレスクライアントの RARP 要求に応答しない
対処方法:クライアントの目的の OS サーバーから、次のクライアントのイーサネットアドレスを使って snoop コマンドをスーパーユーザー (root) として実行します。
# snoop xx:xx:xx:xx:xx:xx |
ブートプログラムをダウンロードしたが、プロセスの初期にパニックが発生した
対処方法:snoop コマンドを使用して、対象の OS サーバーがクライアントの TFTP および NFS 要求に応答するかどうかを確認します。
問題:ディスクレスクライアントがハングアップする
対処方法:OS サーバーで次のデーモンを再起動します。
# /usr/sbin/rpc.bootparamd # /usr/sbin/in.rarpd -a |
ディスクレスクライアントの RARP 要求に対するサーバーの応答が不正である
対処方法:OS サーバーで次のデーモンを再起動します。
# /usr/sbin/rpc.bootparamd # svcadm enable network/rarp |