kledgeb UbuntuやLinuxの最新情報を紹介

WSL その273 - WSL 2.0.0がリリースされました・WSL 2.0.0の新機能や変更点と数々の実験的な新機能の導入

WSL 2.0.0の新機能と変更点

2023年9月18日にリリースされた「WSL 2.0.0」の新機能と変更点をピックアップします。


ストアアプリケーション版WSL

ストアアプリケーション版「WSL」の詳細やインストール方法は、以下を参照してください。

  • Microsoft StoreからWSLをインストール可能に・Microsoft StoreからWSLをインストールするには

リリースノート

リリースノートは以下を参照してください。

  • Release Notes for Windows Subsystem for Linux in the Microsoft Store

WSLの変更点

「WSL」の変更点をいくつか紹介します。

1. セッション 0からWSLにアクセスできない不具合の修正

「PSRemoting」や「ssh」などセッション 0から「WSL」にアクセスできない不具合が修正されました。
これにより改善する問題は、以下を参考にしてください。

  • Store WSL isn't accessible from Session 0

2. バイナリーの署名

WSLパッケージに含まれるすべてのバイナリーに署名されました。

3.VMPの有効化

HNSが利用できないマシンでVMPを有効化するかユーザーに尋ねるようになりました。

4.localhostのリレー処理修正

IPv6が無効になっている環境で「localhost」のリレーが失敗する問題が修正されました。

5. エラーメッセージの改善

アップグレード手順を提供するため「WSL 1」の無効化ポリシー向けエラーメッセージが改善されました。

6. Microk8sの問題修正

ミラーリングネットワークで発生する「Microk8s」に関連する不具合が修正されました。

7. 共有マウントポイントの作成

「init」がディストリビューションの名前空間をセットアップする時に、共有マウントポイントの作成するようになりました。
これにより改善する問題は、以下を参考にしてください。

  • WSL install k8s init calico err

8. ブロックデバイスのデタッチ

仮想マシンが終了する時に、ユーザーのブロックデバイスをデタッチするようになりました。

9. 不正な変換からの保護

「.wslconfig」が不正な変換から保護されるようになりました。

10.systemd unitの生成ロジック追加

「binfmt」インタープリターを保護するため、systemd unitの生成ロジックが追加されました。
これにより改善する問題は、以下を参考にしてください。

  • [WSL2][systemd][interop] Unable to Execute Windows Binary when systemd enabled

11. wslservice.exeがクラッシュする問題の修正

「wslservice.exe」がクラッシュしうる問題が修正されました。

12. plan9のマウント再試行

I/Oエラー発生時にplan9のマウントを再試行するようになりました。

13. Microsoft.WSL.Kernelのアップデート

「Microsoft.WSL.Kernel」が「5.15.123.1-1」にアップデートされました。

  • microsoft / WSL2-Linux-Kernel

14. 通知プロンプトの表示

不足しているオプションコンポーネントをインストールする時に、ユーザーに通知プロンプトを表示するようになりました。

15.wsl.exeにオプション追加

「wsl.exe」に以下のオプションが追加されました。

--manage <distro_name> --set-sparse

16. 更新通知ロジックの修正

更新通知ロジックの様々な不具合が修正されました。

17. MSRDCのアップデート

「MSRDC」はリモートデスクトップクライアントです。
「MSRDC」が「MSRDC 1.2.4485」にアップデートされました。

18. WSLgのアップデート

「WSLg」は「WSL」上でLinuxのGUIアプリを動かす仕組みです。
「WSLg」が「WSLg 1.0.57」にアップデートされました。

  • Linux GUI support 1.0.57

これによりLinuxのGUIアプリでウィンドウスナッピングを利用できるようになりました。
Windowsキーを押しながらカーソルキーを押せば、ウィンドウがサイドにスナップできます。

実験的な新機能の導入

「WSL 2.0.0」では数々の実験的な新機能が導入されています。

  • Windows Subsystem for Linux September 2023 update

フィードバックにより高い評価を得た実験的な機能は、今後デフォルトで有効になる予定です。

実験的な機能を有効にするには

実験的な機能を有効にするには、「.wslconfig(C:\Users\ユーザー名\.wslconfig)」ファイルに「[experimental]」を記述し、有効にしたい実験的な機能を及びその設定を指定してください。
詳細は以下を参照してください。

  • Advanced settings configuration in WSL

記述例


[experimental]
autoMemoryReclaim=gradual
networkingMode=mirrored
dnsTunneling=true
firewall=true
autoProxy=true

1. キャッシュメモリーの自動解放機能

