Преимущество использования динамических жестких дисков (dynaminc VHD — Virtual Hard Disks) заключается в том, что они занимают меньше места и растут в соответствии с требованиям пользователей. Обратная сторона использования динамических vhd дисков в том, что в процессе роста они могут занять все доступное место, даже если внутри vhd файлы были удалены.
А в системах с несколькими динамическими vhd это приводит к тому, что большое количество дискового пространства тратится на хранение информации, которая в действительности уже была удалена. Решением этой проблемы является использование знакомой нам утилиты Diskpart для сжатия размера vhd диска. Напомню, утилита Diskpart входит в состав всех ОС Windows, с помощью нее можно выполнить самые различными операции по управлению дисками и разделами в Windows, мы уже описывали как с помощью diskpart можно расширить раздел Windows.
Сжимаем динамический диск vhd с помощью Diskpart
Откройте командную строку с правами администратора и наберите в ней:
diskpart
Выберите диск, который вы хотите сжать, указав диски и путь к vhd файлу:
select vdisk file="c:\Data\DAT22GB.vhd"
Подключите диск в режиме чтения Read-only:
attach vdisk readonly
И выполните команду сжатия:
compact vdisk
В зависимости от размера виртуального диска, процедура сжатия может занять достаточно продолжительно время.
Если сжатие прошло успешно, появится надпись:
DiskPart successfully compacted the virtual disk file
Отмонтируйте диск VHD:
detach vdisk
В моем случае после сжатий диска VHD размером 22Гб VHD с 14 Гб удаленных данных, сжался до 11 Гб, т.е. в два разана 900МБ. Процедура заняла порядка 20 минут.