<sect1 id="troubleshooting">
<!--O
 <title>Troubleshooting</title>
-->
 <title>トラブルシュート</title>
 <abstract>
 <para>
<!--O
   This is intended as a step-by-step guide to what to do when
   things go wrong using NFS.  Usually trouble first rears its
   head on the client end, so this diagnostic will begin there.
-->
   この節は、NFS をうまく使えない場合にどうすればよいか、
   段階を踏んで解説しようというものです。
   通常トラブルはクライアント側からその兆候を現しはじめるので、
   診断もそこから始めます。
 </para>
 </abstract>
  <sect2 id="symptom1">
<!--O
   <title>Unable to See Files on a Mounted File System</title>
   <titleabbrev id="sym1short">Symptom 1</titleabbrev>
-->
   <title>マウントしたファイルシステムでファイルが見えない</title>
   <titleabbrev id="sym1short">症状 1</titleabbrev>
     <para>
<!--O
       First, check to see if the file system is actually mounted.
       There are several ways of doing this.  The most reliable
       way is to look at the file <filename>/proc/mounts</filename>, 
       which will list all mounted filesystems and give details about them.  If
       this doesn't work (for example if you don't
       have the <filename>/proc</filename>
       filesystem compiled into your kernel), you can type 
       <userinput>mount -f</userinput> although you get less information.  
-->
       まず最初に、
       そのファイルシステムが実際にマウントされているのか確認してください。
       方法は何種類かありますが、
       一番確かなのは <filename>/proc/mounts</filename> を見ることです。
       ここにはマウントされているファイルシステムと、
       それらの詳細が一覧になっています。
       これがうまくいかなければ (例えば /proc ファイルシステムを
       カーネルに組み込んでいなかったとか)、<command>mount -f</command>
       と入力してみてください (示される情報は少なくなります)。
     </para>
     <para>
<!--O
       If the file system appears to be mounted, then you may
       have mounted another file system on top of it (in which
       case you should unmount and remount both volumes), or you 
       may have exported the file system on the server before you 
       mounted it there, in which case NFS is exporting the underlying 
       mount point (if so then you need to restart NFS on the 
       server).
-->
       ファイルシステムがマウントされているようなら、
       もしかしたらその上に別のファイルシステムを
       マウントしてしまったのかもしれません
       (この場合は両方のボリュームをアンマウントして、再マウントが必要です)。
       あるいはサーバでそのボリュームのエクスポートを、
       実際のマウントの前に行ってしまったのかもしれません。
       この場合 NFS はマウントポイントだけをエクスポートしてしまいます
       (この場合はサーバで NFS を再起動します)。
     </para>
     <para>
<!--O
       If the file system is not mounted, then attempt to mount it.
       If this does not work, see <xref linkend="symptom3" endterm="sym3short">.
-->
       ファイルシステムがマウントされていなければ、
       マウントしてみてください。
       できなければ <xref linkend="symptom3" endterm="sym3short"> へ。
     </para>
    </sect2>
    <sect2 id="symptom2">
<!--O
    <title>File requests hang or timeout waiting for access to the file.</title>
   <titleabbrev id="sym2short">Symptom 2</titleabbrev>
-->
    <title>ファイルリクエストがハングしたり、
    アクセス待ちでタイムアウトする</title>
   <titleabbrev id="sym2short">症状 2</titleabbrev>
     <para>
<!--O
      This usually means that the client is unable to communicate with
      the server.  See <xref linkend="symptom3" endterm="sym3short"> letter b.
-->
      通常これは、クライアントがサーバと通信できない場合に起こります。
      <xref linkend="symptom3" endterm="sym3short"> の b 項を見てください。
     </para>
    </sect2>
    <sect2 id="symptom3">
<!--O
     <title>Unable to mount a file system</title>
   <titleabbrev id="sym3short">Symptom 3</titleabbrev>
-->
     <title>ファイルシステムをマウントできない</title>
   <titleabbrev id="sym3short">症状 3</titleabbrev>
     <para>
<!--O
       There are two common errors that mount produces when
       it is unable to mount a volume.  These are:
-->
       ボリュームをマウントできない場合に
       mount が出すエラーは、ほぼ 2 種類です。
       それぞれを順に示しましょう。
      <orderedlist numeration="loweralpha">
       <listitem>
        <para>
          failed, reason given by server:
          <computeroutput>Permission denied</computeroutput>
        </para>
        <para>   
<!--O
          This means that the server does not recognize that you
          have access to the volume.  
-->
          これは、ボリュームへのアクセスを
          サーバから拒否されたときに出るメッセージです。
        </para>
        <orderedlist numeration="lowerroman">
          <listitem>
            <para>
