Change Location of WSL2 Container
This post is from 2020 and may be out of date. Recent WSL versions can do this in one command:
wsl --manage <distro> --move <new-location>.
from dev.to
WSL2 container is located on the C:\ drive by default. This can be inconvenient, as it can grow to a substantial size.
The size of the container becomes a particular concern considering that to reap WSL2’s performance benefits, one should store the data directly in the container.
While there are guides on how to import a new distribution via PowerShell, there’s little information on how to simply move an existing container that is connected to an existing Linux WSL2 installation (e.g. Ubuntu).
- Open PowerShell:
1
$ wsl --list --verbose
Note the name of the distribution of interest: ```console NAME STATE VERSION
- Ubuntu Running 2 ```
- Shut down all WSL containers:
1
$ wsl --shutdown
- Open the Windows Registry Editor and navigate to:
1
HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Lxss\
There, you will see the same number of keys as you have WSL distributions with random names, e.g.
{c5ce672c-4a91-40aa-b32e-6a149ea92380}.
Inspect the contents of those keys, and specifically look for the valueDistributionName.
Naturally, you’re looking for the key with theDistributionNamevalue equal to the name of your distribution of interest. - Once located, Open the
BasePathvalue. It’ll look something like that:1
C:\Users\IvanGrishagin\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\LocalState
Follow the path, where you’ll find a file aptly named
ext4.vhdx.
Copy this file to your new destination, e.g.D:\VirtualMachines\WSL2\Ubuntu.Replace the path in the
BasePathvalue with the new one (e.g.D:\VirtualMachines\WSL2\Ubuntu).- All done!