WSL – ディストリビューションの複製

WSL にてディストリビューションを複製するための手順です。
オリジナルのイメージを汚さずに何かを試行したいときに使います。

Ubuntu 22.04 の例を掲載します。

目次

要約

リスト

> wsl -l -v
  NAME            STATE           VERSION
* Ubuntu-22.04    Stopped         2

エクスポート

> wsl --export Ubuntu-22.04 D:\wsl\images\Ubuntu-22.04.tar

インポート

> wsl --import Ubuntu-22.04_test D:\wsl\storages\Ubuntu-22.04_test D:\wsl\images\Ubuntu-22.04.tar

デフォルトユーザを定義

/etc/wsl.conf にデフォルトユーザを定義する。

[user]
default=XXXXX

削除

> wsl --unregister Ubuntu-22.04_test

WSL ディストリビューションの複製方法

バックアップ取得 – export

Ubuntu-22.04 という名称のディストリビューションがインストールされている前提とします。

> wsl -l -v
  NAME            STATE           VERSION
* Ubuntu-22.04    Stopped         2

PowerShell より次のコマンドでイメージの export ができます。

> wsl --export Ubuntu-22.04 D:\wsl\images\Ubuntu_22-04.tar

export 先のフォルダは事前に作成する必要があります。
ファイル名は任意です。

登録(import)

PowerShell より次のコマンドでイメージを import することができます。

> wsl --import Ubuntu-22.04_test D:\wsl\storages\Ubuntu-22.04_test D:\wsl\images\Ubuntu_22-04.tar

コマンドの形式は wsl --import <Distro> <InstallLocation> <FileName> であり、以下は各引数の説明です。

引数設定例説明
DistroUbuntu_testディストリビューション名
InstallLocationD:\wsl\storages\Ubuntu_22.04_testインポート先のストレージ
storages フォルダまでは事前作成しておくこと
FileNameD:\wsl\images\Ubuntu_22-04.tar事前に export したファイル名

コマンドが正常終了すると wsl に新規のディストリビューションが追加されます。
また、D:\wsl\storages\Ubuntu-22.04_test フォルダ配下に ext4.vhdx というファイルが生成されます。

> wsl -l -v
  NAME                 STATE           VERSION
* Ubuntu-22.04         Stopped         2
  Ubuntu-22.04_test    Running         2

デフォルトユーザの変更

import 直後のディストリビューションでは、ログインユーザが root になってしまいます。
PowerShell より wsl -d Ubuntu-22.04_test で WSL 起動後、wsl.conf にデフォルトユーザを記述します。
XXXXX の部分は自分のユーザ名に置き換えてください。

# cat << EOF >> /etc/wsl.conf
[user]
default=XXXXX
EOF

追加後は次のようになっているかと思います。(Ubuntu-20.04 では [boot] の項目はありませんでした)

$ cat /etc/wsl.conf

[boot]
systemd=true
[user]
default=XXXXX

上記の設定は WSL 再起動後に反映されます。
一度、次のコマンドで WSL を停止する必要があります。

> wsl -t Ubuntu-22.04_test

次回の接続からは XXXXX で指定したユーザがログインのデフォルトになります。

なお、wsl -d Ubuntu-22.04_test -u XXXXX と実行すれば、wsl.conf を作成せずともオンデマンドでログインユーザの変更が可能です。

不要になったら

登録解除(unregister)

次のコマンドでディストリビューションを削除できます。

wsl --unregister Ubuntu-22.04_test

wsl のリストから Ubuntu_test が消えます。

> wsl -l -v
  NAME            STATE           VERSION
* Ubuntu-22.04    Stopped         2

ext4.vhdx のストレージファイルも消えます。

  • URLをコピーしました!
  • URLをコピーしました!

コメント

コメントする

目次