<!--O
              Check your <filename>/etc/exports</filename> file and make sure that the
              volume is exported and that your client has the right
              kind of access to it.  For example, if a client only
              has read access then you have to mount the volume
              with the <userinput>ro</userinput> option rather
              than the <userinput>rw</userinput> option.
-->
              <filename>/etc/exports</filename> ファイルを調べて、
              そのボリュームがエクスポートされているか、
              クライアントが正しいアクセス権限を持っているかを確認しましょう。
              例えば、読み取りのアクセスしかないクライアントが、
              そのボリュームを <userinput>ro</userinput> オプションではなく
              <userinput>rw</userinput> オプションで
              マウントしようとしていないでしょうか。
            </para>
          </listitem>
          <listitem>
           <para>
<!--O
             Make sure that you have told NFS to register any
             changes you made to <filename>/etc/exports</filename> since starting nfsd
             by running the exportfs command.  Be sure to type
             <command>exportfs -ra</command> to be extra certain that the exports are
             being re-read.
-->
             nfsd の起動以降に <filename>/etc/exports</filename> 
             を変更した場合は、exportfs コマンドでそれを
             NFS に伝えたでしょうか。
             exports を確実に再読み込みさせるには、
             <command>exportfs -ra</command> コマンドを入力しましょう。
           </para>
          </listitem>
          <listitem>
           <para>
<!--O
             Check the file <filename>/proc/fs/nfs/exports</filename> and make sure the 
             volume and client are listed correctly.  (You can also
             look at the file <filename>/var/lib/nfs/xtab</filename> for an unabridged
             list of how all the active export options are set.)  If they 
             are not, then you have not re-exported properly.  If they
             are listed, make sure the server recognizes your
             client as being the machine you think it is.  For
             example, you may have an old listing for the client
             in <filename>/etc/hosts</filename> that is throwing off the server, or
             you may not have listed the client's complete address
             and it may be resolving to a machine in a different 
             domain.  One trick is login to the server from the
             client via <command>ssh</command> or <command>telnet</command>;
             if you then type <command>who</command>, one of the listings
             should be your login session and the name of your client
             machine as the server sees it.  Try using this machine name
             in your <filename>/etc/exports</filename> entry.
             Finally, try to ping the client from the server, and try
             to <command>ping</command> the server from the client.  If this doesn't work,
              or if there is packet loss, you may have lower-level network
              problems.
-->
             <filename>/proc/fs/nfs/exports</filename> ファイルを調べ、
             ボリュームとクライアントが正しくリストされているか確認しましょう。
             (<filename>/var/lib/nfs/xtab</filename> を見れば、
             アクティブなエクスポートすべてに対する
             完全なオプションのリストも得られます。)
             リストにない場合は、正しく再エクスポートされていません。
             リストにあった場合は、
             サーバがクライアントをあなたの意図通りに
             認識しているかを確認しましょう。
             例えばそのクライアントの古いリストが
             <filename>/etc/hosts</filename> にあって、
             サーバはこっちを見ているのかもしれません。
             あるいはクライアントの完全なアドレスを書いていないせいで、
             名前解決の結果がドメインの別のマシンになっているかもしれません。
             例えばクライアントからサーバに
             <command>ssh</command> や <command>telnet</command>
             でログインしてみましょう。
             ここで <command>who</command> と入力すると、
             自分のログインセッションがリストに出るはずで、
             あなたのクライアントマシンが
             サーバからどのような名前で見えているかがわかります。
             このマシン名を
             <filename>/etc/exports</filename> のエントリに書きましょう。
             最後に、サーバからクライアントを <command>ping</command> し、
             クライアントからサーバを <command>ping</command> してみましょう。
             これでもだめだったり、あるいはパケットロスがあった場合には、
             より下層のネットワークの問題でしょう。
           </para>
          </listitem>
          <listitem>
           <para>
<!--O
             It is not possible to export both a directory and its child
             (for example both
             <filename>/usr</filename> and <filename>/usr/local</filename>).
             You should export the parent directory with the necessary
             permissions, and all of its subdirectories can then be
             mounted with those same permissions.
-->
             あるディレクトリを、その子孫のディレクトリと
             同時にエクスポートする (例えば
             <filename>/usr</filename> と <filename>/usr/local</filename>)
             ことはできません。
             親ディレクトリを適切な許可属性でエクスポートすれば、
             そのサブディレクトリはすべて同じ許可属性でマウントできます。
           </para>
          </listitem>
        </orderedlist>
      </listitem>
      <listitem>
        <para>RPC: Program Not Registered (or another "RPC" error):</para>
        <para>
