Windows11でNFS共有を使いたくて設定がうまくいかずモヤモヤしていませんか。
この記事を読むとWSLを使ってNFSをマウントしWindowsのアプリからそのままファイルを扱えるようになるまでの手順とつまずきやすいポイントが具体的にわかります。
| 項目 | 内容 |
|---|---|
| 独自コンテンツ1 | 実際に動かしたコマンドと設定ファイルの書き方を順を追って示しています。 |
| 独自コンテンツ2 | UID/GIDやパーミッションの合わせ方など運用でよく遭遇する問題の対処法を実例で説明しています。 |
| 独自コンテンツ3 | パフォーマンス改善と自動マウントのコツを盛り込み日常運用に役立つ設定を紹介しています。 |
難しい設定に見える部分も手順どおり進めれば確実に動くようにまとめてあるので気軽に取り組んでください。
Windowsマニア初めてでも大丈夫です落ち着いて一つずつやれば着実に使えるようになります困ったときは落ち着いて戻ってきてくださいここで紹介するコツが必ず助けになります。
Windows11でWSLを使ってNFS共有をマウントしてWindowsアプリで使う方法


Windows11でWSLを使ってNFS共有をマウントし、Windowsのアプリからその中身を直接使う方法をやさしく案内します。WSLを中継にすることで、WindowsとLinux間のファイル共有がスムーズになり、開発や編集作業が楽になります。
ここで紹介する手順は2つあります。まずはその場で手動マウントしてすぐ使う方法、次に再起動後も自動でマウントされるようにする方法です。
どちらもWindowsターミナルから手を動かすだけで設定できますので、初めてでも安心して進めてください。途中のポイントやトラブル対処もわかりやすく伝えます。
WSLでNFSを手動でマウントしてすぐに使う手順


まずは手動でマウントして動作確認をします。手順はWSLのディストロを起動して、マウント用フォルダを作り、sudo mountでNFSをマウントしてWindowsエクスプローラーからアクセスするだけです。
このやり方は短時間で結果が確認できるので、設定の比較やオプション試しにも向いています。問題がなければ次に自動マウント設定に進むと楽になります。
Windowsターミナルで対象のWSLディストロを起動する場所と操作
スタートメニューからWindowsターミナルを起動してください。タブがいくつかある場合は矢印メニューから使いたいWSLディストロを選びます。
コマンドプロンプトやPowerShellで wsl -d ディストロ名 と入力すると指定のWSLが起動します。ディストロ名は wsl -l -v で確認できます。
WSL内でマウント先フォルダを作るコマンドと場所
マウント先は一般的に /mnt 以下に置くと分かりやすいです。例として /mnt/nfs_share を使います。
mkdir -p /mnt/nfs_share を実行してフォルダを作成してください。sudoは不要なことが多いですが、権限エラーが出る場合は sudo を付けてください。
WSL内でsudo mount -t nfsを実行してNFSを手動マウントする具体コマンド
sudo mount -t nfs サーバー名:/エクスポートパス /mnt/nfs_share -o vers=4,proto=tcp を使います。例ではNFSv4をTCPで接続して安定性を高めています。
必要に応じて vers=3 にする、timeo や rsize,wsize を調整するなどで速度や安定性を試してください。オプション変更は再マウントで反映します。
Windowsエクスプローラーから\\wsl$\ディストロ\mnt\共有へアクセスする方法
- Windowsエクスプローラーを開いてアドレスバーに \\wsl$\ディストロ名\mnt\nfs_share と入力してください。ディストロ名は先ほど起動した名前を使います。
- Enterキーで開くとWSL内のフォルダが表示されます。ここから通常のファイル操作が可能です。
- 頻繁に使う場合はエクスプローラーのクイックアクセスにピン留めすると便利です。
WSLで自動マウントにして再起動後も使えるようにする手順


