Що таке 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]