<!--O
          This means that the client does not detect NFS running
          on the server.  This could be for several reasons.
-->
          これはクライアントが、
          サーバで実行中の NFS を検知できなかったことを意味しています。
          いくつかの理由が考えられます。
        </para>
        <orderedlist numeration="lowerroman">
         <listitem>
          <para>
<!--O
            First, check that NFS actually is running on the
            server by typing <command>rpcinfo -p</command> on the server.
            You should see something like this:
-->
            最初に、NFS が実際にサーバで動作しているかを確認しましょう。
            サーバで <command>rpcinfo -p</command> と入力します。
            次のような表示が出るはずです。
         <screen>
   program vers proto   port
    100000    2   tcp    111  portmapper
    100000    2   udp    111  portmapper
    100011    1   udp    749  rquotad
    100011    2   udp    749  rquotad
    100005    1   udp    759  mountd
    100005    1   tcp    761  mountd
    100005    2   udp    764  mountd
    100005    2   tcp    766  mountd
    100005    3   udp    769  mountd
    100005    3   tcp    771  mountd
    100003    2   udp   2049  nfs
    100003    3   udp   2049  nfs
    300019    1   tcp    830  amd
    300019    1   udp    831  amd
    100024    1   udp    944  status
    100024    1   tcp    946  status
    100021    1   udp   1042  nlockmgr
    100021    3   udp   1042  nlockmgr
    100021    4   udp   1042  nlockmgr
    100021    1   tcp   1629  nlockmgr
    100021    3   tcp   1629  nlockmgr
    100021    4   tcp   1629  nlockmgr
  </screen>

<!--O
            This says that we have NFS versions 2 and 3, rpc.statd 
            version 1, network lock manager (the service name for 
            <command>rpc.lockd</command>) versions 1, 3, and 4.
            There are also different
            service listings depending on whether NFS is travelling over 
            TCP or UDP.  UDP is usually (but not always) the default 
            unless TCP is explicitly requested.
-->
            これらは、NFS の version 2 と 3、<command>rpc.statd</command>
            version 1、
            ネットワークロックマネージャ (サービス名は
            <command>rpc.lockd</command>)
            version 1, 3, 4 が動作中であることを示しています。
            また NFS が TCP を使っているか UDP を使っているかに応じて、
            別々のサービスリストが表示されています。
            TCP を明示的に要求した場合を除き、
            通常は (常にではありません) UDP がデフォルトになります。
          </para>
          <para>
<!--O
            If you do not see at least <computeroutput>portmapper</computeroutput>,            <computeroutput>nfs</computeroutput>, and
            <computeroutput>mountd</computeroutput>, then
            you need to restart NFS.  If you are not able to restart 
            successfully, proceed to <xref linkend="symptom9" endterm="sym9short">.
-->
            少なくとも
            <computeroutput>portmapper</computeroutput>,
            <computeroutput>nfs</computeroutput>,
            <computeroutput>mountd</computeroutput> がなければ、
            NFS を再起動しなければなりません。
            正しく再起動できないときは、
            <xref linkend="symptom9" endterm="sym9short"> に進んでください。
          </para>
         </listitem>
         <listitem>
          <para>
<!--O
            Now check to make sure you can see it from the client.
            On the client, type <command>rpcinfo -p </command>
            <emphasis>server</emphasis> where <emphasis>server</emphasis>
            is the DNS name or IP address of your server.
-->
            次にクライアントから調べましょう。
            クライアントで
            <command>rpcinfo -p </command>
            <emphasis>server</emphasis>  と入力します。
            <emphasis>server</emphasis> にはサーバの DNS 名か
            IP アドレスを入れてください。
          </para>
          <para>
<!--O
            If you get a listing, then make sure that the type
            of mount you are trying to perform is supported. For
            example, if you are trying to mount using Version 3
            NFS, make sure Version 3 is listed; if you are trying
            to mount using NFS over TCP, make sure that is
            registered.  (Some non-Linux clients default to TCP).
            Type <userinput>man rpcinfo</userinput> for more details on how
            See man rpcinfo for more details on how
            to read the output.  If the type of mount you are
            trying to perform is not listed, try a different
            type of mount.
-->
            リストが表示された場合は、
            実行しようとしているマウントのタイプがサポートされているか
            確認してください。 Version 3 NFS を使ってマウントしたい場合は、
            Version 3 がリストされているか確認します。
            NFS over TCP でマウントしたい場合は、
            それが登録されているか確認してください
            (Linux でないクライアントでは、
            TCP がデフォルトになっていることがあります)。
            出力の見かたに関するより詳しい情報を見るには
            <userinput>man rpcinfo</userinput> としてください。
            利用しようとしているマウントのタイプがリストにないときは、
            別のタイプのマウントを試してみてください。
          </para>
          <para>
