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
人気の記事
  • Ubuntu CPUfreq その1 - CPUfreqについて・ CPUfreqドライバーについて・ CPUfreqガバナーについて
    CPUfreq   CPUfreqは、CPUのクロック数を動的に変更する機能です。   CPUfreqを利用することで、OSの負荷に応じて動的にCPUのクロック数を調整することができます。  これにより、省電力効果を得ることができます。   CPUfreqを利用する場合...
  • Ubuntu 26.04 その42 - Ubuntu 26.04.1 LTS のリリーススケジュール
    Ubuntu 26.04.1 LTSのリリーススケジュール Ubuntu 26.04.1 LTS のリリーススケジュールを紹介します。
  • Ubuntu 24.04 その93 - Linux kernel 7.0 が利用可能に・Linux kernel 7.0 にアップグレードするには
    Linux kernel 7.0 が利用可能に 現在 Ubuntu 24.04 LTS を利用しているユーザーは、Linux kernel 7.0 へアップグレードできるようになりました。
  • Ubuntu 26.04 その59 - amdgpu ドライバーでパフォーマンス低下のお知らせ
    amdgpu ドライバーでパフォーマンス低下のお知らせ 次期 Linux kernel のアップデートで、amdgpu ドライバーのパフォーマンスが低下するお知らせが出ています。
  • Linux その407 - COSMIC DE 開発7ヶ月の歩み・COSMIC DE に搭載された新機能のまとめ
    COSMIC DE 開発7ヶ月の歩み COSMIC デスクトップ環境の開発者が、ここ7ヶ月の開発の歩みと、今までに COSMIC デスクトップ環境に搭載された新機能を紹介しています。
  • Linux その404 - COSMIC Epoch 1.3.0 リリース・ウィンドウのすりガラス効果に対応
    COSMIC Epoch 1.3.0 リリース 2026年7月15日、COSMIC Epoch 1.3.0 がリリースされました。
  • Ubuntu 26.04 その64 - AMD 環境で PC をシャットダウンできない現象
    AMD 環境で PC をシャットダウンできない現象 AMD 環境で PC をシャットダウンできない現象が報告されています。
  • Ubuntu 26.10 その18 - GRUB の機能削減とセキュリティー強化
    GRUB の機能削減とセキュリティー強化 GRUB の機能削減とセキュリティー強化が予定されています。
  • Ubuntu 22.04 その79 - 画面ロックの有効・無効を設定するには・画面ロック時の設定をカスタマイズするには
    画面ロックの有効・無効を設定するには 一定時間ユーザーによる操作がない時に、自動的に画面をロックしパスワードで保護したり、画面をブランク状態にできます。
  • Ubuntu 26.04 その65 - ソフトウェアのアップデート通知が表示されない現象
    ソフトウェアのアップデート通知が表示されない現象 ソフトウェアのアップデート通知が表示されなくなる現象が報告されています。
記事のピックアップ
オプション