Преимущество использования динамических жестких дисков (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 минут.
Работает, спасибо!
С 21 до 14 Гб.
Ничего не работает!!!
Вабочее решение вот:
сам долго искал, упрощу кому то жизнь, в ру-нете ответа не нашел)) но все же нашел:
В общем процедура такая:
Сжатие VHD
Скачиваем SDelete v1.61, http://technet.microsoft.com/en-us/sysinternals/bb897443
Запускаем:
sdelete.exe -z V: [где V: уже подключенный виртуальный диск VHD]
Потом уже рекомендованными везде командами, которые все таки сжимают в конце концов диск:):
diskpart
select vdisk file=»d:\VHD\d1.vhd» [d:\VHD\d1.vhd — путь к тому же образу виртуального диска]
compact vdisk
PS кстати если кому надо, автоподключение виртуального VHD диска при загрузке:
Создаем Файл attach.cmd:
diskpart -s «D:\VHD\attachvhd.s»
создаем Файл attachVHD.s:
select vdisk file=»D:\VHD\games.vhd»
attach vdisk
attach.cmd в планировщик при старте системы.
— Выполнять вне зависимости от регистрации пользователя ОБЯЗАТЕЛЬНО!!!
Все. До появления пользователя у клавиатуры диск уже доступен по сети.
Вот. да. прежде чем сжимать, надо пустоты прописать «нулями». Иначе не работает.
Ну, а самый простой способ:
— создать новый динамический VHD
— просто скопировать на него старый диск.
Отлично! Сжал файл виртуальной машины Windows XP Mode.vhd с 19 до 14 Гб!
Диск занимал 160GB, после процедуры стал 120.
Спасибо, способ рабочий!
Сжимал динамический *.vhd (Windows Virtual PC)
сжалось с 36.4 Гб до 9.71 Гб =)
при этом в самой виртуалке показываетс C:\ (6.88гб)
Для диска VHD с фиксированным размером НЕ работает.
А для кого вот это слово написано? _ДИНАМИЧЕСКИЙ_ VHD
Конечно не сработает.