手動で問題なく使えたら、自動マウントにしておくと再起動後も便利です。方法はWSL内の /etc/fstab にNFSのエントリを追加するだけで、起動時に自動でマウントが試されます。
追加後は sudo mount -a で即座に反映できますし、Windowsを再起動して動作を最終確認するのがおすすめです。エントリの書き方に誤りがあるとマウントに失敗するので注意してください。
WSLの/etc/fstabにNFSエントリを追加するファイルと記述場所
| 項目 | 内容 |
|---|---|
| ファイル | /etc/fstab |
| 追記例 | サーバー名:/エクスポートパス /mnt/nfs_share nfs defaults,vers=4,proto=tcp 0 0 |
| 記述場所のポイント | ファイル末尾に1行で追加します。スペース区切りで項目を並べる点に注意してください。 |
WSLでsudo mount -aして自動マウントを反映させる確認手順
sudo mount -a を実行して /etc/fstab のエントリをすぐに反映させます。エラーメッセージが出たら行末のスペルやパスを見直してください。
mount | grep /mnt/nfs_share でマウント済みか確認します。出力があれば成功です。
Windowsエクスプローラーで \\wsl$\ディストロ名\mnt\nfs_share にアクセスしてファイルが見えるか確認してください。
Windows11でNFSを使った開発ワークフローの応用


NFSをWindows11の開発ワークフローに組み込むとファイル共有の切り替えが楽になります。WSLを経由してマウントするとWindows側のエディタやツールでそのまま開ける利点があります。
注意点はパーミッションや改行コードの取り扱いが環境ごとに違うことです。ここではVSCodeでの編集方法やDockerでのボリューム指定といった実用的な手順を優しく紹介します。
最初は小さなプロジェクトで動作確認してから本番データに接続すると安全です。問題が出ても落ち着いてログと権限を順に確認すれば解決できます。



まずは気軽に試してみてください。小さく動かして確認するだけで次の作業がぐっと楽になりますよ。
Windows11のVSCodeでNFS上のプロジェクトを開いて編集するやり方


VSCodeからNFS上のプロジェクトを扱うにはWSL経由でマウントしたパスをそのまま開くのが一番安定します。ファイルエクスプローラーで\\wsl$\ディストロ\mnt\共有を開き、対象フォルダをVSCodeで開いてください。
ウィンドウはプロジェクトごとに別ウィンドウで開くと拡張機能の干渉を避けられます。ターミナルはWSLを選んで開き、実行や依存関係の操作はWSL内で行ってください。
VSCodeで\\wsl$\ディストロ\mnt\共有を開く手順とウィンドウ操作
ファイルエクスプローラーのアドレスバーに\\wsl$\ディストロ\mnt\共有を入力して共有を表示します。目的のプロジェクトフォルダを見つけてください。
フォルダを右クリックして『Codeで開く』やVSCodeのメニューからフォルダを開きます。WSL側の環境が有効になっていることを確認してください。
プロジェクトごとに新しいウィンドウで開き、ターミナルはWSLを選んで使います。こうすると拡張機能や依存コマンドの混乱が起きにくくなります。
編集時に起きやすい権限や改行コードのトラブルを簡単にチェックする方法
- パーミッションの確認:WSL端末でls -lを使い所有者と権限を確認します。問題があればchmodやchownで調整します。
- 改行コードの確認:ファイルがWindowsでCRLFになっていると改行が崩れることがあります。VSCodeのEOL表示やdos2unixでチェックします。
- Git設定の確認:core.autocrlfやリポジトリの属性で改行を統一すると差分のノイズを減らせます。
Windows11でDockerコンテナからWSL上のNFSをボリュームとして使うやり方


