Just another IT site ※IT系の記事は当方環境での実施内容となるため実施する場合は自己責任でお願いいたします。At Your Own Risk!! TURN BACK WHILE YOU CAN
PR

【完全版】WindowsでNFS共有をマウントする方法:書き込み権限の落とし穴まで徹底解説

※IT系の記事は当方環境での実施内容となるため実施する場合は自己責任でお願いいたします。スクリプトはAI生成のものも多いのでコピー&ペーストの際は文字コードに注意ください!
LinuxサーバーやNAS(QNAPやSynologyなど)のデータに、Windowsから直接アクセスしたいときに役立つのが「NFS(Network File System)」です。 [1, 2]
Windowsには標準で「Client for NFS」という機能が備わっていますが、初期状態では無効化されています。また、単純に有効化してマウントするだけでは「読み込みはできるのにファイルの保存や上書きができない(アクセス拒否)」というトラブルが多発します。 [1, 2]
この記事では、仕様上の注意点、正しいインストール手順、そして実用レベルで必須となる「書き込み権限のレジストリ修正」まで、正確な手順をわかりやすく解説します。

⚠️ 前提条件:Windows Homeエディションでは使えません
Client for NFS機能は、Windows 10/11 Pro、Enterprise、およびWindows Serverでのみサポートされています。
※ Windows Homeエディションには機能自体が搭載されていないため、Home環境の場合はLinux側にSMB(Samba)を導入することを検討してください。
※ また、Windows標準のNFSクライアントは、現状NFSv2およびNFSv3のみの対応(NFSv4のACLなどには非対応)となります。 [1, 2, 3]

🛠️ ステップ1:NFSクライアント機能の有効化
OSのエディションに合わせて、以下の手順で機能をインストールします。
Windows 10 / 11 Pro の場合
  1. キーボードの Win + R を押し、optionalfeatures と入力して「OK」をクリックします(「Windowsの機能の有効化または無効化」が直接開きます)。
  2. リストから「NFS 用サービス」を探して展開します。
  3. NFS クライアント」にチェックを入れます。
  4. 「OK」をクリックし、機能が適用されたら念のためPCを再起動します。 [1, 2]
Windows Server の場合
  1. 「サーバーマネージャー」を開き、右上メニューの「管理」から「役割と機能の追加」をクリックします。
  2. 「機能」の選択画面まで進めます。
  3. NFS クライアント」にチェックを入れ、インストールを完了させます。 [1]

🔑 重要:書き込み権限(UID/GID)のトラブル対策(事前設定)
実は、ここが最も重要です。
WindowsのNFSクライアントは、デフォルトで非常に大きな値(65534など)の匿名UID/GIDを使ってサーバーにアクセスします。このため、Linuxサーバー側で適切なパーミッション(書き込み権限)が一致せず、マウントは成功してもファイルの保存や上書き時に「アクセス拒否」エラーになります。 [1, 2, 3]
サーバー側が「誰でも書き込み許可(all_squash かつ anonuid=0 など)」にしている、あるいは一般的に広く使われている「root(UID=0, GID=0)」としてWindowsクライアントを認識させるには、マウントする前にWindows側で以下のレジストリ調整が必要です。 [1, 2]
レジストリの設定手順
  1. Win + R キーを押し、regedit と入力して「レジストリエディター」を起動します。
  2. 次のキーへ移動します:
    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\ClientForNFS\CurrentVersion\Default
  3. 右側の何もないところで右クリックし、[新規] > [DWORD (32ビット) 値] を選択します。
  4. 名前を「AnonymousUid」とし、値を「0」(10進数)のままにします。
  5. 同様にもう一つ [DWORD (32ビット) 値] を作成し、名前を「AnonymousGid」、値を「0」にします。
  6. 設定を反映させるため、コマンドプロンプト(管理者)で以下のコマンドを実行してNFSサービスを再起動(またはPCを再起動)します。
    cmd
    nfsadmin client stop
    nfsadmin client start
    
    コードは注意してご使用ください。

    [1, 2]


🔗 ステップ2:正確なコマンドでのマウント(接続)
Windowsの mount コマンドで最も間違いやすいのが、サーバーパスの区切り文字です。Linuxのようにスラッシュ(/)を使うとエラーになるケースがあります。Windows標準のNFSクライアントでは、UNCパス(バックスラッシュ \)形式、または「サーバーIP:/共有名」の形式を使用します。 [1]
管理者権限でコマンドプロンプト、またはPowerShellを開き、以下のいずれかの形式で実行します。
推奨コマンド形式(UNC形式)
cmd
mount -o fileaccess=777 \\【サーバーのIP】\【共有ディレクトリ名】 【割り当てたいドライブ文字】:
コードは注意してご使用ください。

💡 具体的な入力例:
サーバーのIPアドレスが 192.168.1.50、Linux側の共有ディレクトリが mnt/nas、空いている Z ドライブに割り当てたい場合:
cmd
mount -o fileaccess=777 \\192.168.1.50\mnt\nas Z:
コードは注意してご使用ください。

-o fileaccess=777 オプションを付与することで、Windows側でのローカルファイル権限の競合を防ぎ、スムーズな読み書きが可能になります。 [1]
標準的なLinux互換形式(これでも動作します)
cmd
mount 192.168.1.50:/mnt/nas Z:
コードは注意してご使用ください。

コマンド実行後、「Z: は現在 ____ に正常に接続されています」と表示されれば成功です。エクスプローラーの「PC」を開くと、ネットワークドライブとして Z: ドライブが出現します。 [1]

❌ 切断(アンマウント)の方法
NFS接続を解除したい場合は、コマンドプロンプトで以下のコマンドを入力します。
cmd
umount Z:
コードは注意してご使用ください。

Z: の部分は、ご自身が割り当てたドライブ文字に置き換えてください。 [1]

💡 トラブルシューティング:繋がらない場合のチェックリスト
万が一エラーが出る場合は、以下の3点を確認してください。
  1. ネットワーク(ファイアウォール)
    NFS通信では一般的に TCP/UDPのポート番号「2049」 が使用されます。Windows Defender ファイアウォールや、ルーター・サーバー側でこのポートが遮断されていないか確認してください。
    [1]
  2. サーバー側のエクスポート設定(/etc/exports
    Linuxサーバー側の設定ファイルで、WindowsクライアントのIPアドレスに対して適切なアクセス権限(rwsyncno_root_squash または all_squash)が許可されているか見直します。
  3. レジストリの再確認
    前述した AnonymousUid / AnonymousGid の綴りが間違っていないか(大文字小文字の区別など)、設定後にサービスやPCの再起動が行われているかを再度確認してください。
    [1, 2]

📝 まとめ
Windows標準のNFSクライアントは非常に軽量で強力ですが、「エディション制限」「UID/GIDによる書き込み権限の拒否」という2つの罠が潜んでいます。 [1, 2]
本記事で解説したレジストリ調整と、正しいパス形式のコマンドさえ押さえておけば、トラブルなく快適にLinux系ストレージとのファイル共有環境を構築できます。ぜひお試しください! [1]

タイトルとURLをコピーしました