【NFS】WindowsからNFS上のファイルがReadOnlyになる場合

NFS

WindowsからNFSサーバに接続してファイルを更新しようとしたら上書き禁止になって更新できない場合があるのでメモを残します。

Windows(NFSクライアント)の挙動

Windows(NFSクライアント)で何も指定しないでNFSに接続するとデフォルトでGID/UID:4294967294になります。
NFSサーバで所有者のみ読み書き可能、その他は読み込みのみにしてしまっている場合、Windowsでファイルを更新しようとしても権限がないため更新できません。

解決方法

Windows(NFSクライアント)でGID/UIDを設定して接続することでファイルの更新が可能になります。

具体的には下記の2STEPで解決します。
 ① GID/UIDのレジストリを書き換える ※コマンド記載あり
 ② サービス再起動か端末再起動

※UID/GID:0を設定するコマンドを記載してくれているサイトがありましたのでそのまま頂きました。
※root権限で接続するのはセキュリティ的によろしくないのでファイルのアクセス権を変更し、IDを変更してから利用して下さい。

reg add "HKLM\SOFTWARE\Microsoft\ClientForNFS\CurrentVersion\Default" /v AnonymousUid /t REG_DWORD /d 00000000 /f
reg add "HKLM\SOFTWARE\Microsoft\ClientForNFS\CurrentVersion\Default" /v AnonymousGid /t REG_DWORD /d 00000000 /f

それでも繋がらなければ…

NFSサーバ側の問題の可能性がありますので下記を確認してください。
・設定変更後に設定反映「exportfs -ar」を忘れていないか
・NFSサーバ側で「nfslock」のプロセスが稼働しているか
・「/etc/exports」の権限設定があっているか

最後に

WindowsでNFSクライアントを起動する場合、Windows Proを利用する必要があります。
Windows Proであれば、Hyper-VやRDPサーバ、NFSクライアントなど使える機能はたくさんあります。
Windows HomeかProかどちらを購入するか悩んでいる人がいるのであればProの購入をお勧めします。