У меня WSL 2 Ubuntu 22.04 на Windows 11.
wsl --list Windows Subsystem for Linux Дистрибуции: Ubuntu-22.04 (По умолчанию) docker-desktop
Размер ext4.vhdx
составляет ~265GB, как указано на скриншоте ниже:
Я уверен, что использовал лишь немного пространства, но здесь остается только 220GB свободного.
Я использовал эти два метода для уменьшения диска WSL и возврата свободного дискового пространства:
-
Метод 1
wsl --shutdown optimize-vhd -Path .\ext4.vhdx -Mode full
-
Метод 2
wsl --shutdown diskpart select vdisk file="C:\Users\user.name\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu22.04LTS_79rhkp1fndgsc\LocalState\ext4.vhdx" attach vdisk readonly compact vdisk detach vdisk
df -h
выдает мне следующее:
Ответ
Проблема, с которой вы столкнулись, связана с тем, что WSL (Windows Subsystem for Linux) не освобождает пространство на жестком диске даже после того, как вы удалили файлы из вашей системы Ubuntu. Это может быть связано с тем, как WSL управляет виртуальным диском (файлом ext4.vhdx
), в который помещаются ваши данные.
Возможные причины
-
Увеличение размера диска: Когда вы используете WSL, размер виртуального диска может увеличиваться, но не уменьшаться автоматически, даже если вы удаляете данные. Это связано с тем, что WSL использует файл
ext4.vhdx
, который не сжимается автоматически при удалении файлов. - Неэффективное использование пространства: Иногда приложения или системы создают временные файлы или кэши, которые не освобождаются даже после их удаления.
Решения
Чтобы решить проблему с недостатком свободного пространства на вашем виртуальном диске, выполните следующие шаги:
1. Очистка пространства в Ubuntu
Перед тем, как пытаться уменьшить размер файла ext4.vhdx
, рекомендуется очистить ваше файловое пространство в Ubuntu:
sudo apt-get autoremove
sudo apt-get clean
Эти команды удалят неиспользуемые пакеты и временные файлы.
2. Использование команд для сжатия виртуального диска
После очистки выполните следующие шаги для уменьшения размера виртуального диска:
Метод 1:
-
Остановите WSL:
wsl --shutdown
-
Откройте PowerShell с правами администратора.
- Используйте команду
optimize-vhd
для оптимизации файлаext4.vhdx
. Замените путь на актуальный путь к вашему файлу:optimize-vhd -Path "C:\Users\user.name\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu22.04LTS_79rhkp1fndgsc\LocalState\ext4.vhdx" -Mode full
Метод 2:
-
Остановите WSL:
wsl --shutdown
-
Запустите
diskpart
:diskpart
- Подключите виртуальный диск:
select vdisk file="C:\Users\user.name\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu22.04LTS_79rhkp1fndgsc\LocalState\ext4.vhdx" attach vdisk readonly compact vdisk detach vdisk
3. Проверка после сжатия
После выполнения одной из вышеперечисленных процедур снова запустите WSL и проверьте размеры, используя команду:
df -h
Заключение
Если обе вышеуказанные процедуры не привели к уменьшению размера ext4.vhdx
, попробуйте удалить ненужные файлы вручную и повторно выполнить команды для сжатия виртуального диска. В большинстве случаев правильная очистка и оптимизация должны помочь вам вернуть свободное пространство на вашем диске WSL.