WSLで同一のUbuntuディストリビューションを複数インストール

Ubuntu

概要

Windows上で同一のUbuntuディストリビューションをインストールして使いたいということがありました。

Microsoft Storeなどから直接的に同一ディストリビューションを入れることはできないようで、一度ベースになるものをエクスポートして、それをインポートして複製して実現するというのが一般的なやり方のようです。

ここでは、その際に試したUbuntu22.04を複数インストールして使用する方法を記載していきます。

環境

  • Windows 11 Pro
  • WSL2

手順

まずは1つ目の、Ubuntu22.04をWSL2上にインストールしていきます。

Microsoft StoreからUbuntuをインストールします。インストール後は一度Ubuntuを一度開いて、ユーザやパスワード設定を行います。

完了したら、Windows側のコマンドプロンプトで以下のコマンドを実行します。これで複製の元になるバックアップファイルをエクスポートすることができます。(参考:バックアップファイル容量 1GB程度)

wsl --export Ubuntu ubuntu_backup.tar

この状態で、wsl -l –verboseコマンドを実行した時の私のPCのWSLのリストを表示した結果以下のようになりました。dockerが入っていますがこちらは気にせず、Ubuntu22.04のディストリビューションが1つ入っている状態になります。

C:\Users\remix>wsl -l --verbose
  NAME                   STATE           VERSION
* docker-desktop-data    Running         2
  Ubuntu                 Stopped         2
  docker-desktop         Running         2

バックアップしたファイルをもとに、インポートを行いUbuntu22.04の複製を行います。

以下のコマンドでインポートができます。

wsl --import [Name] [InstallationDirectory] [BackupFile]

私のほうでは以下のコマンドを実行しました。あらかじめCドライブ直下にwslフォルダを作っておく必要があります。wslに関するファイルはC:\wsl以下に入れておくスタイルにしています。

wsl --import Ubuntu2 c:\wsl\ubuntu2 ubuntu_backup.tar

import完了後に、WSLの一覧を確認したところUbuntu2というのが増えており、正しくインポートできていそうです。

C:\Users\remix>wsl -l --verbose
  NAME                   STATE           VERSION
* docker-desktop-data    Running         2
  Ubuntu                 Stopped         2
  Ubuntu2                Stopped         2
  docker-desktop         Running         2

Ubuntu2を開くために、VS Codeで接続したいと思います。VS Codeを開いて左下の緑の端末マークを押してディストリビューションを使用してWSLに接続を選択します。(緑色のマークが出てこない人は拡張機能のWSLをインストールする必要があると思います)

Ubuntu2を選択します。

これで複製したUbuntu2に接続して、ファイルの確認や、ターミナルを使っていくことができます。

このまま使う場合だと、ターミナルのログインユーザがrootになっているので、rootで入りたくないという方は以下の設定を行います。

Ubuntuのターミナルから、/etc/wsl.confを開きます。

root@remix-pc:~# nano /etc/wsl.conf

以下の内容を追記します。ユーザ名の部分はご自身の追加したユーザ名にしてください。

[user]
default=ユーザ名

変更を反映するために、一度WSLを落として、もう一度VS Codeを起動します。
終了するには以下のコマンドを実行します。

wsl --shutdown

以下のようにrootで起動せずに指定したユーザで起動するようになります。

コメント