====== WSL2 ディストリビューションの複製 ====== --- //[[http://www.y2sunlight.com|y2sunlight]] 2020-12-07// [[wsl2:top|WSL2に戻る]] 関連記事 * [[wsl2:install|WSL2 インストール]] * [[wsl2:command|WSL2 コマンドリファレンス]] * [[wsl2:interop|WSL2 LinuxとのWindowsの相互運用性]] * WSL2 ディストリビューションの複製 * [[wsl2:terminal|Windows ターミナル]] リンク * [[https://docs.microsoft.com/en-us/windows/wsl/reference|Command Reference for Windows Subsystem for Linux]] --- Microsoftドキュメント 本章では、「[[wsl2:install|WSL2 インストール]]」でインストールした Ubuntu-20.04 を例に、WSL2のLinuxディストリビューションを複製する方法を説明します。 ----- ===== ストレージファイルの所在 ===== Microsoft Store からインストールした Linux ディストリビューションは以下の場所にあります。 {User Home}\AppData\Local\Packages\ このフォルダ下にパッケージ毎のフォルダがありそこにインストールされます。例えば、本編の「[[wsl2:install|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 * '''' は ''wsl -l -v'' で調べたディストリビューション名です。 * '''' にはエクスポートするtarファイルのパス名を指定して下さい。 === 実行例 === まず、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 * '''' には任意のディストリビューション名を指定できます。 * ''''にはインポート先のフォルダを指定します。 * '''' にはインポートするtarファイルのパス名を指定して下さい。 === 実行例 === ここでは、先に 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 -u * はディストリビューション名を指定します。 * はユーザ名を指定します。省略すると root で実行されます。 === 実行例 === 先にインポートした 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 * はディストリビューション名を指定します。 === 実行例 === 先にインポートした 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 登録を解除しています... \\