Posts tagged: VHD

Ограничение увеличения динамических VHD при загрузке

Если вы экспериментировали с загрузкой 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

VHDExpandOnMount

 

 

 

 

 

 Я делаю это простым командным файлом (предполагается что 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% размера, теперь вы сами управляете этим процессом.

Удачных экспериментов.

Как запустить Windows 7 из VHD на новом жестком диске

Допустим, что у нас есть VHD с установленной Windows 7, и мы хотим запустить ОС на компьютере, на котором  нет установленной операционной системы (например, с новым жестким диском).

Я предпалагаю, что Windows 7 внутри VHD полностью работоспособна, то есть подготовлена при помощи sysprep с генерализацией.

Основная проблема заключается в том, что на новом диске у нас отсутствует загрузчик и соответствующие записи в хранилище. Решение будет следующим.

 
0. Загружаемся с установочного диска Windows 7.
Необходимо создать на новом HDD раздел, и скопировать на него готовый VHD с Windows 7 (с сети, портативного накопителя и т.д.). Думаю здесь пояснения не нужны.

1. Запускаем cmd.exe (SHIFT+F10) и делаем раздел активным

image1

2. Монтируем VHD. Это необходимо, чтобы в дальнейшем утилита bootrec увидела установленную ОС.

  Read more »

Увеличение размера фиксированного VHD

В рабочей среде Microsoft рекомендует использовать виртуальные диски vhd фиксированного размера, это обеспечивает наилучшую производительность.

Однако, может наступить момент, когда размер созданного диска станет недостаточным, и нам потребуется его увеличить.

Хорошая новость – вам не понадобятся никакие дополнительные инструменты для увеличения размера VHD. В утилите diskpart.exe появилась новая команда “expand vdisk“, при помощи которой можно увеличить максимальный размер как динамического vhd, так и vhd фиксированного размера.

 Что делать.

 Вам не удастся расширить VHD с установленной системой во время ее работы, поэтому потребуется загрузка с DVD Windows 7.

1-error

 1. Загружаемся с установочного DVD Windows 7

 2. Открываем командную строку cmd.exe (комбинацией SHIFT+F10), запускаем diskpart.exe

3. Выбираем VHD с системой командой

SELECT VDISK file="пусть к vhd с Windows7"

4. Расширяем диск до необходимого размера командой

EXPAND VDISK MAXIMUM="новый размер в мегабайтах"

 2-success

Физически размер vhd увеличится не сразу, а во время следующего открытия (в нашем случае – загрузки системы).  После этого можно расширить раздел c Windows 7, заняв доступное свободное пространство.

3-extend

Использование дифференциальных дисков VHD в Windows 7.

В прошлый раз мы  установили Windows 7 в файл виртуального жесткого диска VHD.
Сегодня я расскажу, как можно создать и использовать дифференциальный диск VHD.

Дифференциальные диски содержат только изменившуюся информацию, не меняя при этом оригинальный VHD.

Когда это может быть полезно?

Например, у вас могут быть установлены компьютеры для публичного доступа. И что бы не изменили ваши посетители, вы сможете легко откатить эти изменения назад. Это очень полезно и в учебном классе. Следующая группа учащихся сможет работать на эталонно настроенной машине без особых административных усилий с вашей стороны.

Может быть вам интересно, как поведет себя новая программа, но вы не хотите ставить ее на рабочую операционную систему, опасаясь, что программа может что-то повредить, или ее будет сложно удалить.

Или представьте, что вы готовитесь к ответственной презентации, которую необходимо прочитать несколько раз, и вы опасаетесь, что в очередной раз что-то пойдет не так. Вы сможете откатить все изменения простой перезагрузкой.

Что нам понадобится.

Необходимо установить Windows 7 в VHD, как я описывал в предыдущей статье. Если у вас на компьютере установлена Windows Vista или Windows 7 на физический жесткий диск – это несколько упростит работу. В противном случае, понадобится установочный диск Windows 7.

Что делать?

1. Перезагружаемся из Windows 7, установленной на VHD, в ОС, установленную на физическом жестком диске, или загружаемся с установочного DVD и нажимаем SHIFT-F10.

2. Запускаем утилиту diskpart и создаем дифференциальный VHD.

create vdisk file="d:win7diff.vhd" parent="d:win7.vhd"

где
file=”d:win7diff.vhd” – создаваемый дифференциальный диск
parent=”d:win7.vhd” – vhd, к которому создается дифференциальный диск, в нем должна находиться уже установленная Windows 7.

bcdedit0

Именно дифференциальный диск будет содержать изменения к имеющемуся VHD.

3. Открываем cmd.exe с правами администратора, запускаем bcdedit.exe без параметров, и находим запись уже установленной ОС. Она выглядит примерно так

bcdedit1

4. Копируем запись командой

bcdedit /copy {63aaa945-d6e3-11dd-bc34-9ce4cee8d268}
/d Win7diff

Вместо {63aaa945-d6e3-11dd-bc34-9ce4cee8d268} подставьте GUID вашей записи. Win7diff – описание новой записи.

bcdedit2

5. Для вновь созданной записи изменяем параметры device и bootdevice командами

bcdedit /set {5db40689-e37c-11dd-90eb-fa8b65e0edc7}
device vhd=[D:]win7diff.vhd

bcdedit /set {5db40689-e37c-11dd-90eb-fa8b65e0edc7}
osdevice vhd=[D:]win7diff.vhd

Важно указать в значении параметра именно vhd=, а не file=, как указано в оригинальной записи.

bcdedit3

6. Перезагружаем компьютер, при загрузке выбираем вновь созданную запись “Win7diff”.

Попробуйте в ОС, установленной на дифференциальном диске удалить какой-нибудь файл с рабочего стола. Перезагрузитесь в оригинальную Windows 7 на VHD, и убедитесь, что файл на месте.

Спасибо за внимание.

Загрузка Windows 7 из диска VHD

Сегодня в блоге Russian Windows Virtualization Discussion была опубликована статья о том, как установить и загрузить Windows 7 beta 1 из образа диска VHD.

Я хотел бы лишь добавить, что встречал в других блогах более простой и менее проблемный, по моему мнению, способ установки Windows 7 в vhd.

1) http://blogs.infosupport.com/ericd/archive/2008/11/12/Boot-your-machine-from-VHD.aspx
(переведенная версия http://my.opera.com/deliriumxp/blog/2008/12/15/w7-vhd)

2) http://it-experts.dk/blogs/rsj/archive/2009/01/01/booting-windows-7-from-a-vhd-file.aspx

