【WSL2爆速化】新機能「virtiofs」を有効にしてファイルアクセス速度を2倍にする方法と手順【Windows 11】

Windows 11でWSL2を利用して開発していると、Windows側とLinux側の間(いわゆる/mnt/cなど)のファイルアクセス速度が遅いと感じることがあるかもしれません。

特に、プロジェクトのソースコードをWindows側に置き、WSL2上のNode.jsやPythonから読み込んでビルドやパッケージのインストールを実行すると、非常に時間がかかる場合があります。これは、従来使用されていた「9p」と呼ばれるネットワーク共有プロトコルのオーバーヘッドが原因です。

この課題を根本的に解決するため、最新のWSL2では新しいファイルシステム共有プロトコル「virtiofs」が導入されました。本記事では、このvirtiofsを有効にしてファイルアクセス速度を向上させるための手順を詳しく解説します。

この記事で行うこと

  • WSL2のバージョンを確認し、必要に応じてプレリリース版にアップデートします
  • .wslconfig ファイルを編集してvirtiofsを有効化します
  • 設定後の動作確認および元の状態に戻す手順を説明します

前提条件

  • OS:Windows 11(バージョン 22H2 以降推奨)
  • WSLのインストール方法および管理者権限で実行できるPowerShell環境
  • メインの作業環境としてWSL2を使用していること

注意点

  • virtiofsは、2026年現在も一部の環境ではオプトイン(手動で有効化する機能)となっています
  • バージョンが古いWSLでは機能が利用できないか、動作が不安定になる可能性があります
  • 設定の変更を適用するには、すべてのWSLディストリビューションを一度シャットダウンする必要があります

手順1:WSLのバージョンを確認・アップデートする

まず、お使いの環境のWSLがvirtiofsに対応しているか確認します。 PowerShellを起動し、以下のコマンドを実行します。

wsl --version

出力結果に表示される「WSL バージョン」を確認してください。対応する最新機能を使用するために、以下のコマンドでWSLを最新の状態にアップデートすることをおすすめします。

wsl --update

プレリリース版の機能を含めて最新化する場合は、以下のコマンドを実行します。

wsl --update --pre-release

手順2:.wslconfig ファイルを編集して virtiofs を有効化する

WSLのグローバル設定ファイルである .wslconfig に設定を追加します。

このファイルは、Windowsユーザープロファイルフォルダーの直下に配置します。 具体的には、以下のパスです(ユーザー名はご自身のWindowsアカウント名に置き換えてください)。

C:\Users\ユーザー名\.wslconfig

エクスプローラーのアドレスバーに %USERPROFILE% と入力してEnterキーを押すと、対象のフォルダーを簡単に開くことができます。

ファイルが存在しない場合は、新規にテキストファイルを作成し、ファイル名を .wslconfig に変更してください(拡張子の .txt が残らないように注意してください)。

作成した .wslconfig ファイルをテキストエディターで開き、以下の内容を記述して保存します。

[wsl2]
virtiofs=true

すでに他の設定が記載されている場合は、[wsl2] セクションの配下に virtiofs=true を追加してください。

手順3:WSL2を再起動して設定を適用する

設定を反映させるために、実行中のWSLを完全にシャットダウンします。 PowerShellで以下のコマンドを実行してください。

wsl --shutdown

コマンドの実行後、再度WSLのターミナル(Ubuntuなど)を起動すると、自動的に新しい設定が反映されます。

パフォーマンスの確認

virtiofsが有効になっているか確認する

設定が正しく適用されているか確認するには、WSL2のターミナル内で以下のコマンドを実行します。

mount | grep virtiofs

出力に virtiofs on / type virtiofs のような行が含まれていれば、virtiofsが正しく動作しています。何も表示されない場合は、WSLのバージョンが古い可能性があるため、手順1に戻ってWSLのアップデートを確認してください。

体感できる効果

virtiofsを有効にした後、WindowsとLinux間のファイル共有フォルダ(/mnt/c/ 配下など)でファイル読み書きを行うと、特に小さなファイルを大量に読み書きする処理(npm install など)で実行時間が大幅に短縮される場合があります。

Microsoftの公式ブログや複数のユーザー報告によると、従来の9pプロトコルと比較して、クロスOS間のファイル操作速度が最大で2倍程度に向上することが報告されています。効果の大きさは環境やワークロードによって異なりますので、ご自身の環境で実際にお試しください。

元に戻す方法

もし設定後に動作が不安定になったり、期待した効果が得られなかったりした場合は、設定を元に戻すことができます。

  • %USERPROFILE%\.wslconfig ファイルをテキストエディターで開きます
  • 記述した virtiofs=true の行を削除するか、行頭に # を記述してコメントアウトします
  • ファイルを保存し、PowerShellで wsl --shutdown を実行して再起動します

よくある質問

Q. 設定してもファイルアクセス速度が変わらないように感じます。

A. プロジェクトのソースコードは、Windows側(/mnt/c/)ではなく、WSLのホームディレクトリ(~/)側に置くのが最も高速です。virtiofsはあくまでWindows側のファイルにアクセスする際の速度向上策ですので、本質的な高速化を求める場合は、ファイルをLinuxファイルシステム側に配置することをお勧めします。

Q. 設定後、WSLが起動しなくなりました。

A. WSLのバージョンが古い可能性があります。手順1に従ってWSLを最新版にアップデートするか、一度設定を元に戻して起動できるか確認してください。

まとめ

WSL2の新しいファイルシステム共有プロトコルであるvirtiofsを有効にすることで、WindowsとLinux間のファイルアクセスで発生していたボトルネックを大幅に軽減できます。

設定手順は .wslconfig に1行追加するだけと非常にシンプルですので、WSL2上の開発速度を向上させたい方はぜひ試してみてください。

参考情報

  • Microsoft Learn:WSL の詳細設定構成
  • WSL GitHub リポジトリ・リリースノート