CPUがアイドルになった時に、Linux側で確保されているキャッシュメモリーを自動的に解放する機能です。
解放されたキャッシュメモリーはWindows側に空きメモリーとして返却され、「WSL VM(仮想マシン)」のメモリーサイズが自動的に削減されます。

設定

設定の内容は以下のとおりです。

設定名 値の型 デフォルト 設定値
autoMemoryReclaim 文字列 無効
  • gradual
  • drop

gradual

「gradual」を設定すると、徐々にキャッシュメモリーが解放されていきます。
WSLはCPUの使用率を監視し、CPUの使用率が低い状態が5分間続いた場合、キャッシュメモリーの解放が始まります。
このキャッシュメモリーの解放は、「Control Group v2(cgroup v2)」の「memory.reclaim」機能を利用して行われます。

  • Control Group v2

またキャッシュメモリーは、30分後にキャッシュメモリーがすべて解放されるように徐々に解放されていきます。
例えば3000MBのキャッシュメモリーが存在する場合、毎分100MBずつキャッシュメモリーが解放されていきます。

注意事項

この機能を利用するにはWSLで「Control Group v1(cgroup v1)」を無効化する必要があります。
そのためWSLでDockerデーモンをサービスとして実行できなくなります。
現時点での回避策は、「Docker Desktop」を利用することです。
現在この問題の解消に向けて取り組まれています。

アイドル時間のしきい値など柔軟に設定を変更するには

アイドル時間のしきい値など柔軟に設定を変更するには、この機能を利用せず、代わりに以下のスクリプトを活用してください。

  • craigloewen-msft/autoMemoryReclaim.sh

drop

「drop」を設定すると、WSLがCPUのアイドルを検出した時に、一気にキャッシュメモリーが解放されます。
こちらの設定は「Control Group(cgroup)」に対する影響がありません。

2. 仮想HDDサイズの自動的な削減機能

WSLで使用される仮想HDD(VHD)はユーザーがファイルを作成する時など、現在よりも大きなストレージサイズが要求された時に、それに合わせ自動的にストレージサイズが増加していきます。
今回実験的な機能でVHDをスパースVHDで作成する機能が追加され、これにより自動的にVHDのサイズを減らせるようになりました。

設定

設定の内容は以下のとおりです。

設定名 値の型 デフォルト 設定値
sparseVhd bool false
  • false
  • true

設定値

「true」を指定するとこの機能が有効になり、新規に作成されるVHDはスパースVHDで作成されるようになります。

既存のディストリビューションに設定するには

以下のコマンドを実行すれば、この機能の有効・無効を切り替えられます。

wsl --manage <ディストリビューション> --set-sparse <true/false>

3. ネットワークインターフェースのミラーリング

ネットワークの使い勝手を改善するため、WSLで利用されてきた伝統的なNATネットワークアーキテクチャーが見直され、NATに代わる新しいネットワークモードが追加されました。
この新しいネットワークモードは「Mirrored」と呼ばれています。

この機能の目的はWindowsのネットワークインターフェースをLinuxにミラーし、新しいネットワーク機能の導入と互換性を改善することです。

現時点での利点

この機能を有効にすることで現状以下の利点が得られます。

  1. IPv6のサポート
  2. localhost(127.0.0.1)を利用してLinux内からWindowsサーバーに接続可能に
  3. LANからWSLへ直接接続可能に
  4. VPNのネットワーク互換性向上
  5. マルチキャストのサポート

設定

設定の内容は以下のとおりです。

設定名 値の型 デフォルト 設定値
networkingMode 文字列 NAT
  • mirrored
  • 上記以外

設定値

「mirrored」を指定すると、ネットワークインターフェースのミラーリングが有効になります。
それ以外の設定値は「NAT」が使用されます。

注意事項

現状以下の既知の問題があります。

  • 「Visual Studio Code Remote Development」コンテナを実行しポートをバインドする時に「Address already in use」エラーが発生する

その他不具合を見つけた時は、以下に不具合報告してください。

  • microsoft / WSL

また現状この機能は「Windows Insiders」でのみ利用できます。

4. DNSのトンネリング

WSLからインターネットに接続できない要因の一つは、WSLからWindowsへのDNSリクエストがブロックされることです。
現在のネットワーク構成によっては、「WSL VM」からWindowsホストへ送信されるDNSパケットがブロックされます。

この要因は仮想化機能を利用してWindowsと通信する代わりに、DNSをトンネリングすることで解消できます。
またネットワークパケットを送信せずに「DNS name request」を解決できるため、VPNや特定のファイアウォールやネットワーク設定でも、インターネットへの接続性が改善されます。

