⚠️ То есть может быть ситуация, когда файл
ext4.vhdx на системном диске Windows занимает 50 ГБ, хотя внутри WSL фактически используется всего 3 Гб. Такие VHDX файлы можно сжать в оффлайне режиме вручную.📌 Проверить фактически занятое место внутри WSL можно командой:
df -h /Чтобы найти путь к VHDX файлу вашего дистрибутива WSL, сначала выведите список всех установленных WSL:
wsl.exe --list --verboseЗатем извлеките информацию о виртуальном диске указанного WSL образа из реестра:
$distro='Ubuntu-24.04'$vhdx=(Get-ChildItem -Path HKCU:\Software\Microsoft\Windows\CurrentVersion\Lxss | Where-Object { $_.GetValue("DistributionName") -eq $distro}).GetValue("BasePath") + "\ext4.vhdx"Останавливаем запущенный образ:
wsl --shutdownСжимаем VHDX командой PowerShell:
Optimize-VHD -Path "C:\...\ext4.vhdx" -Mode FullИли с помощью diskpart:
select vdisk file="C:\...\ext4.vhdx"attach vdisk readonlycompact vdiskdetach vdiskАналогичным образом можно сжать VHDX файл Docker Desktop после удаления неиспользуемых образов и контейнеров:
Optimize-VHD -Path "$env:LOCALAPPDATA\Docker\wsl\disk\docker_data.vhdx" -Mode Full📚 В статье разбираем, где хранятся VHDX диски WSL и Docker Desktop, как определить фактическое использование места, очистить данные и уменьшить размер виртуального диска через
Optimize-VHD или diskpart. Также рассмотрен экспериментальный sparse-режим WSL2, который позволяет автоматически возвращать свободное место хостовой системе.Как сжать виртуальный диск WSL2 или Docker Desktop в Windows?
