Windows 11のWSL2で複数の同じOS (Ubuntu 22.04) を使用

他のWebページを参考にWindows 11のWSL2で複数の同じOS (Ubuntu 22.04) を使用する環境を用意したときのメモになります。Windows 11のWSL2にはすでに Ubuntu 22.04 が一つインストールされている状態での手順になります。

1. Power Shellを管理者権限で起動し、下記のコマンドを実行します。

PS C:\Users\username> wsl -l --verbose
  NAME                   STATE           VERSION
* Ubuntu                 Running         2

2. 下記のコマンドを実行し、使用しているOS環境 (Ubuntu) をエクスポートします。

PS C:\Users\username> wsl --export Ubuntu Ubuntu-22.04.4.Copy.tar

3. 下記のコマンドを実行し、エクスポートしたOS環境をインポートします。

PS C:\Users\username> wsl --import Ubuntu-22.04.4.Copy Ubuntu-22.04.4.Copy Ubuntu-22.04.4.Copy.tar

4. もう一度手順 1. のコマンドを実行すると下記のように表示されます。

PS C:\Users\username> wsl -l --verbose
  NAME                   STATE           VERSION
* Ubuntu                 Running         2
  Ubuntu-22.04.4.Copy    Stopped         2

5. 下記のコマンドでインポートしたOS環境 (Ubuntu-22.04.4.Copy) に指定したユーザー名でログインできることを確認しました。

PS C:\Users\username> wsl -d Ubuntu-22.04.4.Copy -u username

6. OS環境 (Ubuntu-22.04.4.Copy) 内で、次回以降、インポートしたOS環境 (Ubuntu-22.04.4.Copy) を起動するときのデフォルトのログインユーザー名を設定します。vi エディタ等で /etc/wsl.conf に下記のハイライトした行を追加します。下記の例ではユーザー名は username です。

username@ESPRIMOWD2H2:~$ cat /etc/wsl.conf

[boot]
systemd=true

[user]
default=username

7. インポートしたOS環境には、下記の例のようにエクスポートした環境で作成したディレクトリ、ファイル等が含まれていることを確認しました。

fukagai@ESPRIMOWD2H2:~$ ls /repos/
images  yolov9
fukagai@ESPRIMOWD2H2:~$ sudo docker ps -a
[sudo] password for fukagai:
CONTAINER ID   IMAGE                              COMMAND                  CREATED        STATUS                    PORTS     NAMES
0c38c2a0b984   nvcr.io/nvidia/pytorch:21.11-py3   "/opt/nvidia/nvidia_…"   14 hours ago   Exited (0) 14 hours ago             yolov9-gpu

8. OS環境は下記のコマンドで削除できます。下記のコマンドではOS環境 (Ubuntu) を削除しています。

PS C:\Users\username> wsl --unregister Ubuntu

9. 補足

Ubuntu 22.04 環境で NVIDIA の GPGPU を使う Docker の設定手順の再確認をしたかったので、上記のように同じバージョンの OS を複数 WSL2 で動かす手順の確認をしました。

手順 1. から 7. までで元のOS環境のバックアップを取ることができることを確認しました。

手順 8. で元の Ubuntu 22.04 の環境を削除し、下記のコマンドで WSL2 に Ubuntu 22.04 を再インストールしました。インストールされた Ubuntu 22.04 は下記のコマンドの例のように Ubuntu 22.04 をインストールした直後の環境となっていることを確認しました。

PS C:\Users\username> wsl --install
Ubuntu は既にインストールされています。
Ubuntu を起動しています...
Installing, this may take a few minutes...
Please create a default UNIX user account. The username does not need to match your Windows username.
For more information visit: https://aka.ms/wslusers
Enter new UNIX username: fukagai
New password:
Retype new password:
passwd: password updated successfully
この操作を正しく終了しました。
Installation successful!
To run a command as administrator (user "root"), use "sudo <command>".
See "man sudo_root" for details.

Welcome to Ubuntu 22.04.3 LTS (GNU/Linux 5.15.146.1-microsoft-standard-WSL2 x86_64)

 * Documentation:  https://help.ubuntu.com
 * Management:     https://landscape.canonical.com
 * Support:        https://ubuntu.com/advantage


This message is shown once a day. To disable it please create the
/home/fukagai/.hushlogin file.
fukagai@ESPRIMOWD2H2:~$ ls
fukagai@ESPRIMOWD2H2:~$ sudo docker ps -a
[sudo] password for fukagai:
sudo: docker: command not found
fukagai@ESPRIMOWD2H2:~$ history
    1  ls
    2  sudo docker ps -a
    3  history
fukagai@ESPRIMOWD2H2:~$ cat /etc/issue
Ubuntu 22.04.3 LTS \n \l

返信を残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA