Что такое VHDX и откуда он у вас
VHDX — формат виртуальных дисков Windows, наследник VHD с потолком в 64 ТБ и защитой от сбоев питания, внутри которого живёт полноценная файловая система, монтируемая как обычный диск. Скорее всего, вы не создавали его специально: WSL2 держит каждый дистрибутив Linux в ext4.vhdx, Docker Desktop складывает образы поверх них, Dev Drive — это смонтированный VHDX по замыслу, а Hyper-V-машины и некоторые резервные средства добавляют свои. Поищите на диске *.vhdx — скорее всего, найдётся не один.
- Дистрибутивы WSL2: ext4.vhdx в %LOCALAPPDATA%\Packages\...\LocalState — невидимы для df внутри Linux
- Docker Desktop: диск данных в WSL растёт с каждым загруженным образом и слоем контейнера
- Dev Drive: смонтированный VHDX, который и должен там быть, — сначала смотрите реальное заполнение
- Машины Hyper-V: в папке Hyper-V по умолчанию или там, где вы создавали ВМ
- Резервные и "спасательные" образы от средств клонирования — сюрприз на 40 ГБ в корне C:\
Проблема роста: расширяется по запросу, не сжимается никогда
Динамический VHDX растёт при записи данных, но не сжимается при удалении: место помечено свободным внутри гостевой файловой системы, а файл на хосте остаётся на пиковом уровне. Дистрибутив WSL2, в котором вы качали контейнеры, собирали ядра и всё удалили, может держать ext4.vhdx на 60 ГБ при 12 ГБ реальных данных: Linux говорит, что пусто, Windows — что занято, и оба правы. Это не утечка, а конструкция, и она означает, что каждая уборка внутри WSL не вернёт C: ни гигабайта, пока вы не сожмёте сам файл.
Как вернуть место безопасно
Для WSL2: сначала wsl --shutdown, затем либо wsl --manage <дистрибутив> --set-sparse true на свежих сборках, либо экспорт-импорт — выгрузить в .tar, unregister, импортировать обратно, и новый vhdx совпадёт с реальным размером данных. Для Docker Desktop сначала почистите образы и тома внутри самого Docker, иначе через неделю будете ужимать тот же файл. Машины Hyper-V сжимаются из «Диспетчера Hyper-V» (или Optimize-VHD -Path <файл> -Mode Full) при выключенной ВМ, а dev-диски просят трезвой оценки: смонтировать, посмотреть фактическое заполнение, менять размер по плану. И главное правило: никогда не удаляйте .vhdx, который не можете опознать, — если на него смотрит живая ВМ или дистрибутив, вы только что стёрли её диск целиком.
Вопросы и ответы
Можно ли удалить файл VHDX?
Только если известно, кому он принадлежит. Осиротевший образ резервной копии или остаток удалённого дистрибутива WSL — законная добыча; VHDX живой ВМ или Docker — это её диск на хосте, удаление уничтожит данные.
Почему виртуальный диск WSL2 такой большой?
Динамический VHDX растёт по запросу и сам не сжимается: удаление файлов внутри Linux не возвращает место Windows. Ужмите его через wsl --manage --set-sparse или экспортом-импортом дистрибутива.
Понятно до покупки: что входит в лицензию
Разовый 30-минутный триал даёт доступ к базовым инструментам. Возможности с меткой PRO остаются закрыты до активации платной лицензии.
Читайте также
Написать нам: [email protected]