要約
# 環境を移動する
wsl --manage <distribution name> --move <destination>
# デフォルト以外の場所に環境を作成する
# 同じディストリビューションの別環境を作る
wsl --install <distribution name> --location <path> --name <name>
# 消す
wsl --unregister <name>
はじめに
- ディストリビューションそのものと、それをインストールしたものをどちらもディストリビューションと呼ぶとややこしいことになるので、このドキュメントでは後者は「環境」と呼称しています
- 何か正しい言い方があればご指摘ください
やりたいこと
- WSL環境(の仮想ドライブファイル)を規定のフォルダ以外の場所に移動したい
- そもそもデフォルト以外の場所に環境を作成したい
- 同じディストリビューションの環境を複数作りたい
おそらくは
- システムドライブが圧迫されてきたので容量を食う WSL 環境を別のドライブに退避させたい
- 検証用の別環境を作りたい
というあたりがメインの用途になるかと思います。
条件
- WSL 2.3.24.0 以降
- 古い状態であれば
wsl --updateでアップデートしてください
- 古い状態であれば
- 比較的最近(~2年前?)に新規登録されたディストリビューション
- インストール時に必ずしも Windows Store を経由しなくてもよくなったものが該当します
- 今のところ明確な見分け方はありませんが、対応していなければこのページで紹介されているコマンドはエラーになります
- Ubuntu だと 24.04 からです
- インストール時に必ずしも Windows Store を経由しなくてもよくなったものが該当します
注意
- 全部の環境が移るわけではありません
- 移せるのは主には仮想ドライブだけです
- 全体設定、環境間での共有部分、スワップファイルシステムなどは元の場所に残っています
- 全体設定、環境間での共有部分は移動できません
- スワップファイルシステム(の仮想ドライブファイル)は全体設定によって別途移動可能です
-
.wslconfigファイル、wsl settings アプリなどを使用します
-
既存の環境を別の場所に移す
sudo もしくは管理者 PowerShell コンソールで以下を実行します
wsl --manage <distribution name> --move <destination>
# 例: Ubuntu-24.04 の環境を D:\WSLEnv\Ubuntu-24.04 に移動する
wsl --manage Ubuntu-24.04 --move D:\WSLEnv\Ubuntu-24.04
wsl --manage とは
- すでに構築した wsl 環境を操作するためのコマンドです
- 2026年2月時点では、主に仮想ドライブファイルを操作する機能が用意されています
- 詳細は
wsl --helpを参照してください
新しい環境を最初からデフォルト以外の場所に作る、既存の環境と同じディストリビューションで別の環境を作る
sudo もしくは管理者 PowerShell コンソールで以下を実行します
wsl --install <distribution name> --location <path> --name <name>
# 例: Ubuntu-24.04 の環境を新しく Ubuntu-24.04-2nd という名前で D:\WSLEnv\Ubuntu-24.04-2nd に作成する
wsl --install Ubuntu-24.04 --location D:\WSLEnv\Ubuntu-24.04-2nd --name Ubuntu-24.04-2nd
-
--location,--nameは省略可能です- 今回の用途では両方省略することはないと思いますが、省略するとその項目はデフォルト値になります
補足
- この方法で追加した環境は、同じディストリビューションの環境とは別にスタートメニューに登録され、Windows ターミナルの一覧にも載ります
- 不要な環境の登録解除と削除は以下のコマンドで行えます
- 同じディストリビューションの他の環境には一切影響しません
wsl --unregister <name>
- このコマンドは実行すると元に戻せません
以上
おまけ1: 古い方法(export - inport)
- 古いバージョンでは
--exportと--inportを用いて環境の移動や追加を行っていました- こちらの方が圧倒的に説明文書が多いので、詳細は省略します
- いくつか問題はあるのですが、ある程度構築済みの環境を複製するなどこちらも一定の用途はあるかと思います
- 問題点としては、デフォルトユーザーが root になってしまうなど
# 既存のディストリビューションをtarアーカイブにエクスポートする
wsl --export <distribution_name> <output_tar_filename>
# エクスポートしたファイルを新しい環境にインポートする
wsl --import <distribution_name> <location> <tar_filename>
おまけ2: 古いディストリビューションの移動
- 過去のディストリビューションは Windows Store アプリ形式で配布していたため、上記の方法では移動等ができません
- 単純なドライブの移動は、Windows のアプリ設定から可能です
- 細かい移動先(フォルダなど)は指定できません
- おまけ1の export - import の方法も使えます
- 単純なドライブの移動は、Windows のアプリ設定から可能です