<!--O
            If you get the error
            <computeroutput>No Remote Programs Registered</computeroutput>,
            then you need to check your <filename>/etc/hosts.allow</filename> and
            <filename>/etc/hosts.deny</filename> files on the server and make sure
            your client actually is allowed access.  Again, if the
            entries appear correct, check <filename>/etc/hosts</filename> (or your
            DNS server) and make sure that the machine is listed
            correctly, and make sure you can ping the server from
            the client.  Also check the error logs on the system
            for helpful messages: Authentication errors from bad
            <filename>/etc/hosts.allow</filename> entries will usually appear in 
            <filename>/var/log/messages</filename>,
            but may appear somewhere else depending
            on how your system logs are set up.  The man pages
            for <computeroutput>syslog</computeroutput> can 
            help you figure out how your logs are
            set up.  Finally, some older operating systems may
            behave badly when routes between the two machines
            are asymmetric.  Try typing <command>tracepath [server]</command> from
            the client and see if the word "asymmetric" shows up
            anywhere in the output.  If it does then this may
            be causing packet loss.  However asymmetric routes are
            not usually a problem on recent linux distributions.
-->
            <computeroutput>No Remote Programs Registered</computeroutput>
            というエラーが出たときは、
            サーバの <filename>/etc/hosts.allow</filename> ファイルと
            <filename>/etc/hosts.deny</filename> ファイルを調べて、
            クライアントのアクセスが本当に許可されているか確認してください。
            さらに、エントリが正しいようなら、
            <filename>/etc/hosts</filename> (あるいは DNS サーバ)
            を確認して、クライアントマシンが正しくリストされているか、
            サーバからクライアントに ping が打てるかを確認してください。
            システムのエラーログに何か参考になるメッセージが
            出ていないかも見てみましょう。
            <filename>/etc/hosts.allow</filename>
            のエントリが間違っている場合の認証のエラーは、
            通常 <filename>/var/log/messages</filename> に出ますが、
            システムログの設定によっては別のファイルかもしれません。
            <computeroutput>syslog</computeroutput>
            の man ページを見ると、ログ設定の理解の助けになるでしょう。
            最後に、古い OS では 2 台のマシン間の経路が対称的でないと、
            問題を生じることがあります。
            クライアントから <command>tracepath [server]</command> と入力し、
            出力に "asymmetric" という単語が出ないことを確認してください。
            最近の Linux ディストリビューションなら、
            経路が非対称であっても問題は生じないはずです。
          </para>
          <para>
<!--O
            If you get the error
            <computeroutput>Remote system error - No route to host</computeroutput>,
            but you can ping the server correctly,
            then you are the victim of an overzealous
            firewall.  Check any firewalls that may be set up,
            either on the server or on any routers in between
            the client and the server.  Look at the man pages
            for <command>ipchains</command>, <command>netfilter</command>, 
            and <command>ipfwadm</command>, as well as the 
            <ulink url="http://www.linuxdoc.org/HOWTO/IPCHAINS-HOWTO.html">IPChains-HOWTO</ulink>
            and the <ulink url="http://www.linuxdoc.org/HOWTO/Firewall-HOWTO.html">Firewall-HOWTO</ulink> for help.
-->
            <computeroutput>Remote system error - No route to host</computeroutput>,
            というエラーになり、しかし ping は届く場合には、
            きつすぎるファイアウォールの犠牲になったのでしょう。
            おそらくサーバ、またはサーバとクライアントの間に
            設置されているであろう、ファイアウォールを調べて下さい。
            情報は
            <command>ipchains</command>, <command>netfilter</command>, 
            <command>ipfwadm</command> の man ページや、
            <ulink url="http://www.linuxdoc.org/HOWTO/IPCHAINS-HOWTO.html">IPChains-HOWTO</ulink>
            (JF による<ulink url="http://www.linux.or.jp/JF/JFdocs/IPCHAINS-HOWTO.html">日本語訳</ulink>)
            とか
            <ulink url="http://www.linuxdoc.org/HOWTO/Firewall-HOWTO.html">Firewall-HOWTO</ulink>
            (JF による<ulink url="http://www.linux.or.jp/JF/JFdocs/Firewall-HOWTO.html">日本語訳</ulink>)
            等から得られます。
          </para>
         </listitem>
        </orderedlist>
      </listitem>
     </orderedlist>
    </para>
    </sect2>
    <sect2 id="symptom4">
