
WSL2 и Docker съедают место на диске? Узнайте, как сжать виртуальный диск (VHDX), очистить кэш контейнеров и образов, а также вернуть десятки гигабайт. Подробное руководство с командами PowerShell и WSL2.
Главная проблема: WSL2 хранит все данные в динамическом виртуальном диске (ext4.vhdx), который автоматически расширяется, но не сжимается обратно. Docker, кэш пакетов и временные файлы раздувают его до десятков гигабайт.
vhdx. Проще всего сделать это через PowerShell:Powershell
Get-ChildItem -Path $env:LOCALAPPDATA -Filter *.vhdx -Recurse -File -ErrorAction SilentlyContinue | Select-Object FullName
C:\Users\ВашеИмя\AppData\Local\Docker\wsl\data\ext4.vhdxDocker\wsl.)Powershell
# Проверить работающие дистрибутивы wsl --list --running wsl --terminate Ubuntu wsl --terminate docker-desktop # Остановить все wsl --shutdown # Дополнительно: завершить Docker (если используется) taskkill /IM "docker.exe" /F
Bash
# Очистка кэша пакетов sudo apt-get clean # Удаление ненужных зависимостей sudo apt-get autoremove # Дополнительно: ручная очистка временных файлов sudo rm -rf /tmp/*
Bash
# Удаление неиспользуемых образов и контейнеров docker system prune -a --volumes
.vhdx. Делается это через DiskPart:Powershell
# Перейти в DiskPart diskpart # Выбрать виртуальный диск select vdisk file="C:\путь\к\вашему\ext4.vhdx" attach vdisk readonly # Сжать диск compact vdisk # Отключить диск detach vdisk

Закройте DiskPart (exit). Посмотрите свойства файла.vhdx— он должен уменьшиться. Результат: В моём случае освободилось 76 ГБ — почти как новый SSD! Повторяйте процедуру раз в 2-3 месяца, чтобы WSL2 не захламлял диск.
Информацию подготовили
124 активных участника
Здесь структурирована база знаний приложения