Windows NFSを使用したファイル・システムの作成およびファイル・システムへの書込みの失敗

Windows NFSを使用してマウントされたファイル・システムでのファイルの作成または書込みのエラーをトラブルシューティングする方法を学習します。

重要

トラブルシューティングに進む前に、Windowsインスタンスからファイル・システムに接続するための次の前提条件を実装していることを確認してください:

症状: Windows NFSクライアントのインストール後、Windowsからファイル・システムを正常にマウントできますが、ファイル・システムでファイルを作成または更新しようとすると失敗します。

原因1: ルート・ユーザーにAnonymousGidおよびAnonymousUidをマップするレジストリ・エントリが欠落しているか、その場所が間違っています。

NFSファイル・システムにアクセスするには、UNIX形式のユーザーおよびグループのアイデンティティが必要です。これは、Windowsユーザーおよびグループのアイデンティティとは異なります。ユーザーがNFS共有リソースにアクセスできるようにするために、NFSのWindowsクライアントでは、AnonymousGidAnonymousUidを使用して匿名でファイル・システムにアクセスします。新しいファイル・システムでは、書込み権限はルート・ユーザーにのみ付与されます。

解決策: 適切なレジストリ・エントリがHKEY_LOCAL_MACHINE\Software\Microsoft\ClientForNFS\CurrentVersion\Defaultにあることを確認します。ない場合は、ルート・ユーザーにマップするためにAnonymousGidおよびAnonymousUidレジストリ・エントリを追加してから、新しいユーザー権限でファイル・システムを再マウントします。

ヒント

Windowsコマンドライン(CMD)ウィンドウを開き、引数を指定せずにmountコマンドを入力すると、マウントされたファイル・システムに対してAnonymousGidおよびAnonymousUidが正しく設定されていることを確認できます。マウントされているすべてのファイル・システムとそのプロパティのリストが表示されます。AnonymousGid (GID)およびAnonymousUid (UID)の値が0として表示されます。

例:

C:\>mount

Local    Remote                                 Properties
-------------------------------------------------------------------------------
X:       \\10.0.1.0\FileSystem                  UID=0, GID=0
                                                rsize=1048576, wsize=1048576
                                                mount=soft, timeout=0.8
                                                retry=1, locking=yes
                                                fileaccess=755, lang=ANSI
                                                casesensitive=no
                                                sec=sys

-2として表示される場合は、正しく設定されていません。次の手順に進みます。

AnonymousGidおよびAnonymousUidをルート・ユーザーにマップするには
  1. Windowsコマンドライン(CMD)ウィンドウで、次のように入力してファイル・システムをアンマウントします。10.x.x.x:を、マウント・ターゲットに割り当てられたローカル・サブネットIPアドレスに置き換え、fs-export-pathを、マウント・ターゲットにファイル・システムを関連付ける際に指定したエクスポート・パスに置き換え、Xを、ファイル・システムをマップする使用可能なドライブのドライブ文字に置き換えます。

    ヒント

    IPアドレスとエクスポート・パス情報は、ファイル・システムに関連付けられたマウント・ターゲットの詳細ページで確認できます。詳細は、マウント・ターゲットの詳細の取得を参照してください。
    umount 10.x.x.x:/fs-export-path X:
  2. レジストリ・エディタ(regedit)を開きます:

    • 「Windowsサーチ」をクリックします。
    • 「検索」フィールドにregeditと入力して[Enter]を押します。
    • 「はい」をクリックして、デバイスへの変更を許可します。
  3. HKEY_LOCAL_MACHINEをクリックします。次に、Software\Microsoft\ClientForNFS\CurrentVersion\Default.を参照します。
  4. AnonymousGidの新しいDWORD32レジストリ・エントリを追加します:

    • 「編集」をクリックし、新しいDWORD (32ビット)値を選択します。
    • 「名前」フィールドに、AnonymousGidと入力します。値は0のままにします。
  5. ステップ3を繰り返して、AnonymousUidという名前で、0の値を持つ2番目のDWORD32レジストリ・エントリを追加します。

  6. Windowsコマンドライン(CMD)を開き、管理者として実行します:

    • 「スタート」に移動し、「アプリ」までスクロールします。
    • 「Windowsシステム」セクションで、[Ctrl]+[Shift]を押し、「コマンド プロンプト」をクリックします。
  7. Windowsコマンドライン(CMD)ウィンドウで次のように入力してNFSクライアントを再起動します:

    nfsadmin client stop
    nfsadmin client start
  8. 管理者用のWindowsコマンド・プロンプト(CMD)ウィンドウを閉じます。標準のコマンド・プロンプト・ウィンドウを開きます:

    • 「スタート」をクリックし、「コマンド プロンプト」をクリックします。
    重要

    管理者としてマウントされたNFSファイル・システムを、標準ユーザーは使用できません。
  9. 標準のWindowsコマンドライン(CMD)ウィンドウで、次のように入力してファイル・システムをマウントします。10.x.x.x:を、マウント・ターゲットに割り当てられたローカル・サブネットIPアドレスに置き換え、fs-export-pathを、マウント・ターゲットにファイル・システムを関連付ける際に指定したエクスポート・パスに置き換え、Xを、ファイル・システムをマップする使用可能なドライブのドライブ文字に置き換えます。

    mount 10.x.x.x:/fs-export-path X:

原因2: 標準ユーザーが、管理者用コマンド・プロンプト(CMD)を使用してマウントされたファイル・システムにアクセスしようとしています。ファイル・システムのマウント時には、管理者としてコマンド・プロンプトを実行する必要はありません。

解決策: ファイル・システムをアンマウントした後、標準のコマンド・プロンプトを使用してファイル・システムを再マウントします。(CMD)

標準のコマンド・プロンプト(CMD)を使用してファイル・システムを再マウントするには
  1. Windowsコマンドライン(CMD)を開き、管理者として実行します:

    • 「スタート」に移動し、「アプリ」までスクロールします。
    • 「Windowsシステム」セクションで、[Ctrl]+[Shift]を押し、「コマンド プロンプト」をクリックします。
  2. 管理者用Windowsコマンドライン(CMD)ウィンドウで、次のように入力してファイル・システムをアンマウントします。10.x.x.x:を、マウント・ターゲットに割り当てられたローカル・サブネットIPアドレスに置き換え、fs-export-pathを、マウント・ターゲットにファイル・システムを関連付ける際に指定したエクスポート・パスに置き換え、Xを、ファイル・システムをマップする使用可能なドライブのドライブ文字に置き換えます。

    ヒント

    IPアドレスとエクスポート・パス情報は、ファイル・システムに関連付けられたマウント・ターゲットの詳細ページで確認できます。詳細は、マウント・ターゲットの詳細の取得を参照してください。
    umount 10.x.x.x:/fs-export-path X:
  3. 管理者用のWindowsコマンドライン・プロンプト(CMD)ウィンドウを閉じます
  4. 標準のコマンド・プロンプト・ウィンドウを開きます:

    • 「スタート」をクリックし、「コマンド プロンプト」をクリックします。
  5. 標準のコマンドライン(CMD)ウィンドウで、次のように入力してファイル・システムをマウントします。10.x.x.x:を、マウント・ターゲットに割り当てられたローカル・サブネットIPアドレスに置き換え、fs-export-pathを、マウント・ターゲットにファイル・システムを関連付ける際に指定したエクスポート・パスに置き換え、Xを、ファイル・システムをマップする使用可能なドライブのドライブ文字に置き換えます。

mount 10.x.x.x:/fs-export-path X: