Contents

組み込みクライアントを使用した Windows での NFS 共有のマウント

<本文>/images/enable-nfs-client-on-windows-11-or-10.png

最新の Windows バージョンには、NFS クライアントが組み込まれています。この Windows 機能により、Linux ホストまたは NAS デバイスから NFS ディレクトリを直接マウントできます。 SMB マップされたドライブへのアクセスと同様に、Windows ファイル エクスプローラーから NFS ボリューム上のファイルとフォルダーへの透過的なアクセスが可能になります。このガイドでは、Windows で NFS クライアントを有効にし、NFS ネットワーク ボリュームをマウントし、Windows ユーザーの Linux UID/GID へのマッピングを処理する方法について説明します。

Windows で NFS クライアントを有効にする方法

Windows 10 以降のすべての Windows バージョンで利用できる組み込みの NFS クライアントがあります。これにより、ユーザーは NFS ネットワーク ボリュームを直接マウントできます。デフォルトでは、NFS クライアントはインストールされません。これは、Windows の機能コントロール パネルから有効にできます。( optionalfeatures.exe コマンドを実行し、NFS サービス を展開して、管理ツールを含む NFS クライアントを有効にします。

/images/enable-nfs-client-on-windows-11-or-10.png.webp

または、PowerShell を使用して NFS クライアントのオプション機能を有効にすることもできます。

デスクトップ オペレーティング システム (Windows 10 および 11) の場合:

Enable-WindowsOptionalFeature-FeatureName ServicesForNFS-ClientOnly、ClientForNFS-Infrastructor-Online-NoRestart

Windows サーバーの場合:

インストール-WindowsFeature NFS-クライアント

/images/enable-windowsoptionalfeature-servicesfornfs-clien.png.webp

Windows で利用可能な NFS クライアント設定を一覧表示します。

Get-NfsClientConfiguration

/images/get-nfsclientconfiguration.png.webp

ファイル エクスプローラー、PowerShell、または CMD を使用して Windows に NFS 共有をマウントする

Windows での NFS ネットワーク ボリュームのマウントは、標準の共有ネットワーク フォルダー (SMB 共有) のマッピングと同様に、Windows エクスプローラーのグラフィカル インターフェイスを通じて実行できます。ファイル エクスプローラーで ネットワーク ドライブのマップ オプションを選択し、NFS 共有へのネットワーク パスを指定し (UNC 形式を使用します。たとえば、\\192.168.123.123\nfsshare )、割り当てるドライバー文字を指定します。

/images/mount-nfs-share-via-file-explorer-gui.png.webp

ただし、このモードでは、NFS 共有をマウントするための追加オプションを設定することはできません。

以下を使用して、コマンド プロンプトから NFS 共有をマウントする方が便利です。

  • mount.exe コンソールコマンド
  • New-PSdrive PowerShell コマンドレット

mount.exe)。これは、PowerShell では、

マウント

コマンドは、

新しいPSDrive

コマンドレット。

PowerShell プロンプトまたは Windows ターミナルからマウント コマンドを実行する場合は、必ずその名前と拡張子 (つまり) を指定してください。これは、PowerShell ではコマンドがコマンドレットのエイリアスであるためです。

/images/mount-command-is-an-alias-for-new-psdrive-cmdlet.png.webp

現在のユーザーとしてコマンド プロンプト (または PowerShell コンソール) を開きます。管理者として実行しないでください。管理者として実行しないと、マウントされた NFS ドライブがユーザーのファイル エクスプローラーに表示されなくなります (詳細については、投稿「管理者権限でネットワークにマップされたドライブにアクセスする」を参照してください)。

次のコマンドを実行して、NFS 共有をマウントします。

mount.exe-o anon \\192.168.123.123\nfsshare N:

/images/mount-exe-o-anon-nfs-share.png.webp

  • -o anon – 匿名ユーザーを使用して NFS フォルダーをマウントします
  • 192.168.123.123 – NFS サーバーの DNS 名または IP アドレス
  • /nfsshare – NFS サーバー上のディレクトリへのローカル パス。 NFSv3 を備えた Linux ホストを NFS サーバーとして使用する場合は、ファイル システムのルートから NFS ディレクトリへの完全なローカル パスを指定します。例: srv01:/mnt/nfs/public
  • N: – マップされたフォルダーに割り当てるドライブ文字

Windows とは異なり、大文字と小文字を区別したファイル名とディレクトリ名を使用する Linux との互換性を向上させるには、オプション casesensitive=yes を追加します。

または、NFS マウント コマンドと同等の PowerShell を使用します。

New-PSdrive-PSProvider ファイルシステム名 N-Root \\192.168.123.123\nfsshare-Persist

/images/new-psdrive-mount-nfs-volume-using-powershell.png.webp

Persist オプションを使用して、コンピュータの再起動後に NFS ディレクトリ接続が自動的に復元されるようにします (mount.exe コマンドにはこのオプションがありません)。

エクスプローラーでは、NFS フォルダー内のオブジェクトのプロパティに新しいタブ NFS 属性 が表示されることに注意してください。ここで、ファイルのアクセス許可と所有者に関する情報を見つけることができます。

/images/nfs-file-attributes-is-file-explorer-on-windows.png.webp

NFS ネットワーク共有上のファイルにキリル文字、アジア文字、西ヨーロッパ文字、またはその他の非ラテン文字が含まれている場合は、まったく表示されないか、文字化けしたテキスト (文字化け) として表示される場合があることに注意してください。これは、組み込みの Microsoft NFS クライアントがデフォルトでファイル名変換に Unicode ではなく従来の ANSI コードページを使用するためです。回避策として、Windows で UTF-8 サポートを有効にすることができます (これはまだベータ版です): intl.cpl を開き、管理 -> システム ロケールの変更 -> オプション「ベータ: 世界言語サポートに Unicode UTF-8 を使用する」にチェックを入れます。

/images/beta-use-unicode-utf-8-for-worldwide-language-sup.png.webp

NFS ネットワーク共有をアンマウントします。

削除-PSDrive N

または

umount.exe M:\

mount.exe コマンドを実行して、NFS ディレクトリがマウントされているオプションを表示します。

/images/mount-exe-default-uid-user-id-and-gid-group-id.png.webp

NFS サーバーに匿名で接続する場合、Windows はデフォルトで UID=-2 および GID=-2 を使用して、現在のユーザーを NFS サーバー上のユーザーにマップします。 NFS ボリュームを匿名でマウントするために特定の Linux UID (ユーザー ID) と GID (グループ ID) を使用する場合は、` HKLM\SOFTWARE\Microsoft\ClientForNFS\CurrentVersion\Default ' レジストリ キーの AnonymousUid パラメーターと AnonymousGid パラメーターでこれらの値をオーバーライドできます。

たとえば、次のオプションは、NFS クライアントがデフォルトの 2 の代わりに匿名接続にUID=0 および GID=0 (Linux root ユーザー) を使用するように強制します。

` 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 `

/images/change-anonymousuid-and-anonymousgid-in-the-regist.png.webp

変更を加えた後、NFS サービスを再起動します。

サービスの再起動 nfsrdr,nfsclnt-Force

Windows ユーザーの Linux ユーザー/グループへの NFS クライアント マッピングを構成する

ただし、匿名の NFS アクセスは安全ではありません。 Windows ユーザーの Linux ユーザー UID および GID へのマッピングを構成することをお勧めします。

AD ドメインでユーザー マッピングを有効にするには:

` Set-NfsMappingStore-EnableADLookup $true

Set-NfsMappedIdentity-MappingStore AD-UserName “j.smith”-UserIdentifier 1000-GroupIdentifier 100 `

uidnumber および gidnumber パラメータ値を AD ユーザー属性で編集するか、AD ユーザー属性のパラメータ値を編集します

Set-ADUser-identity j.smith-replace @{uidNumber="";gidNumber=""}

Linux では次のコマンドを使用してユーザーの UID と GID を取得できます。

$ ID ユーザー名

スタンドアロン マシン (ワークグループ内、または AD マッピングを使用したくない場合) では、C:\Windows\System32\drivers\etc ディレクトリにある passwd ファイルとグループ ファイルを使用して、Windows ユーザー名と Unix UID/GID マッピングを構成できます。

たとえば、ローカル ユーザー maxadm1 の場合:

passwd ファイルに以下を追加します。


user1:x:1000:100:maxadm1:C:\Users\maxadm1

ファイルグループ:


users:x:100:maxadm1

特定の Windows ユーザーの Linux UID/GID へのマッピングを確認するには、次のコマンドを使用します。

Get-NfsMappedIdentity-AccountName user1-AccountType User

/images/get-nfsmappedidentity-get-mapping-of-a-windows-u.png.webp

NFS サーバー サービスは、Windows Server プラットフォームにインストールできます。この目的のために、別の組み込みファイル サーバー ロール機能があります。

*️⃣ 出典リンク:

Install-WindowsFeature、管理者権限によるネットワーク マップされたドライブへのアクセス、、、AD ユーザー属性、Set-ADUser、