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

WSL その176 - WSL 1とWSL 2の使い勝手の違い・ネットワークアプリへアクセスするには・ストレージ領域の最大サイズを大きくするには

WSL 1とWSL 2の使い勝手の違い

「WSL 1」と「WSL 2」の使い勝手の違いを紹介します。


  • User Experience Changes Between WSL 1 and WSL 2
 

Linuxアプリから頻繁にアクセスするファイルの配置場所

Linuxアプリから頻繁にアクセスするファイルは、Linuxアプリが配置されているルートファイルシステム内に配置します。
Linuxアプリと同じ環境に配置されているファイル群は、従来より高速なファイルアクセスのパフォーマンスが得られます。

WindowsアプリからLinuxのファイルにアクセス可能

WindowsアプリからLinuxのルートファイルシステムにアクセスすることも可能です。
例えば「bash」から「explorer.exe /」を実行すれば、ファイルエクスプローラーからLinuxのルートファイルシステムにアクセス可能です。

ネットワークアプリへのアクセス

「WSL 2」の初期ビルドでは、WindowsからLinuxのサーバー(サービス/アプリケーション)にアクセスする際、Linuxディストリビューション側のIPアドレスを使用してアクセスする必要があります。
逆にLinuxからWindowsのサーバーにアクセスする際、ホストマシン側のIPアドレスを使用してアクセスする必要があります。

この仕様は一時的な処置であり、アクセス方法の改善を目指し最優先で作業が行われています。

WindowsからLinuxアプリケーションへアクセスする場合

WindowsからLinuxアプリケーションへアクセスする場合、Linuxアプリケーションが動作している仮想マシンのIPアドレスを調べる必要があります。
そしてそのIPアドレスを指定してWindowsからLinuxアプリケーションへアクセスします。

仮想マシンでは「eth0」ネットワークインターフェースを提供しており、「eth0」のIPアドレス(inet)を調べれば仮想マシンのIPアドレスが分かります。
アクセス対象のLinuxディストリビューション内で以下のコマンドを実行します。

ip addr | grep eth0


上記の画像では、仮想マシンのIPアドレスは「192.168.189.62」であることが分かります。
後はWindowsアプリでこのIPアドレスを指定し、Linuxアプリケーションへ接続します。

LinuxからWindowsアプリケーションへアクセスする場合

LinuxからWindowsアプリケーションへアクセスする場合、ホストマシンのIPアドレスを調べる必要があります。
ホストマシンのIPアドレスは、「/etc/resolv.conf」ファイルの「nameserver」に記述されています。
Linuxディストリビューション内で以下のコマンドを実行します。

cat /etc/resolv.conf


上記の画像では、ホストマシンのIPアドレスは「192.168.96.193」であることが分かります。

WSL 2はVHDを使用する・最大サイズを大きくするには

「WSL 2」はLinuxディストリビューションのストレージ領域に、「VHD」を使用します。
「VHD」は「ext4」ファイルシステムでフォーマットされており、Linuxディストリビューションのファイル群はこのファイルシステム内に配置されます。
「VHD」のサイズは自動的に調整され、最大サイズの初期値は256GBです。
もしLinuxディストリビューションのサイズがこの最大サイズを越えようとした場合、ディスク容量不足のエラーが発生します。

このエラーが発生したら以下の方法で「VHD」の最大サイズを大きくすることもできます。

1.すべてのWSLインスタンスを終了する

以下のコマンドを実行し、すべてのWSLインスタンス(Linuxディストリビューション)を終了します。

wsl --shutdown

2.パッケージ情報の取得

Linuxディストリビューションが使用しているVHDファイルを特定するため、まずパッケージ情報を取得します。
「PowerShell」を起動して以下のコマンドを実行します。

Get-AppxPackage -Name "*<distro>*" | Select PackageFamilyName

<distro>にはLinuxディストリビューション名を指定します。
例えば「Ubuntu」を指定する場合、以下のコマンドになります。

Get-AppxPackage -Name "*Ubuntu*" | Select PackageFamilyName

以下のようにVHDファイルの特定に必要なパスの一部が表示されます。

PackageFamilyName
-----------------
CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc
CanonicalGroupLimited.Ubuntu18.04onWindows_79rhkp1fndgsc
CanonicalGroupLimited.Ubuntu16.04onWindows_79rhkp1fndgsc

「Ubuntu」の場合、一番上の情報がパスの一部になります。

  • CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc

3.VHDファイルの特定

「2.」の情報を以下のパスに当てはめます。

%LOCALAPPDATA%\Packages\<PackageFamilyName>\LocalState

<PackageFamilyName>に「2.」の情報を当てはめます。
「Ubuntu」の例では、以下のパスになります。

%LOCALAPPDATA%\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\LocalState

「%LOCALAPPDATA%」は環境変数であり、通常以下のパスになります。

  • C:\Users\ユーザー名\AppData\Local

環境変数は、コマンドプロンプトでは「set」コマンドで、「PowerShell」では「get-childitem env:」で確認できます。

set LOCALAPPDATA

get-childitem env:LOCALAPPDATA

上記のパスをエクスプローラーで開くと、「vhdx」ファイルが見つかります。
「vhdx」ファイルが「VHD」ファイルです。
「Ubuntu」では「ext4.vhdx」が見つかります。

つまり「VHD」ファイルのフルパスは、以下のようになります。

  • C:\Users\ユーザー名\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\LocalState¥ext4.vhdx 

4.VHDファイルの指定

管理者でコマンドプロンプトを起動し、「diskpart」を起動します。
まず操作対象の「VHD」ファイルを指定します。

select vdisk file="<VHDファイル>"

<VHDファイル>には、「3.」で特定した「VHD」ファイルをフルパスで指定します。

5.最大サイズの変更

最大サイズを指定します。

expand vdisk maximum=<最大サイズ>

<最大サイズ>には、「VHD」の最大サイズをMB単位で指定します。

6.デバイスファイルの確認

Linuxディストリビューションを起動し、ファイルシステムのサイズを拡大するデバイスファイルを確認します。
以下のコマンドを1行ずつ実行します。

sudo mount -t devtmpfs none /dev
mount | grep ext4

「/dev/sd」で始まるデバイスファイルが見つかるので、この内容をコピーしておきます。
ここでは例として「/dev/sda1」とします。

7.ファイルシステムのリサイズ

以下のコマンドを実行し、ルートファイルシステムのサイズを変更します。

sudo resize2fs /dev/sdXX

「/dev/sdXX」には「6.」で見つかったデバイスファイルを指定します。
例では「/dev/sda1」になります。

もし「resize2fs」コマンドが見つからない場合は、以下のコマンドで「resize2fs」をインストールします。(Ubuntuの場合)

apt install resize2fs

WSL 2起動時にメモリーを多少使用する

「WSL 2」は「WSL 1」と同等の軽量さ、高速、統合性、そして応答性を実現しつつ、実Linux kernel上で優れたファイルシステムパフォーマンスと完全な互換性のあるシステムコールを提供するため、軽量なVMを使用します。
このVMのメモリーへの影響は小さく、起動時に仮想メモリーを確保します。
これは全メモリーのごく一部を使用するように調整されます。

Windows/Linux間のファイルアクセスが遅い

「WSL 2」の初期プレビュービルドでは、「WSL 1」と比較してWindows/Linux間のファイルアクセスが遅くなります。
これは「WSL 2」のアーキテクチャーの変更によるものであり、開発チームは改善に向け作業しています。

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 のリリーススケジュールを紹介します。
記事のピックアップ
オプション