WSL не освобождает место на жестком диске [закрыто]

Вопросы и ответы

У меня WSL 2 Ubuntu 22.04 на Windows 11.

wsl --list                                                                                                                        Windows Subsystem for Linux Дистрибуции:                                                                              Ubuntu-22.04 (По умолчанию)                                                                                                  docker-desktop

Размер ext4.vhdx составляет ~265GB, как указано на скриншоте ниже:

введите описание изображения здесь

Я уверен, что использовал лишь немного пространства, но здесь остается только 220GB свободного.
введите описание изображения здесь

Я использовал эти два метода для уменьшения диска WSL и возврата свободного дискового пространства:

  1. Метод 1

    wsl --shutdown 
    optimize-vhd -Path .\ext4.vhdx -Mode full
    
  2. Метод 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), в который помещаются ваши данные.

Возможные причины

  1. Увеличение размера диска: Когда вы используете WSL, размер виртуального диска может увеличиваться, но не уменьшаться автоматически, даже если вы удаляете данные. Это связано с тем, что WSL использует файл ext4.vhdx, который не сжимается автоматически при удалении файлов.

  2. Неэффективное использование пространства: Иногда приложения или системы создают временные файлы или кэши, которые не освобождаются даже после их удаления.

Решения

Чтобы решить проблему с недостатком свободного пространства на вашем виртуальном диске, выполните следующие шаги:

1. Очистка пространства в Ubuntu

Перед тем, как пытаться уменьшить размер файла ext4.vhdx, рекомендуется очистить ваше файловое пространство в Ubuntu:

sudo apt-get autoremove
sudo apt-get clean

Эти команды удалят неиспользуемые пакеты и временные файлы.

2. Использование команд для сжатия виртуального диска

После очистки выполните следующие шаги для уменьшения размера виртуального диска:

Метод 1:

  1. Остановите WSL:

    wsl --shutdown
  2. Откройте PowerShell с правами администратора.

  3. Используйте команду optimize-vhd для оптимизации файла ext4.vhdx. Замените путь на актуальный путь к вашему файлу:
    optimize-vhd -Path "C:\Users\user.name\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu22.04LTS_79rhkp1fndgsc\LocalState\ext4.vhdx" -Mode full

Метод 2:

  1. Остановите WSL:

    wsl --shutdown
  2. Запустите diskpart:

    diskpart
  3. Подключите виртуальный диск:
    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.

Оцените материал
Добавить комментарий

Капча загружается...