<!--O
       <title>I do not have permission to access files on the mounted volume.</title>
       <titleabbrev id="sym4short">Symptom 4</titleabbrev>
-->
       <title>マウントしたボリュームで、
       ファイルにアクセスする権限がありません</title>
       <titleabbrev id="sym4short">症状 4</titleabbrev>
   <para>
<!--O
     This could be one of two problems.  
-->
     2 つの原因が考えられます。
   </para>
   <para>
<!--O
     If it is a write permission problem, check the export 
     options on the server by looking at <filename>/proc/fs/nfs/exports</filename>
     and make sure the filesystem is not exported read-only.  
     If it is you will need to re-export it read/write 
     (don't forget to run <command>exportfs -ra</command> after editing
     <filename>/etc/exports</filename>).  Also, check
     <filename>/proc/mounts</filename> and make sure the volume 
     is mounted read/write (although if it is mounted read-only 
     you ought to get a more specific error message).  If not then 
     you need to re-mount with the <userinput>rw</userinput> option.
-->
     書きこみの権限がない場合は、サーバの
     <filename>/proc/fs/nfs/exports</filename> を見て、
     エクスポートオプションを確認してください。
     そのファイルシステムは読み取り専用になっていないでしょうか。
     読み取り専用の場合は、
     読み書きモードで再エクスポートしなければなりません
     (<filename>/etc/exports</filename> を編集した後は
     <command>exportfs -ra</command> を忘れないように)。
     またクライアントの <filename>/proc/mounts</filename> も調べ、
     ボリュームが読み書きモードでマウントされているか確認しましょう
     (読み取り専用でマウントしている場合は、
     もうちょっと特定しやすいエラーメッセージが出ているでしょうが)。
     違っていたら <userinput>rw</userinput>
     オプションを付けて再マウントしましょう。
   </para>
   <para>
<!--O
     The second problem has to do with username mappings, and is
     different depending on whether you are trying to do this
     as root or as a non-root user.
-->
     2 つめの原因は、ユーザ名のマッピングに関係しており、
     root の場合と非 root の場合とで少々異なります。
   </para>
   <para>
<!--O
     If you are not root, then usernames may not be in sync on 
     the client and the server. Type <command>id [user]</command>
     on both the client and the server and make sure they give the 
     same <emphasis>UID</emphasis> number. If they don't then 
     you are having problems with NIS, NIS+, rsync, or whatever 
     system you use to sync usernames.  Check group names to make 
     sure that they match as well. Also, make sure you are not 
     exporting with the <userinput>all_squash</userinput> option.  
     If the user names match then the user has a more general
     permissions problem unrelated to NFS.
-->
     root でないときは、
     クライアントとサーバでユーザ名が一致していないかもしれません。
     クライアントとサーバの両方で <command>id [user]</command>
     を実行し、<emphasis>UID</emphasis> 番号が同じかどうか確認してください。
     異なっているときは、NIS, NIS+, rsync その他、
     ユーザ名の同期に用いているシステムに問題があります。
     グループ名が一致しているかも確認しましょう。
     また、エクスポートの際に
     <userinput>all_squash</userinput>
     オプションを指定していないかどうかも確認しましょう。
     ユーザ名が一致しているときは、
     そのユーザには NFS とは無関係な、
     より一般的な権限関連の問題があるものと思われます。
   </para>
   <para>
<!--O
     If you are root, then you are probably not exporting with
     the <userinput>no_root_squash</userinput> option; check <filename>/proc/fs/nfs/exports</filename>
     or <filename>/var/lib/nfs/xtab</filename> on the server and make sure the option 
     is listed.  In general, being able to write to the NFS
     server as root is a bad idea unless you have an urgent need -\-
     which is why Linux NFS prevents it by default.  See
     <xref linkend="security"> for details.  
-->
     root の時は、エクスポートの際に
     <userinput>no_root_squash</userinput>
     オプションを付けていないのではないでしょうか。サーバで
     <filename>/proc/fs/nfs/exports</filename> または
     <filename>/var/lib/nfs/xtab</filename> を調べ、
     オプションが指定されているか確認してください。
     ただし一般には、NFS サーバに root としての書きこみ権限を与えるのは、
     よほどの必要がない限り良い考えではありません
     (Linux NFS がデフォルトでこれを禁止している理由でもあります)。
     詳細は <xref linkend="security"> を見てください。
   </para>
   <para>