Здесь описание установки еще проще.

Итак, у вас на компьютере установлена Windows Vista или Windows XP.

1) Загружаемся с диска Windows 7.
2) На первом экране нажимаем SHIFT-F10, откроется командная строка
3) Создаем VHD файл и монтируем его
diskpart
create vdisk file=c:win7.vhd type=fixed maximum=16000
select vdisk file=c:win7.vhd
attach vdisk

4) Ставим в подмонтированный диск Windows 7.

В нижней части экрана появится предупреждение – “Windows can’t be installed to this disk”. Это сообщение можно игнорировать.

Windows 7 сама установит новый загрузчик и добавит дополнительную запись для загрузки с VHD.
Точно так же мне удалось установить в VHD и Windows Server 2008 R2 x64, никаких дополнительных действий не потребовалось.

И это все. Никаких замен файлов, никакого “шаманства” с bcdedit. Очень просто.

 

UPD: Я записал и опубликовал вебкаст (видео) по загрузке Windows 7 с VHD. Помимо этого сценария, в нем рассматриваются сценарий переноса VHD из среды виртуализации. Ссылка-

http://www.techdays.ru/videos/1237.html

UPD2: В продолжение темы VHD, для расширения кругозора, рекомендую ознакомиться со следующими статьями:

1) Использование дифференциальных дисков VHD в Windows 7.
2) Увеличение размера фиксированного VHD
3) Как запустить Windows 7 из VHD на новом жестком диске

WordPress Themes