WSL の場所を変更する

Windows Subsystem for Linux (WSL) 環境を、インストール時の場所から変更する方法です。


注意事項


本記事の手順でWSL環境を別のディレクトリに変更した場合、

となります。

特に、WSLで複数ディストリビューションをインストールしている場合は、場所を移動したディストリビューションが、デフォルトになっていない場合にリセットを実行すると、どうも Windowsの設定から消えてしまうようです。
リセットは実行しないようにして下さい。

なお、移動した場所を、元の場所に戻すとリセットは機能するようになります。


WSL環境を別の場所に移す


ここでは、例として移動先ディレクトリを d:\\wsl\ とします。

この後の手順で LxRunOffline.exe を使用します。

https://github.com/DDoSolitary/LxRunOffline/releases/latest
にアクセスし、LxRunOffline-vXXXX.zip をダウンロード(XXXX部分はバージョンによる)・展開すると、LxRunOffline.exe があります。

PowerShell を開き、LxRunOffline.exe があるディレクトリに移動します。

インストール済みディストリビューション名を確認します
.\LxRunOffline.exe list と実行すると、ディストリビューション名が表示されます。
この例では、Ubuntu-18.04 です。


PS C:\LxRunOffline-v3.4.0> .\LxRunOffline.exe list
Ubuntu-18.04


次のコマンドを実行すると、インストール済みディストリビューションの場所が表示されます。
-n に続けて、先ほど確認したディストリビューション名を指定します。


PS C:\LxRunOffline-v3.4.0> .\LxRunOffline.exe get-dir -n Ubuntu-18.04
C:\Users\XXXXXX\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu18.04onWindows_xxxxxxxxxxxxx\LocalState


WSLのバックグラウンドプロセスが無いように、WSLを再起動しておきます。
次の記事の手順です。

WSL を再起動するには: パソコン鳥のブログ


次のコマンドを実行して、移動先ディレクトリにユーザに書き込み権限を設定します。
$env:USERNAME の場所もそのまま書いてください。


icacls D:\wsl /grant $env:USERNAME":(OI)(CI)(F)"


移動実行します。
次のコマンドを実行します。
-n オプションで、移動対象を指定します。
手前の手順で .\LxRunOffline.exe list で確認したディストリビューション名を指定します。
-d オプションで、移動先を指定します。


.\LxRunOffline.exe move -n Ubuntu-18.04 -d d:\wsl\Ubuntu-18.04


手前の手順でWSLを再起動しておかないと、この時下記のようにエラーになります。


[ERROR] The distro "Ubuntu-18.04" has running processes and can't be operated.


次のコマンドで -n に続けて、以前の手順で確認したディストリビューション名を指定します。
ディストリビューションの場所が表示されるので、変更されていることを確認します。


PS C:\LxRunOffline-v3.4.0> .\LxRunOffline.exe get-dir -n Ubuntu-18.04
d:\wsl\Ubuntu-18.04


WSL で複数ディストリビューションをインストールしている場合、デフォルトディストリビューションが変わっていないか確認します。


.\LxRunOffline.exe gd


デフォルトが変わっていた場合、次のコマンドで -n でデフォルトにするディストリビューション名を指定します。


.\LxRunOffline.exe sd -n Ubuntu-18.04



移動したWSL環境のアンインストール


[注意事項] でも説明の通り、場所を移動すると、Windows10の設定-アプリ-アプリと機能 からアンインストールしても、インストール先ディレクトリは消されずに残ります。

その為、ここでの手順でアンインストールして下さい。

まず、WSLのバックグラウンドプロセスが無いように、WSLを再起動しておきます。
次の記事の手順です。

WSL を再起動するには: パソコン鳥のブログ


次のコマンドでアンインストールします。
-n でディストリビューション名を指定します。


.\LxRunOffline.exe ui -n Ubuntu-18.04



参考


WSL+LxRunOfflineでシステムドライブ外に環境構築 - Qiita
(a)WSLをCドライブ以外の場所に置き,(b)homeも別の場所に置いて,(c)chmodも使えるようにする方法.(自分用メモ) | 萌えとかプログラミングとか
WSLで同一のLinuxディストリビューションを複数インストールする方法 | 東京大学 佐々木淳 研究室 沿岸環境学 海岸工学 環境水工学 水環境学


この記事へのコメント