<!--O
     If you have root squashing, you want to keep it, and you're only 
     trying to get root to have the same permissions on the file that
     the user <emphasis>nobody</emphasis> should have, then remember that it is the server
     that determines which uid root gets mapped to.  By default, the
     server uses the <emphasis>UID</emphasis> and <emphasis>GID</emphasis> of 
     <emphasis>nobody</emphasis> in the <filename>/etc/passwd</filename> file,
     but this can also be overridden with the <userinput>anonuid</userinput> and 
     <userinput>anongid</userinput> options in the <filename>/etc/exports</filename> 
     file.  Make sure that the client and the server agree about which 
     <emphasis>UID</emphasis> <emphasis>nobody</emphasis> gets mapped to.
-->
     root squash を用いている場合は、そのままにしておくのがいいでしょう。
     root を取得しても、ファイルに対する権限は <emphasis>nobody</emphasis>
     のものと同じになります。
     ただし root がどの uid にマップされるかを決めているのは
     サーバであることも忘れないように。
     デフォルトでは、サーバは
     <filename>/etc/passwd</filename> ファイルの <emphasis>nobody</emphasis>
     エントリの <emphasis>UID</emphasis> と <emphasis>GID</emphasis>
     を使いますが、<filename>/etc/exports</filename> ファイルで
     <userinput>anonuid</userinput> オプションや
     <userinput>anongid</userinput> オプションを使えば、これらを変更できます。
     クライアントとサーバで、<emphasis>nobody</emphasis> にマップされる
     <emphasis>UID</emphasis> が同じになっているかも確認しておきましょう。
   </para>
 </sect2>
 <sect2 id="symptom5">
<!--O
  <title>When I transfer really big files, NFS takes over
   all the CPU cycles on the server and it screeches to a halt.
  </title>
  <titleabbrev id="sym5short">Symptom 5</titleabbrev>
-->
  <title>非常に大きなファイルを転送すると、
   NFS がサーバの CPU を取ってしまって、止まったようになってしまいます</title>
<!--nakano screeches to halt がいまいち-->
  <titleabbrev id="sym5short">症状 5</titleabbrev>
  <para>
<!--O
   This is a problem with the <function>fsync()</function> function in 2.2 kernels that
   causes all sync-to-disk requests to be cumulative, resulting
   in a write time that is quadratic in the file size.  If you
   can, upgrading to a 2.4 kernel should solve the problem.
   Also, exporting with the <userinput>no_wdelay</userinput> option 
   forces the program to use <function>o_sync()</function> instead, which may prove faster.
-->
   これは 2.2 カーネルの <function>fsync()</function> コールの問題で、
   すべての sync-to-disk リクエストを同時に行うからです。
   従って書きこみ時間がファイルサイズの二乗になってしまいます。
   可能なら、2.4 カーネルにすれば問題は解決します。
   またエクスポートに <userinput>no_wdelay</userinput> オプションを指定すれば、
   各プログラムはより高速な
   <function>o_sync()</function> を使うようになります。
  </para>
 </sect2>
 <sect2 id="symptom6">
<!--O
 <title>Strange error or log messages</title>
 <titleabbrev id="sym6short">Symptom 6</titleabbrev>
-->
 <title>ログに奇妙なエラーメッセージが出る</title>
 <titleabbrev id="sym6short">症状 6</titleabbrev>
 <para>
  <orderedlist numeration="loweralpha">
  <listitem>
   <para>
<!--O
  Messages of the following format:
-->
  次のようなフォーマットのメッセージ:
  </para>
  <para>
  <screen>
 Jan 7 09:15:29 server kernel: fh_verify: mail/guest permission failure, acc=4, error=13
 Jan 7 09:23:51 server kernel: fh_verify: ekonomi/test permission failure, acc=4, error=13
  </screen>
  </para>
  <para>
<!--O
   These happen when a NFS <computeroutput>setattr</computeroutput>
   operation is attempted on a
   file you don't have write access to. The messages are 
   harmless.
-->
   これらは NFS の <computeroutput>setattr</computeroutput> オペレーションが、
   書き込み権限のないファイルに対して試みられたときに起こります。
   これらのメッセージは無害です。
  </para>
 </listitem>
 <listitem>
 <para>
<!--O
 The following messages frequently appear in the logs:
-->
 次のようなメッセージがログに頻繁に現われる:
 </para>
 <para>
 <screen>
 kernel: nfs: server server.domain.name not responding, still trying
 kernel: nfs: task 10754 can't get a request slot
 kernel: nfs: server server.domain.name OK
 </screen>
 </para>
 <para>
<!--O
   The "can't get a request slot" message means that the client-side
   RPC code has detected a lot of timeouts (perhaps due to 
   network congestion, perhaps due to an overloaded server), and
   is throttling back the number of concurrent outstanding 
   requests in an attempt to lighten the load.  The cause of
   these messages is basically sluggish performance.  See
   <xref linkend="performance"> for details.
