あえて「WSL1」を使って、LinuxからWindowsファイルシステムへ高速にアクセスしてみよう

2025年11月11日(火)
水野 源
第21回目の今回は、WSL1とWSL2でLinuxからWindowsファイルシステムにアクセスする際の速度にどれくらいの差があるのかを検証します。

はじめに

本連載の第1回で、WSLには従来の「WSL1」と、より新しい「WSL2」が存在すると紹介しました。そして、ここまでLinuxとシステムコールに完全な互換性がある、WSL2を前提に解説してきました。

ところが、WSL2はWSL1の完全な上位互換というわけではありません。WSL2の登場によりWSL1が完全に時代遅れになった、というわけではないのです。そこで今回は、あえてWSL1を活用するシーンを紹介しましょう。

WSL1とWSL2の違い

ひと言で説明すると、WSL1はWindows上で動作するAPI変換レイヤーでした。対してWSL2は、Hyper-V上で本物のLinuxカーネルを動かしています。これによる特性の違いを簡単に表にまとめました。

項目 WSL1 WSL2
コア構造 LinuxシステムコールをWindowsのAPIに変換 Hyper-V上で本物のLinuxカーネルを実行
システムコールの互換性 一部制限あり ほぼ完全な互換性
ルートファイルシステム WindowsのNTFS上に独自の変換レイヤーを用意 仮想ディスク上のext4
Linuxファイルシステムへのアクセス 低速 高速
Windowsファイルシステムへのアクセス 高速 低速
ネットワーク Windowsと同一IPアドレス、同一ホストとして動作 独立した仮想NICによるNAT構成
起動速度 高速 軽量VMを起動するためやや低速
メモリ使用量 少ない やや多い
Dockerの動作 非対応 対応
systemdの動作 非対応 対応

ネイティブに近いLinux環境を再現するという点においては、WSL2が圧倒的に優れています。WSL1はコアの構造上、どうしてもカーネルに強く依存した機能の動作に制限があります。また、Linuxプロセスのパフォーマンス面においてもWSL2に劣ります。

しかし、注目すべきポイントもあります。Windowsファイルシステムへのアクセスが高速である点です。そしてネットワークをシンプルに保ち、外部からの接続を受け入れやすい点です。Linuxには「grep」「sed」「awk」「rsync」といった便利なツールが多数存在するため「Windows上にある大量のファイルをLinuxのツールを使って操作したい」というケースもあるでしょう。こうしたケースでは、あえてWSL1を選択するアドバンテージがあるのです。

WSL1への切り替え方法

ここからは、インストール済みのWSL2のディストリビューションをWSL1へ切り替える方法を紹介していきます。

  1. まず、WSL1を使うため「Linux用Windowsサブシステム」を有効にします。スタートメニューから「Windowsの機能の有効化または無効化」を開いてください。
  2. 「Linux用Windowsサブシステム」にチェックを入れて「OK」をクリックします。インストールが完了したら、Windowsを再起動してください。
  3. インストールされているディストリビューションのバージョンを確認しましょう。PowerShellを起動して、以下のコマンドを実行してください。
    $ wsl -l -v

    現在インストールされているUbuntu-24.04はVERSION 2(WSL2)

  4. 以下のコマンドで、WSL2からWSL1へ変換できます。
    $ wsl --set-version ディストリビューション名 (Ubuntu-24.04) 1

    ディストリビューションをWSL1に変換する

    変換後の状態

新規インストール時にWSL1を指定する

ディストリビューションの新規インストール時にWSL1を明示的に指定することも可能です。例えば、Debian GNU/LinuxをWSL1でインストールしたい場合は以下のコマンドを実行します。

$ wsl --install -d Debian --version 1

また、以下のコマンドを実行しておくとバージョンを指定しなかった場合のデフォルトをWSL1に設定できます。WSL1の方が使う機会が多いような場合は、設定しておいても良いでしょう。

$ wsl --set-default-version 1

ディスクアクセス速度を計測する

同一のUbuntu 24.04をWSL1と2、それぞれ用意しました。

名前を変えて同一のUbuntu環境をWSL1/2それぞれ用意した

それぞれのカーネルバージョンを確認する。
WSL1は「Microsoft」のサフィックスが付く

WSL2は本物のLinuxカーネルが動作しており「microsoft-standard-WSL2」のサフィックスが付く

