🌸

WSL で用途別にディストリビューション環境を構築する方法(--install --name/--export/--import)

に公開

はじめに

WSL(Windows Subsystem for Linux)を使っていると、用途ごとにディストリビューションを分けて運用したい場面があります。

以前は、「同じディストリビューション」を「異なる名前」でインストールするには wsl --import コマンドを使う必要がありました。

しかし、2024年11月頃から wsl --install コマンドに --name オプションが追加され、簡単に複数環境を作成できるようになりました

この新機能は Microsoft Dev Blogs で発表されていますが、公式ドキュメント(Microsoft Learn)にはまだ反映されていません。

本記事では、新しいインストール方法と従来のエクスポート/インポート手法について解説します。

https://devblogs.microsoft.com/commandline/whats-new-in-the-windows-subsystem-for-linux-in-november-2024/

https://learn.microsoft.com/ja-jp/windows/wsl/basic-commands

検証環境

  • Windows 11 Home
  • PowerShell 7
  • WSL 2
    • Ubuntu 22.04 LTS
詳細
PowerShell
> Get-CimInstance Win32_OperatingSystem | Select-Object Caption, Version, OSArchitecture
Caption                   Version    OSArchitecture
-------                   -------    --------------
Microsoft Windows 11 Home 10.0.26100 64 ビット

> $PSVersionTable
Name                           Value
----                           -----
PSVersion                      7.5.2
PSEdition                      Core
GitCommitId                    7.5.2
OS                             Microsoft Windows 10.0.26100
Platform                       Win32NT
PSCompatibleVersions           {1.0, 2.0, 3.0, 4.0…}
PSRemotingProtocolVersion      2.3
SerializationVersion           1.1.0.1
WSManStackVersion              3.0

> wsl --version
WSL バージョン: 2.5.9.0
カーネル バージョン: 6.6.87.2-1
WSLg バージョン: 1.0.66
MSRDC バージョン: 1.2.6074
Direct3D バージョン: 1.611.1-81528511
DXCore バージョン: 10.0.26100.1-240331-1435.ge-release
Windows バージョン: 10.0.26100.4652

> wsl -l -v
  NAME              STATE           VERSION
* Ubuntu            Running         2
  NixEnv            Stopped         2
  docker-desktop    Running         2

# lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 22.04.5 LTS
Release:        22.04
Codename:       jammy

インストール方法の使い分け

方法 選択のポイント
wsl --install --name 任意の名前で新規インストールしたい場合はこれが第一選択
wsl --export / --import --name が使えない場合、既存環境を複製したい場合

方法1 --name オプション

1.1 利用可能なディストリビューションの確認

以下のコマンドでインストール可能なディストリビューション一覧を確認できます。

PowerShell
wsl --list --online
PowerShell
# 2025/7/21 実施
> wsl --list --online
インストールできる有効なディストリビューションの一覧を次に示します。
'wsl.exe --install <Distro>' を使用してインストールします。

NAME                            FRIENDLY NAME
AlmaLinux-8                     AlmaLinux OS 8
AlmaLinux-9                     AlmaLinux OS 9
# 中略
Ubuntu                          Ubuntu
Ubuntu-22.04                    Ubuntu 22.04 LTS

1.2 任意の名前を指定してインストール

任意の名前でディストリビューションをインストールしたい場合は、--name オプションを使います。

ここでは、UbuntuMyEnv という名前でインストールします。

PowerShell
wsl --install Ubuntu --name MyEnv

インストールの確認

インストール済みのディストリビューション一覧を表示すると、MyEnv が追加されていることを確認できます。

PowerShell
wsl -l -v
PowerShell
> wsl -l -v
  NAME              STATE           VERSION
* Ubuntu            Running         2
  docker-desktop    Running         2
  MyEnv            Stopped         2

ディストリビューションへの入り方

以下のコマンドで、任意のディストリビューションに入れます。

PowerShell
wsl --distribution MyEnv

特定のユーザーで入りたい場合は、--user オプションでユーザー名を指定します。

PowerShell
wsl --distribution MyEnv --user root

1.3 規定のディストリビューションを変更する

wsl コマンドをオプション無しで実行した場合、規定のディストリビューション(*が付いているもの)が起動します。

例えば、以下の場合だと * が記載されている Ubuntu が規定となっています。

PowerShell
> wsl -l -v
  NAME              STATE           VERSION
* Ubuntu            Running         2
  docker-desktop    Running         2
  MyEnv             Stopped         2