-->
   この "can't get a request slot" というメッセージは、
   クライアント側の RPC コードがタイムアウトをたくさん検出
   (おそらくはネットワークの混雑やサーバの過負荷のため)
   したために、同時要求数の値を小さくし、
   サーバの負荷を軽減しようとしていることを示しています。
   これらのメッセージの原因は、おそらくは性能が悪いためです。
   <xref linkend="performance"> を見てみてください。
 </para>
 </listitem>
 <listitem>
  <para>
<!--O
 After mounting, the following message appears on the client:
-->
 マウントした後、クライアントで次のようなメッセージが出る:
  </para>
  <para>
  <screen>
nfs warning: mount version older than kernel
  </screen>
  </para>
  <para>
<!--O
    It means what it says: You should upgrade your mount package and/or 
    am-utils. (If for some reason upgrading is a problem, you may be able
    to get away with just recompiling them so that the newer kernel features
    are recognized at compile time).
-->
    これは書いてあるとおりです。mount のパッケージや
    am-utils をアップグレードしてください
    (なんらかの理由でアップグレードできない場合は、
    コンパイルしなおして、
    新しいカーネルの機能がコンパイル時に認識されるようにするだけでも、
    取り合えずは回避できます)。
  </para>
 </listitem>
 <listitem>
  <para>
<!--O
    Errors in startup/shutdown log for <command>lockd</command>
-->
    起動時/終了時に <command>lockd</command> のログにエラーが出る:
  </para>
  <para>
<!--O
  You may see a message of the following kind in your boot log:
-->
  ブートログに次のようなメッセージが出ているのでしょうか:
 <screen>
nfslock: rpc.lockd startup failed
 </screen>
 </para>
 <para>
<!--O
   They are harmless.  Older versions of <command>rpc.lockd</command> needed to be
    started up manually, but newer versions are started automatically
    by <command>nfsd</command>.  Many of the
    default startup scripts still try to start
    up <command>lockd</command> by hand, in case
    it is necessary.  You can alter your
    startup scripts if you want the messages to go away.
-->
    これらは無害です。古いバージョンの <command>rpc.lockd</command>
    は手動で起動する必要がありました。しかし新しいバージョンでは
    <command>nfsd</command> によって自動的に起動されます。
    現在のデフォルトの起動スクリプトの多くは、
    まだ <command>lockd</command> を直接起動しようとしますが、
    これは不要なのです。
    このメッセージを止めさせたければ、起動スクリプトを変更すれば OK です。
 </para>
</listitem>
<listitem>
   <para>
<!--O
   The following message appears in the logs:
-->
   次のようなメッセージがログに現われる:
   </para>
   <para>
   <screen>
kmem_create: forcing size word alignment - nfs_fh
   </screen>
   </para>
   <para>
<!--O
     This results from the file handle being 16 bits instead of a
     mulitple of 32 bits, which makes the kernel grimace.  It is 
     harmless.
-->
     これはファイルハンドルが 32 ビットの倍数ではなく
     16 ビットであることから来ています。
     このためカーネルの機嫌がちょっと悪くなっているのです。無害です。
   </para>
  </listitem>
 </orderedlist>
 </para>
</sect2>
<sect2 id="symptom7">
 <title>
<!--O
   Real permissions don't match what's in <filename>/etc/exports</filename>.
-->
   実際のパーミッションが <filename>/etc/exports</filename> の指定と異なる
 </title>
<!--O
 <titleabbrev id="sym7short">Symptom 7</titleabbrev>
-->
 <titleabbrev id="sym7short">症状 7</titleabbrev>
 <para>
<!--O
  <filename>/etc/exports</filename> is <emphasis>very</emphasis> sensitive to whitespace - so the 
  following statements are not the same:
-->
  <filename>/etc/exports</filename> はスペースに
  <emphasis>非常に</emphasis> 敏感です。
  例えば以下の 2 行は同じではありません:
 <programlisting>
/export/dir hostname(rw,no_root_squash) 
/export/dir hostname (rw,no_root_squash) 
 </programlisting>
<!--O
  The first will grant <userinput>hostname rw</userinput>
  access to <filename>/export/dir</filename>
  without squashing root privileges. The second will grant 
  <userinput>hostname rw</userinput> privileges with 
  <userinput>root squash</userinput> and it will grant 
  <emphasis>everyone</emphasis> else read/write access, without 
  squashing root privileges. Nice huh? 
