目次

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

y2sunlight 2020-12-07

WSL2に戻る

関連記事

リンク

本章では、「WSL2 インストール」でインストールした Ubuntu-20.04 を例に、WSL2のLinuxディストリビューションを複製する方法を説明します。


ストレージファイルの所在

Microsoft Store からインストールした Linux ディストリビューションは以下の場所にあります。

{User Home}\AppData\Local\Packages\

このフォルダ下にパッケージ毎のフォルダがありそこにインストールされます。例えば、本編の「WSL2 インストール」で例題としてインストールした Ubuntu 20.04 LTS は、以下のフォルダに配置されます。

{User Home}\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu20.04onWindows_79rhkp1fndgsc

Ubuntu をインストールした直後、筆者の環境では上のフォルダの中に以下のフォルダがありました:

AC\            AppData\    LocalCache\     LocalState\
RoamingState\  Settings\   SystemAppData\  TempState\

実際のストレージファイルは LocalStateフォルダの中にある ext4.vhdx になります。このファイルがディストリビューションのエクスポートの対象です。


エクスポート

コマンド

wsl --export <Distro> <FileName>

実行例

まず、Power Shell を起動して、エクスポートするディストリビューション(Ubuntu-20.04)を wsl -l -v で調べます。

PS C:\> wsl -l -v
  NAME            STATE           VERSION
* Ubuntu-20.04    Running         2

Ubuntuが起動中なら、Ubuntuのターミナルを閉じてから実行を停止します。

PS C:\> wsl -t Ubuntu-20.04

Ubuntu-20.04をエクスポートします。

PS C:\> wsl --export Ubuntu-20.04 D:\WSL2\Exports\Ubuntu-20.04.tar


インポート

コマンド

wsl --import <Distro> <InstallLocation> <FileName>

実行例

ここでは、先に Ubuntu-20.04 をエクスポートしたtarファイルをインポートします。

PS C:\> wsl --import Ubuntu-20.04-2 D:\WSL2\Packages\Ubuntu-20.04-2 D:\WSL2\Exports\Ubuntu-20.04.tar

wsl -l -v でディストリビューションの一覧を表示します。

PS C:\> wsl -l -v
  NAME              STATE           VERSION
* Ubuntu-20.04      Stopped         2
  Ubuntu-20.04-2    Stopped         2

Ubuntu-20.04の前に付いている * はそれがデフォルトのディストリビューションであることを示しています。

また、この時点で D:\WSL2\Packages\Ubuntu-20.04 の中は以下のようになっています。

ext4.vhdx

Ubuntuのストレージイメージがあるだけです。


シェルの起動

コマンド

wsl -d <Distro> -u <UserName>

実行例

先にインポートした Ubuntu-20.04-2 をユーザを指定して起動します。ユーザ(y2sunlight) はエクスポートした時点のUbuntuに含まれるのでそのまま使用できます。

PS C:\> wsl -d Ubuntu-20.04-2 -u y2sunlight

この時、Power Shell が bash に切り替わりUbuntuが利用できるようになります。Power Shell に戻るには、exit または logout コマンドを使います。

$ exit

ショートカットの作成

ショートカットを作成することで、新しいLinuxシェルを簡単に起動できます。デスクトップ上を右クリックして[新規作成][ショートカット]を選択し、以下の内容でショートカットを作ります。

項目の場所wsl -d Ubuntu-20.04-2 -u y2sunlight
ショートカットの名前Ubuntu-20.04-2


登録解除

コマンド

wsl --unregister <Distro>

実行例

先にインポートした Ubuntu-20.04-2 の登録解除を行います。登録解除するとストレージイメージ ext4.vhdx も消えるので必要に応じてエクスポートしてバックアップして下さい。

まず、現在のディストリビューションを wsl -l -v で調べます。

PS C:\> wsl -l -v
  NAME              STATE           VERSION
* Ubuntu-20.04      Stopped         2
  Ubuntu-20.04-2    Running         2

Ubuntu-20.04-2が起動中なら実行を停止します。

PS C:\> wsl -t Ubuntu-20.04-2

Ubuntu-20.04を登録解除します。

PS C:\> wsl --unregister Ubuntu-20.04-2
登録を解除しています...