# これを実行すると Ubuntu に入る
> wsl

以下のコマンドで規定を MyEnv に変更できます。

PowerShell
wsl --set-default MyEnv
PowerShell
> wsl -l -v
  NAME              STATE           VERSION
* MyEnv             Running         2
  docker-desktop    Running         2
  Ubuntu            Running         2

方法2 export/import コマンド

一部のディストリビューションでは、--name オプションが利用できません

例えば、Ubuntu-22.04 をインストールしようとすると、以下の様なエラーが発生します。

PowerShell
> wsl --install Ubuntu-22.04 --name MyEnv
レガシ ディストリビューションをインストールする場合、'--name' はサポートされません。

この場合は、エクスポート・インポート機能を使って複製&名前の設定を行います。

2.1 複製元の環境をインストール

Ubuntu-22.04--name オプションを使わずにインストールします。

PowerShell
wsl --install Ubuntu-22.04

2.2 環境の複製

以下のコマンドを実行すると、Ubuntu-22.04 を複製して MyEnv という名前で登録できます。

PowerShell
wsl --export Ubuntu-22.04 - | wsl --import MyEnv "C:\Users\MyName\Wsl\MyEnv" -

コマンドの解説

wsl --export <Distribution Name> <FileName>
wsl --import <Distribution Name> <InstallLocation> <FileName>

通常、export コマンドでは .tar ファイルとして保存します。
今回は複製が目的なので、ファイルを保存せずにそのまま import コマンドに渡します
そのため、exportimport| で連結し、<FileName> には - (標準出力/入力)を指定しています。

<Distribution Name> には wsl -l -v で表示された名前を指定します。
<InstallLocation> には任意のフォルダを指定します。

保存するフォルダはどこがいい?

任意なので、どこでも大丈夫です。

C:\Users\MyName\Wsl\D:\Wsl\ の様に分かりやすい場所が無難でしょう。

なお、wsl --install コマンドでインストールした場合、以下に保存されます。

C:\Users\MyName\AppData\Local\Packages

個人的には AppData はユーザーが直接触る場所ではないと思ったので、wsl --import では AppData を指定せずに、専用のフォルダに保存することにしました。

データのバックアップを残したい場合

以下を実行すると、コマンドを実行したディレクトリに保存できます。

wsl --export Ubuntu-22.04 Backup.tar

2.3 不要なディストリビューションの削除

複製元のディストリビューションが不要であれば、以下のコマンドで削除できます。

wsl --unregister Ubuntu-22.04

(おまけ)コマンドの詳細情報について

本当は公式ドキュメント(Microsoft Learn)を提示したかったのですが、wsl --install コマンドのオプションを網羅的に解説した公式ページが見つけられませんでした。

PowerShell で wsl --help を使うのが一番確実な情報源だと思います

PowerShell
> wsl --help
    # 中略
    --install [Distro] [Options...]
        Linux 用 Windows サブシステム ディストリビューションをインストールします。
        有効なディストリビューションの一覧を表示するには、'wsl.exe --list --online' を使用します。

        オプション:
            --enable-wsl1
                WSL1 サポートを有効にします。

            --fixed-vhd
                ディストリビューションを保存するための固定サイズのディスクを作成します。

            --from-file <Path>
                ローカル ファイルからディストリビューションをインストールします。

            --legacy
                レガシ ディストリビューション マニフェストを使用します。

            --location <Location>
                ディストリビューションのインストール パスを設定します。

            --name <Name>
                ディストリビューションの名前を設定します。

            --no-distribution
                必要なオプション コンポーネントのみをインストールし、ディストリビューションはインストールしません。

            --no-launch, -n
                インストール後にディストリビューションを起動しません。

            --version <Version>
                新しいディストリビューションに使用するバージョンを指定します。

            --vhd-size <MemoryString>
                ディストリビューションを保存するディスクのサイズを指定します。

            --web-download
                Microsoft Store ではなくインターネットからディストリビューションをダウンロードします。

参考資料

https://zenn.dev/naonaorange/articles/20210523_wsl_ubuntu

https://zenn.dev/fusic/articles/wsl-multi-dist

https://uepon.hatenadiary.com/entry/2025/05/31/222112

https://devblogs.microsoft.com/commandline/whats-new-in-the-windows-subsystem-for-linux-in-november-2024/

https://learn.microsoft.com/ja-jp/windows/wsl/basic-commands

https://learn.microsoft.com/ja-jp/windows/wsl/install

Discussion