-->
<!--nakano Nice huh? は難しいな-->
  先の方は、<userinput>hostname</userinput>
  に <filename>/export/dir</filename>
  対する <userinput>rw</userinput> アクセスを与え、
  root 権限の禁止 (<userinput>root_squash</userinput>) はしていません。
  二番目のは、<userinput>hostname</userinput> に
  <userinput>rw</userinput> 権限を与えて
  <userinput>root_squash</userinput> を指定、
  そして「あらゆるホスト」に
  <userinput>rw</userinput> アクセスを与え、
  <userinput>root_squash</userinput> はしていません。
  わかりました?
 </para>
 </sect2>
 <sect2 id="symptom8">
<!--O
  <title>Flaky and unreliable behavior</title>
 <titleabbrev id="sym8short">Symptom 8</titleabbrev>
-->
  <title>おかしな、不安定な振舞いをする</title>
  <titleabbrev id="sym8short">症状 8</titleabbrev>
  <para>
<!--O
    Simple commands such as <command>ls</command> work, but anything that transfers
    a large amount of information causes the mount point to lock.
-->
    <command>ls</command> のような簡単なコマンドは動作するが、
    大量の情報を転送するような作業を行うとマウントポイントがロックする。
  </para>
  <para>
<!--O
    This could be one of two problems:
-->
    2 つの理由が考えられます。
  </para>
  <orderedlist numeration="lowerroman">
   <listitem>
    <para>  
<!--O
      It will happen if you have ipchains on at the server and/or the 
      client and you are not allowing fragmented packets through the
      chains.  Allow fragments from the remote host and you'll be able 
      to function again. See <xref linkend="firewalls"> for details on how to do this.
-->
      サーバやクライアントで ipchains を使っており、
      フラグメント化されたパケットがチェインを通れないようにしていると、
      このようなことが起こります。
      リモートホストからのフラグメントを許可すれば、再び機能するはずです。
      やり方は <xref linkend="firewalls"> を見てください。
    </para>
   </listitem>
   <listitem>
    <para>
<!--O
      You may be using a larger <userinput>rsize</userinput>
      and <userinput>wsize</userinput> in your mount options
      than the server supports.  Try reducing <userinput>rsize</userinput>
      and <userinput>wsize</userinput> to 1024 and
      seeing if the problem goes away.  If it does, then increase them 
      slowly to a more reasonable value.
-->
      マウントオプションの <userinput>rsize</userinput> や
      <userinput>wsize</userinput> に、
      サーバがサポートしているよりも大きな値を指定しているのかもしれません。
      <userinput>rsize</userinput> や <userinput>wsize</userinput> を
      1024 に減らして、問題が解決するか見てください。
      解決したら、再びゆっくりと、より適切な値に増やしてあげてください。
    </para>
   </listitem>
   </orderedlist>
   </sect2>
   <sect2 id="symptom9">
<!--O
   <title>nfsd won't start</title>
   <titleabbrev id="sym9short">Symptom 9</titleabbrev>
-->
   <title>nfsd が起動しない</title>
   <titleabbrev id="sym9short">症状 9</titleabbrev>
   <para>
<!--O
     Check the file <filename>/etc/exports</filename> and make sure root has read permission.
     Check the binaries and make sure they are executable.  Make sure
     your kernel was compiled with NFS server support.  You may need
     to reinstall your binaries if none of these ideas helps.
-->
     <filename>/etc/exports</filename> を調べ、
     root に対する読み取り許可があるか確認してください。
     バイナリを調べ、実行ファイルであるか確認してください。
     カーネルに NFS サーバのサポートが組み込まれているでしょうか。
     これらのいずれでも解決しなければ、
     バイナリをインストールしなおす必要があるかもしれません。
   </para>
  </sect2>
  <sect2 id="symptom10">
<!--O
   <title>File Corruption When Using Multiple Clients</title>
   <titleabbrev id="sym10short">Symptom 10</titleabbrev>
-->
   <title>複数のクライアントを使うとファイルが壊れる</title>
   <titleabbrev id="sym10short">症状 10</titleabbrev>
   <para>
<!--O
     If a file has been modified within one second of its 
     previous modification and left the same size, it will 
     continue to generate the same inode number.  Because
     of this, constant reads and writes to a file by
     multiple clients may cause file corruption.  Fixing
     this bug requires changes deep within the filesystem
     layer, and therefore it is a 2.5 item.
-->
     ファイルが修正されてから 1 秒以内に別の修正がなされ、
     その際にサイズが変わらなかった場合、
     同じ inode 番号が生成されます。
     このため、一つのファイルに複数のクライアントから
     連続的に読み書きが行われると、ファイルが壊れることがあります。
     このバグを修正するには、
     ファイルシステムの深い部分を変更しなければならないため、
     2.5 における課題になっています。
   </para>
  </sect2>
</sect1>

