What's?
WSLで最初にディストリビューションをインストールする時には、ディストリビューションを指定してwsl --install [ディストリビューション名]と実行すると思います。
ここにさらに--nameオプションを使うことで、同じディストリビューションから複数のディストリビューションをインストールできるという話です。
WSLで選択できるディストリビューション
この記事を書いている時点で、WSLで選択できるディストリビューションはこちらです。
PS > wsl --list --online
インストールできる有効なディストリビューションの一覧を次に示します。
'wsl.exe --install <Distro>' を使用してインストールします。
NAME FRIENDLY NAME
Ubuntu Ubuntu
Ubuntu-24.04 Ubuntu 24.04 LTS
openSUSE-Tumbleweed openSUSE Tumbleweed
openSUSE-Leap-16.0 openSUSE Leap 16.0
SUSE-Linux-Enterprise-15-SP7 SUSE Linux Enterprise 15 SP7
SUSE-Linux-Enterprise-16.0 SUSE Linux Enterprise 16.0
kali-linux Kali Linux Rolling
Debian Debian GNU/Linux
AlmaLinux-8 AlmaLinux OS 8
AlmaLinux-9 AlmaLinux OS 9
AlmaLinux-Kitten-10 AlmaLinux OS Kitten 10
AlmaLinux-10 AlmaLinux OS 10
archlinux Arch Linux
FedoraLinux-43 Fedora Linux 43
FedoraLinux-42 Fedora Linux 42
eLxr eLxr 12.12.0.0 GNU/Linux
Ubuntu-20.04 Ubuntu 20.04 LTS
Ubuntu-22.04 Ubuntu 22.04 LTS
OracleLinux_7_9 Oracle Linux 7.9
OracleLinux_8_10 Oracle Linux 8.10
OracleLinux_9_5 Oracle Linux 9.5
openSUSE-Leap-15.6 openSUSE Leap 15.6
SUSE-Linux-Enterprise-15-SP6 SUSE Linux Enterprise 15 SP6
たいていの場合はUbuntuを選択していると思います。現時点だとUbuntu Linux 24.04 LTSのことを指しています。
--nameオプション
wslコマンドのヘルプを見てみましょう。
PS > wsl --help
--installオプションのオプションとして--nameというものがあります。
--install [ディストリビューション] [オプション...]
Linux 用 Windows サブシステム ディストリビューションをインストールします。
有効なディストリビューションの一覧を表示するには、'wsl.exe --list --online' を使用します。
オプション:
--enable-wsl1
WSL1 サポートを有効にします。
--fixed-vhd
ディストリビューションを保存するための固定サイズのディスクを作成します。
--from-file <パス>
ローカル ファイルからディストリビューションをインストールします。
--legacy
レガシ ディストリビューション マニフェストを使用します。
--location <場所>
ディストリビューションのインストール パスを設定します。
--name <名前>
ディストリビューションの名前を設定します。
--no-distribution
必要なオプション コンポーネントのみをインストールし、ディストリビューションはインストールしません。
--no-launch, -n
インストール後にディストリビューションを起動しません。
--version <バージョン>
新しいディストリビューションに使用するバージョンを指定します。
--vhd-size <メモリ文字列>
ディストリビューションを保存するディスクのサイズを指定します。
--web-download
Microsoft Store ではなく、インターネットからディストリビューションをダウンロードします。
「ディストリビューション」という名前がややこしい気もしますが、要するにこういうことです。
PS > wsl --install [インストールするディストリビューション名] --name [wslコマンドで操作するディストリビューション名]
--nameを指定しないとインストールするディストリビューション名と操作するディストリビューション名が同じになるので、よりややこしいですね。
この後、具体例を見ていってみましょう。
環境
今回の環境はこちらです。
PS > [System.Environment]::OSVersion
Platform ServicePack Version VersionString
-------- ----------- ------- -------------
Win32NT 10.0.26200.0 Microsoft Windows NT 10.0.26200.0
PS > $PSVersionTable.PSVersion
Major Minor Build Revision
----- ----- ----- --------
5 1 26100 7462
PS > wsl --version
WSL バージョン: 2.6.3.0
カーネル バージョン: 6.6.87.2-1
WSLg バージョン: 1.0.71
MSRDC バージョン: 1.2.6353
Direct3D バージョン: 1.611.1-81528511
DXCore バージョン: 10.0.26100.1-240331-1435.ge-release
Windows バージョン: 10.0.26200.7623
--nameオプションなしの場合
ここからは、Ubuntu-24.04を使って具体例を見てみましょう。
--nameオプションを指定しない場合。
ディストリビューションにUbuntu-24.04を選択してインストール。
PS > wsl --install Ubuntu-24.04
ダウンロードしています: Ubuntu 24.04 LTS
インストールしています: Ubuntu 24.04 LTS
ディストリビューションが正常にインストールされました。'wsl.exe -d Ubuntu-24.04' を使用して起動できます
Ubuntu-24.04 を起動しています...
Provisioning the new WSL instance Ubuntu-24.04
This might take a while...
Create a default Unix user account: user
New password:
Retype new password:
passwd: password updated successfully
To run a command as administrator (user "root"), use "sudo <command>".
See "man sudo_root" for details.
そのままUbuntu Linux 24.04 LTSに入ってしまいますが、1度抜けて確認。
PS > wsl --list
Linux 用 Windows サブシステム ディストリビューション:
Ubuntu-24.04 (既定値)
ディストリビューション名がインストールで使ったディストリビューション名と同じになっています。
かつデフォルトのディストリビューションになっていますね。
確認。
PS > wsl
To run a command as administrator (user "root"), use "sudo <command>".
See "man sudo_root" for details.
$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 24.04.3 LTS
Release: 24.04
Codename: noble
明示的にディストリビューション名を指定した場合。
PS > wsl -d Ubuntu-24.04
To run a command as administrator (user "root"), use "sudo <command>".
See "man sudo_root" for details.
今回はUbuntu-24.04を使いましたが、通常はUbuntuディストリビューションで同じことをやっていると言えるでしょう。
いったんディストリビューションを削除。
PS > wsl --unregister Ubuntu-24.04
登録解除。
この操作を正しく終了しました。
PS > wsl --list
Linux 用 Windows サブシステムにインストールされているディストリビューションはありません。
この問題を解決するには、以下の手順に従ってディストリビューションをインストールしてください:
'wsl.exe --list --online' を使用して利用可能な配布を一覧表示する
および 'wsl.exe --install <Distro>' を使用してインストールしてください。
--nameオプションを使って複数のディストリビューションをインストールする
続いて、--nameオプションを使ってディストリビューション名を指定してみましょう。
ひとつ目。
PS > wsl --install Ubuntu-24.04 --name Ubuntu1
わかりやすいように、こちらのユーザ名はuser1にしておきました。
ダウンロードしています: Ubuntu 24.04 LTS
インストールしています: Ubuntu 24.04 LTS
ディストリビューションが正常にインストールされました。'wsl.exe -d Ubuntu1' を使用して起動できます
Ubuntu1 を起動しています...
Provisioning the new WSL instance Ubuntu1
This might take a while...
Create a default Unix user account: user1
New password:
Retype new password:
passwd: password updated successfully
To run a command as administrator (user "root"), use "sudo <command>".
See "man sudo_root" for details.
2つ目のディストリビューションをインストール。
PS > wsl --install Ubuntu-24.04 --name Ubuntu2
こちらのユーザ名はuser2にしています。
ダウンロードしています: Ubuntu 24.04 LTS
インストールしています: Ubuntu 24.04 LTS
ディストリビューションが正常にインストールされました。'wsl.exe -d Ubuntu2' を使用して起動できます
Ubuntu2 を起動しています...
Provisioning the new WSL instance Ubuntu2
This might take a while...
Create a default Unix user account: user2
New password:
Retype new password:
passwd: password updated successfully
To run a command as administrator (user "root"), use "sudo <command>".
See "man sudo_root" for details.
ところで、まったく同じディストリビューションを使っているのに、ダウンロードはそれぞれで行うみたいです…。
ディストリビューションの一覧を確認してみます。
PS > wsl --list
Linux 用 Windows サブシステム ディストリビューション:
Ubuntu1 (既定値)
Ubuntu2
2つありますね。
確認。
## デフォルトのディストリビューション
PS > wsl
To run a command as administrator (user "root"), use "sudo <command>".
See "man sudo_root" for details.
$ id -un
user1
## ディストリビューション名の明示的な指定
PS > wsl -d Ubuntu1
To run a command as administrator (user "root"), use "sudo <command>".
See "man sudo_root" for details.
$ id -un
user1
## 別のディストリビューションを指定
PS > wsl -d Ubuntu2
To run a command as administrator (user "root"), use "sudo <command>".
See "man sudo_root" for details.
$ id -un
user2
こんな感じにほかの種類のディストリビューションを目的別に増やしてもよいでしょう。
PS > wsl --list
Linux 用 Windows サブシステム ディストリビューション:
Ubuntu1 (既定値)
Alma2
Alma1
Ubuntu2
デフォルトのディストリビューションを変更する
デフォルトのディストリビューションを変更するには、--set-defaultでディストリビューション名を指定します。
PS > wsl --set-default Ubuntu2
この操作を正しく終了しました。
確認。
PS > wsl
To run a command as administrator (user "root"), use "sudo <command>".
See "man sudo_root" for details.
$ id -un
user2
OKですね。