Если вы экспериментировали с загрузкой Windows 7 из VHD в физической среде (native vhd boot), то наверняка знаете про следующую проблему, возникающую при загрузке с динамического диска.
Если вы создали не фиксированный (fixed size), а динамический (dynamic) VHD, то во время процесса загрузки Windows 7 увеличит его до максимального размера, указанного при создании диска (maximum=).
При этом , если VHD находится на разделе, не имеющим свободного места для увеличения диска, мы получаем гарантированный BSOD.
Это не очень удобно, при работе в тестовой среде, или в тех случаях, когда мы не хотим тратить свободное место на “пустые” VHD фиксированного размера.
Проблема имеет решение. Можно настроить Windows 7 так, чтобы при загрузке динамический диск не увеличивался до максимума, а “рос” по мере заполнения данными.
Для этого необходимо установить ключ реестра Windows 7 внутри VHD в следующее значение:
[HKEY_LOCAL_MACHINESYSTEMCurrentControlSetservices
FsDependsParameters]
"VirtualDiskExpandOnMount"=dword:00000004

Я делаю это простым командным файлом (предполагается что VHD подключен к диску v:)
reg load HKLMVhdTemp v:windowssystem32configsystem
reg add "HKLMVhdTempControlSet001servicesFsDependsParameters"
/v "VirtualDiskExpandOnMount" /t REG_DWORD /d "00000004" /f
reg add "HKLMVhdTempControlSet002servicesFsDependsParameters"
/v "VirtualDiskExpandOnMount" /t REG_DWORD /d "00000004" /f
reg unload HKLMVhdTemp
При этом следует иметь в виду, что на физическом разделе должно оставаться место для роста VHD при заполнении его данными, а так же на файл подкачки для системы внутри VHD. Отказавшись от увеличения диска, которое ранее гарантировало резервирование места для заполнения VHD до 100% размера, теперь вы сами управляете этим процессом.
Удачных экспериментов.