この2つの環境でWindowsファイルシステムに対する読み書きをテストし、パフォーマンスを比べてみましょう。まずは書き込みテストです。

$ time dd if=/dev/zero of=/mnt/c/Users/(Windowsのユーザー名)/testfile bs=1M count=10240 oflag=direct conv=fdatasync

WSL2での書き込みテスト。書き込み速度はおおよそ20MB/sで、今時のシステムとしてはあきらかに遅すぎる

上記は、Windowsのホームディレクトリ内にゼロで埋めた10GiBのファイルを書き込むコマンドです。timeコマンドを使って、この処理にかかった時間を計測しています。筆者の環境では、WSL2でこのコマンドを実行すると9分19秒かかりました。

WSL1での書き込みテスト

続いて、同じコマンドをWSL1で実行してみます。その結果はなんと8.8秒でした。書き込み速度は1.2GB/sで、搭載しているSSDの生の性能に近い数字が出ています。

読み込みテストも行ってみましょう。先ほど書き込んだファイルを、同じく以下のddコマンドで読み込んでみます。

$ time dd if=/mnt/c/Users/(Windowsのユーザー名)/testfile of=/dev/null bs=1M iflag=direct

WSL2での読み込みテスト

上図がWSL2の実行結果です。書き込みよりも高速なのは当然ですが、WSL2ではおおよそ40MB/s程度の速度しか出せず、10GiBの読み込みに4分48秒かかりました。

WSL1での読み込みテスト。非常に高速

対してWSL1では2.8GB/sの速度が出ており、3.8秒で完了しています。

WSL2は、Windows領域に対するアクセスに「Plan 9 Filesystem Protocol」というプロトコルを経由しているため、どうしてもオーバーヘッドが大きくなってしまいます。

誤解しないでいただきたいのですが、すべてのWSL2へのストレージアクセスが低速なわけではありません。仮想ディスク内のLinuxファイルシステムに対するアクセスであれば、きちんとパフォーマンスは発揮できます。

ddコマンドによる同様のテストを、WSL2でLinuxの領域にも行ってみました。スクリーンショットは省略しますが、Linux領域への書き込みは1.3GB/s、読み込みは1.6GB/sと、WSL1がWindows領域にアクセスした時と同様の非常に高速な結果が得られました。

おわりに

Windows上のファイルを直接扱うスクリプト処理などにWSL2を使うと、性能的に強烈なペナルティがあることが理解できたのではないでしょうか。WSLの魅力の1つはWindowsとLinuxのシームレスな相互運用です。そのため、ユースケースによってはあえてファイルアクセスが軽快なWSL1を選択することも検討してみてください。

とは言え、プロセスの実行速度自体はWSL2の方が優れています。バージョンごとの特性を理解し、適材適所で賢く運用するのがおすすめです。

日本仮想化技術株式会社
Ubuntu Japanese Teamメンバー。理想のフリーデスクトップ環境を求めて東へ西へ……のはずが,気がついたら北の大地で就職していたインフラ寄りのエンジニア。最近レンズ沼にハマる。日本仮想化技術株式会社所属。

連載バックナンバー

開発ツール技術解説
第21回

あえて「WSL1」を使って、LinuxからWindowsファイルシステムへ高速にアクセスしてみよう

2025/11/11
第21回目の今回は、WSL1とWSL2でLinuxからWindowsファイルシステムにアクセスする際の速度にどれくらいの差があるのかを検証します。
開発ツール技術解説
第20回

「--export」「--import」コマンドでWSL環境をまるごとバックアップして活用してみよう

2025/10/21
第20回の今回は、--exportと--importコマンドでWSL環境をバックアップする方法と、その復元方法について解説します。
開発ツール技術解説
第19回

「cloud-init」でWSL環境の初期セットアップを自動化してみよう

2025/9/30
第19回の今回は、「cloud-init」を使用して、WSL環境の初期セットアップを自動化する方法について解説します。

Think ITメルマガ会員登録受付中

Think ITでは、技術情報が詰まったメールマガジン「Think IT Weekly」の配信サービスを提供しています。メルマガ会員登録を済ませれば、メルマガだけでなく、さまざまな限定特典を入手できるようになります。

Think ITメルマガ会員のサービス内容を見る

他にもこの記事が読まれています