この機能によりWSL内からネットワークに接続できない状況が減るでしょう。

設定

設定の内容は以下のとおりです。

設定名 値の型 デフォルト 設定値
dnsTunneling bool false
  • false
  • true

設定値

「true」を指定すると、この機能が有効になります。

注意事項

現状この機能は「Windows Insiders」でのみ利用できます。

5. Windows Firewallのルール適用

「Hyper-V Firewall」では、WSLに適用するファイアウォール設定やルールを指定できます。
この機能は「Hyper-V Firewall」の設定に加え、「Windows Firewall」の設定やルールもデフォルトでWSLに適用する機能です。

設定

設定の内容は以下のとおりです。

設定名 値の型 デフォルト 設定値
firewall bool false
  • false
  • true

設定値

「true」を指定すると、この機能が有効になります。

注意事項

現状この機能は「Windows Insiders」でのみ利用できます。

6. HTTPプロキシー設定の適用

WindowsのHTTPプロキシーの設定はLinux側に反映されず、例えば以下のようにLinux側でHTTPプロキシーを設定する必要があります。

  • Setting up apt-get to use a http-proxy

この機能はWindowsのHTTPプロキシーの設定をLinux側に適用する機能です。

設定

設定の内容は以下のとおりです。

設定名 値の型 デフォルト 設定値
autoProxy bool false
  • false
  • true

設定値

「true」を指定すると、この機能が有効になります。

注意事項

この機能を利用するには、「Windows 11 22H2」が必要です。

WSL
スポンサー
コメント
コメントポリシー
コメントをする前に UbuntuのCode of Conduct(CoC/行動規範) を確認し、CoCに沿ったコメントをお願いします。
コメントの使い方は、コメントの使い方を参照してください。
同一カテゴリーの記事
SNS
人気の記事
  • Linux その450 - Canonical LXD や MicroCloud にクライアントなりすましの脆弱性・アップデートを
    Canonical LXD や MicroCloud に重大な脆弱性 2026年10月28日、Canonical LXD や MicroCloud に重大な脆弱性がみつかりました。
  • Ubuntu 26.04 その82 - Linux kernel の脆弱性 CVE-2026-98432 の対応状況
    CVE-2026-98432 の対応状況 2026年11月2日、Linux kernel の脆弱性である CVE-2026-98432 の対応状況がアナウンスされました。
  • Linux Mint その294 - Linux Mint 27 の開発とリリース方針の変更・アラーム管理アプリの開発
    Linux Mint 月刊ニュース Linux Mint 開発チームは Linux Mint 月刊ニュースにて、Linux Mint の開発状況や取り組みを紹介しています。
  • Ubuntu 26.04 その76 - CVE-2026-92392 含む curl の脆弱性22件修正・アップデートを
    curl の脆弱性22件修正 CVE-2026-92392 含む22件の curl の脆弱性に対応したセキュリティーアップデートがリリースされました。
  • Ubuntu 26.10 その38 - Ubuntu 26.10 がリリースされました・ディスクイメージのダウンロード
    Ubuntu 26.10 リリース 2026年10月15日、Ubuntu 26.10 がリリースされました。
  • Ubuntu 26.04 その78 - eMudhra 認証局の秘密鍵の侵害・アップデートを
    eMudhra 認証局の秘密鍵の侵害 2026年10月20日、eMudhra 認証局(eMudhra CA)の秘密鍵の侵害が発覚しました。
  • Ubuntu 26.04 その79 - CVE-2026-111497 に対応した Brotli のリリース・アップデートを
    Brotli のセキュリティーアップデート 2026年10月26日、CVE-2026-111497 に対応した Brotli がリリースされました。
  • Ubuntu 26.10 その39 - Ubuntu 26.10 の新機能と変更点・既知の問題
    Ubuntu 26.10 の新機能と変更点・既知の問題 リリースノートから、Ubuntu 26.10 の新機能と変更点を紹介します。
  • Ubuntu 26.04 その77 - PHP に php2shell(CVE-2026-109618/CVE-2026-109619)の脆弱性・アップデートを
    PHP に php2shell の脆弱性 PHP に php2shell と呼ばれる致命的な脆弱性が見つかりました。
  • Ubuntu 26.04 その80 - Ubuntu 26.04.2 LTS のリリーススケジュール
    Ubuntu 26.04.2 LTSのリリーススケジュール Ubuntu 26.04.2 LTS のリリーススケジュールを紹介します。
記事のピックアップ
オプション