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>
であり、以下は各引数の説明です。
引数 | 設定例 | 説明 |
---|---|---|
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_test
wsl のリストから Ubuntu_test が消えます。
> wsl -l -v
NAME STATE VERSION
* Ubuntu-22.04 Stopped 2
ext4.vhdx
のストレージファイルも消えます。
コメント