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_testWSL ディストリビューションの複製方法
バックアップ取得 – export
Ubuntu-22.04 という名称のディストリビューションがインストールされている前提とします。
> wsl -l -v
NAME STATE VERSION
* Ubuntu-22.04 Stopped 2PowerShell より次のコマンドでイメージの export ができます。
> wsl --export Ubuntu-22.04 D:\wsl\images\Ubuntu_22-04.tarexport 先のフォルダは事前に作成する必要があります。
ファイル名は任意です。
登録(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> であり、以下は各引数の説明です。
| 引数 | 設定例 | 説明 |
|---|---|---|
| Distro | Ubuntu_test | ディストリビューション名 |
| InstallLocation | D:\wsl\storages\Ubuntu_22.04_test | インポート先のストレージ storages フォルダまでは事前作成しておくこと |
| FileName | D:\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_testwsl のリストから Ubuntu_test が消えます。
> wsl -l -v
NAME STATE VERSION
* Ubuntu-22.04 Stopped 2ext4.vhdx のストレージファイルも消えます。




コメント