Допустим, у нас есть 64 ГБ динамически расширяемого VHDX. После установки ОС "динамически инициализированное" пространство составляет около 10 ГБ. Теперь я знаю, что мне понадобится примерно на 25 ГБ больше места - например, всего 35 ГБ.
ВОПРОС: Как я могу принудительно инициализировать любую часть (например, 35G) или остальную часть файла VHDX?
МОТИВНЫЙ: Когда виртуализированная система подвергается установке дополнительного программного обеспечения, этот процесс идет медленнее, потому что помимо установки файлов VHDX необходимо инициализировать дополнительное пространство. Поэтому я хотел бы иметь возможность заранее инициализировать пространство, и когда придет время, установка дополнительного программного обеспечения не займет вечность.
Используйте sysinternal sdelete с переключателем z.
sdelete -z <driveletter:>
Переключатель z на ноль заполняет пустое пространство нулем, поэтому ваше изображение вырастет до 100% своего размера.
Обратите внимание: чтобы вырезать пространство после него с помощью команды diskpart compact vdisk, которую вы можете сделать, она вырезает свободное пространство, помеченное как ноль, из файла.
Самый простой способ - запустить любой инструмент тестирования дисков, который создаст тестовый файл желаемого размера, заставив VHDX ниже расширяться.
Для этого можно использовать Microsoft DiskSPD: https://gallery.technet.microsoft.com/DiskSpd-a-robust-storage-6cd2f223
Командная строка будет примерно такой:
Diskspd.exe -b64K -d10 -h -L -o1 -t1 -s -w100 -c20G c: \ io.dat
Где -c20G желаемый размер и c: \ io.dat это путь к файлу.
После удаления созданного тестового файла вы освободите место, но VHDX останется плавающим.
Надеюсь, поможет.