Как сжать виртуальный диск WSL2?

В данной статье опишем как можно сжать виртуальный диск WSL2. Так получилось, что в процессе работы с Docker-контейнерами внутри WSL2, виртуальный диск WSL2 сильно раздулся. Если раньше он занимал 20Gb, то теперь стал весить 72Gb. Очевидно, что его нужно сжать. Немного погуглив наткнулся на замечательную статью, в которой описывается как это сделать, и основные положения которой я хочу тут изложить но уже на русском языке.

Прежде чем начинать

Необходимо проверить какие виртуальные машины с линукс у нас запущены. Делается при помощи команды wsl.exe --list --verbose

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

PS C:\Users\valorin> wsl.exe --list --verbose
  NAME            STATE           VERSION
* WLinux          Running         2
  Debian          Stopped         2
  Ubuntu-18.04    Stopped         2
  kali-linux      Stopped         2

Далее нужно будет остановить виртуальную машину диск которой вы собираетесь сжимать, в моем случае это WLinux. Запускаете в терминале PowerShell команду:

PS C:\Users\valorin> wsl.exe --terminate WLinux

Можно приступать к сжатию, но перед этим крайне рекомендуется сделать бэкап виртуального диска. Для этого достаточно просто его скопировать куда нибудь.

Использование DISKPART для сжатие VHDX диска WSL2

Можно спокойно использовать утилиту diskpart для сжатия диска, она успешно с этим справляется, без потери данных. В моему случае удалось сжать диск с 72Gb до 23Gb. Итак погнали, запутите diskpart в консоли

PS C:\Users\valorin> diskpart

Далее вам нужно вбить команду

select vdisk file="//filepath"

Где //filepath это путь до файла с расширением .vhdx. У всех путь будет свой, но общий принцип такой. Нужно зайти в папку AppData, далее в папку Local, далее Packages и там найти папку вашей виртуальной машины. В моем случае было не трудно догадаться что это папка CanonicalGroupLimited.Ubuntu20.04onWindows_79rhkp1fndgsc так как у меня виртуальная машина WSL Ubuntu.

Итоговая команда имеет вид:

select vdisk file="C:\Users\User\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu20.04onWindows_79rhkp1fndgsc\LocalState\ext4.vhdx"

Дальше запустится процесс сжатия, и спустя некоторое время, в зависимости от объема сжимаемого пространства должно показаться сообщение об окончании процесса. На этом все.

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

Ваш адрес email не будет опубликован.