DockerコンテナからWSL上のNFSを使う場合はDockerをWSL上で動かすのが一番スムーズです。そうすればdocker-composeでWSL内のパスをそのままボリュームに指定できます。
Windows側のDockerから直接WSLのパスへマウントするのは環境依存のトラブルが出やすいので、WSLターミナルでdocker-composeを実行する運用をおすすめします。
docker-compose.ymlでWSL内のNFSパスをボリューム指定するファイルと記述例
| 項目 | 内容 |
|---|---|
| ボリューム記述の基本 | services:の下でvolumesにWSLの絶対パスを指定します。例としてservices.app.volumes:-/mnt/shared:/appの形になります。 |
| 実行環境 | この記述を使うにはdockerとdocker-composeをWSL内で実行することが前提です。Windows側のDockerでは期待通り動かないことがあります。 |
| 注意点 | パーミッションや所有者をコンテナ側で適切に扱う設定が必要です。必要に応じて起動時にUIDやGIDを合わせてください。 |
コンテナ内からファイルの読み書きを確認して問題を切り分ける手順
コンテナのターミナルを開いて共有先ディレクトリに移動します。コンテナ内から実際のファイルが見えるか確認します。
新しいファイル作成や既存ファイルの編集を行い保存してみます。WSL側で変更が反映されるかを同時に確認します。
読み書きできない場合はコンテナのログとWSLのパーミッションを順に確認します。権限が原因なら所有者やモードを調整して再試行します。
よくある質問


- WSLでNFSをマウントしてもWindowsアプリから見えないことがあるのはなぜ
WSL2は軽い仮想マシンの中で動いているため、Linux側のファイルシステムはそのままではWindowsのプロセスから見えません。Windowsアプリからアクセスするなら\\\\wsl$\\<ディストロ名>\\path経由で開くか、Windows側で直接NFSをマウントするのがおすすめです。後者はファイルロックやパフォーマンス面で安定しやすいです。
- マウント時にPermission deniedが出る場合はどうすればよい
まずWSLにnfs-commonが入っているか確認してください。サーバーのexportsでクライアントIPと権限が許可されているかを確認し、必要ならマウントオプションでuidやgidを指定してみてください。root_squashやanon設定が原因になることが多いので、サーバー側の設定もチェックしてください。
- 起動時に自動でNFSをマウントするにはどうすればよい
/etc/fstabにマウント行を追加する方法がシンプルで使いやすいです。WSL2だと起動順の都合で失敗することがあるので、wslの起動時にrootでmount -aを走らせる短いスクリプトや、Windowsのタスクスケジューラでwslコマンドを実行する方法も安定します。
- NFSのバージョンやオプションで気をつけるポイントは何か
NFSv4は認証やファイアウォール周りが扱いやすく、初めに試す価値があります。ネットワークが高遅延だとメタデータ操作が遅く感じるので、tcpやrsize/wsizeの調整で改善することがあります。Windowsアプリから頻繁に小さなファイル操作をするなら、Windows側でマウントする方が速い場合が多いです。
- Windows側で直接NFSをマウントすることはできるか
はい。Windowsの機能でNFSクライアントを有効にすれば直接マウントできますが、エディションによっては利用できない場合があります。利用できないときはSMBに切り替えるか、WSLでマウントして\\\\wsl$経由で使う代替手段があります。
まとめ


ここまでの手順でWindows11上のWSLを使いNFS共有をマウントしてWindowsアプリで普通に使えるようにする流れをやさしく紹介しました。流れは分かりやすく3つです。WSLを有効化して好みのLinuxを入れ、Linux側でNFSをマウントし\\wsl$\\ディストロ名\\マウント先を通じてWindowsから開くだけです。
運用で気をつけたいポイントは権限まわりとマウントオプションです。uidやgidの指定やvers=4,proto=tcpなどのオプションで安定性が上がりますし自動マウントは/etc/fstabや起動スクリプトで設定すると便利です。Windows側のウイルス対策の除外設定やバックアップ運用も合わせて考えてください。



最初は戸惑う場面が出ますが落ち着いて一つずつ確かめながら進めれば必ず扱えるようになります安心して試してみてください。
NFSはファイルロックや大容量の連続書き込みでパフォーマンスが落ちることがあります。重要なデータはバックアップとアクセスパターンの見直しで守ってください。
