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

  • 2022年7月31日
  • 2022年9月17日
  • IDE
  • 152View
  • 0件
IDE

要約

エクスポート
wsl --export Ubuntu D:\wsl\images\Ubuntu_20-04.tar
インポート
wsl --import Ubuntu_test D:\wsl\storages\Ubuntu_test D:\wsl\images\Ubuntu_20-04.tar
デフォルトユーザを定義

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

[user]
default=XXXXX
削除
wsl --unregister Ubuntu_test

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

事前準備(任意)

後述のデフォルトユーザの変更(wsl.conf の作成)を、バックアップ取得前に実施しておくのがお勧めです。
ディストリビューションをいくつも複製する場合、オペレーションが一度で充足します。

バックアップ取得(export)

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

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

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

wsl --export Ubuntu D:\wsl\images\Ubuntu_20-04.tar

export 先のフォルダは事前に作成しましょう。
ファイル名は任意です。

登録(import)

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

wsl --import Ubuntu_test D:\wsl\storages\Ubuntu_test D:\wsl\images\Ubuntu_20-04.tar

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

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

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

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

デフォルトユーザの変更

import 直後のディストリビューションでは、ログインユーザが root になってしまいます。
PowerShell より wsl -d Ubuntu_test で WSL 起動後、wsl.conf を作成しましょう。
XXXXX の部分は自分のユーザ名に置き換えます。

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

上記の設定は WSL 再起動後に反映されます。
一度 wsl -t Ubuntu_test で WSL を停止する必要があります。

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

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

不要になったら

登録解除(unregister)

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

wsl --unregister Ubuntu_test

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

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

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

参考:
Microsoft:WSL の基本的なコマンド
Microsoft:WSL で使用する Linux ディストリビューションをインポートする