for package_dir in base_path.iterdir(): if package_dir.is_dir(): distro_name = distribution.lower() if distro_name in package_dir.name.lower(): vhdx = package_dir / 'LocalState' / 'ext4.vhdx' if vhdx.exists(): return vhdx return None distros = get_wsl_distributions() for distro in distros: if distro['version'] == '2': vhdx = get_vhdx_path(distro['name']) if vhdx: print(f"distro['name']: vhdx") PowerShell Function function Get-WSLStorageLocation Select-Object -First 1
find_wsl_storage "Ubuntu" # Export distribution wsl --export Ubuntu D:\backups\ubuntu.tar Import to new location wsl --import Ubuntu D:\WSL\Ubuntu D:\backups\ubuntu.tar --version 2 Remove old distribution wsl --unregister Ubuntu Quick Reference Card | Action | Command/Path | |--------|--------------| | Access Linux files from Windows | \\wsl$\Ubuntu\ | | Find VHDX location (WSL2) | %LOCALAPPDATA%\Packages\*\LocalState\ext4.vhdx | | Find rootfs location (WSL1) | %LOCALAPPDATA%\Packages\*\LocalState\rootfs\ | | List distributions | wsl -l -v | | Open WSL home in Explorer | explorer.exe \\wsl$\Ubuntu\home |
Default WSL 2 Storage Location C:\Users\[YourUsername]\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\LocalState\ext4.vhdx Distribution-Specific Paths | Distribution | Store Package Name | |--------------|-------------------| | Ubuntu | CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc | | Ubuntu 22.04 | CanonicalGroupLimited.Ubuntu22.04LTS_79rhkp1fndgsc | | Ubuntu 20.04 | CanonicalGroupLimited.Ubuntu20.04onWindows_79rhkp1fndgsc | | Debian | TheDebianProject.DebianGNULinux_76v4gfsz19hv4 | | Kali Linux | KaliLinux.54290C8133FEE_ey8k8hqnwqnmg | | openSUSE | 46932SUSE.openSUSELeap42.2_022rs5j4ny28 | Find Your WSL Files via Command Line PowerShell / CMD: where are wsl files stored in windows
distros = [] for line in lines: if line.strip(): parts = line.split() if len(parts) >= 3: distros.append( 'name': parts[0], 'state': parts[1], 'version': parts[2] ) return distros def get_vhdx_path(distribution): """Get VHDX file path for a WSL2 distribution""" package_patterns = 'ubuntu': 'CanonicalGroupLimited.Ubuntu', 'debian': 'TheDebianProject.DebianGNULinux', 'kali': 'KaliLinux',
# Get Windows username local win_user=$(cmd.exe /c echo %USERNAME% 2>/dev/null for package_dir in base_path
if ($packageDir) $vhdxPath = Join-Path $packageDir.FullName "LocalState\ext4.vhdx" if (Test-Path $vhdxPath) Write-Host "WSL2 VHDX Location: $vhdxPath" -ForegroundColor Green # Get file size $file = Get-Item $vhdxPath $sizeGB = [math]::Round($file.Length / 1GB, 2) Write-Host "Size: $sizeGB GB" return $vhdxPath
Always use \\wsl$\ path or WSL commands to interact with Linux files. Direct Windows file manipulation can corrupt your WSL installation! = 3: distros.append( 'name': parts[0]
# Get WSL distribution list wsl -l -v (Get-AppxPackage -Name " Ubuntu ").InstallLocation Navigate to WSL Linux filesystem from Windows \wsl.localhost[DistributionName]\ Example: \wsl.localhost\Ubuntu\home\username