📚

WSLに複数のUbuntuを作成する方法

2024/01/02に公開

§ 概要

以前書いた記事からの抜粋と若干の加筆・修正したものです。
WSL上に、複数のUbuntuを入れて切り替えたい方法についてです。

§ 手順

◆ WSLにUbuntuをインストール

まず、Ubuntuがインストールされていない場合、最初のUbuntuをインストールします。

PowerShell
> wsl --install Ubuntu-22.04

◆ wsl.conf ファイルの設定

wsl.conf設定ファイルに、ログインするデフォルトユーザとして、Ubuntuインストール時に入力したadminユーザのアカウントを指定します。

ログイン時に使用されるアカウントはレジストリに記録されますが、後の工程でUbuntuを複製した際にレジストリまでは複製しないため、ここで明示的に指定しておきます。

Ubuntu
$ sudo nano /etc/wsl.conf              # wsl.confファイルを新規作成

wsl.confの最後に[user]セクションを追加します。

/etc/wsl.conf
...()...

[user]
default = scott

◆ ディストリビューション名の複製

WSLにインストールされたディストリビューションを直接複製する機能はありませんが、ディスクイメージとしてバックアップ→リストアを行うことで複製することができます。

まず、今の"Ubuntu-22.04"ディストリビューションのバックアップを作成します (バックアップ先のパスとファイル名は適当に付けてください)。

PowerShell
> wsl --export "Ubuntu-22.04" D:\backup\backup.tar

複製するディストリビューションを格納するディレクトリを作成します。下の例では、ユーザーフォルダー直下にwslimagesというディレクトリを作成しています。

PowerShell
> mkdir $Env:USERPROFILE\wslimages

次に、作成したバックアップイメージを読み込みます。wsl --importの各引数の意味は順番に以下の通りです(dev1は例ですので、任意の名前にしてください)。

  • 新しいディストリビューション名 (下記の例ではdev1)
  • ディストリビューションのイメージファイル (下記の例では$Env:USERPROFILE\wslimages\dev1)
  • wsl --exportコマンドで作成したバックアップイメージ
PowerShell
> wsl --import "dev1" $Env:USERPROFILE\wslimages\dev1 D:\backup\backup.tar

wslコマンドでは、起動するディストリビューションを"-d <<ディストリビューション名>>"で指定できます。
しかし、毎回入力するのは面倒なので、"-d"オプションを省略したときのデフォルトのディストリビューションを指定することができます。
以下のコマンドで、デフォルトのディストリビューションを指定します。

PowerShell
> wsl --set-default "dev1"

作成したバックアップファイルはもう不要ですので、削除してもかまいません。

PowerShell
> rm D:\backup\backup.tar

Discussion