Загрузка Windows 7 с VHD-образа

В прошлый раз мы создали VHD-образ с Window 7 для Virtual PC . Понятное дело, что в виртуальной среде, конечно, есть свои преимущества, но тем не менее, хотелось бы, чтобы все работало пошустрее…

В случае с Window 7, также хотелось бы увидеть ее во всей красе, как минимум с запущенным aero-интерфейсом.

Далее речь пойдет о том, как загружаться с полученного VHD-образа наравне с установленной базовой системой. То есть для работы с системой не понадобится отдельный раздел и не нужно будет сносить существующую систему, Win 7 будет по прежнему храниться внутри VHD-файла, но в то же время она будет запущена в реальном окружении.

Примечание: этот способ, по умолчанию, работает в Windows 7 и Windows Server 2008 R2, я буду рассказывать, как его заставить работать под Vista (см. пункт 1).

0. Если у вас виртуальный образ (VHD-файл), создавался как образ с динамическим размером, обедитесь, что у вас в системе есть свободное место в размере, максимальном для этого образа.

1. Прежде всего, нам понадобятся два файла: bootmgr (новый менеджер загрузки, умеющий загружать из VHD) и bcdedit.exe (новая версия программы для редактирования загрузочных записей).

Первый можно взять с установочного диска, второй можно взять из установленной системы Windows 7 (например, вытащить из имеющегося на руках VHD-образа). Либо можно просто скачать отсюда (skydrive) :)

Далее придется переписать файл c:\bootmgr. Файл c:\windows\system32\bcdedit.exe, в принципе, можно не перезаписывать (просто запускать из другого места). На всякий случай, рекомендую сохранить старые версии.

Примечание: для перезаписи могу понадобится права на полное владение файлами.

2. Открываем консоль (cmd) с админскими правами, на всякий случай, делаем копию текущих записей и попутно создаем новую запись:

bcdedit /copy {current} /d “Windows 7”

Команда вернет GUID вновь созданной записи.

3. Далее нужно прописать адрес с VHD-диском для загрузки

bcdedit /set {GUID} device vhd=[c:]\vhd\win7b.vhd
bcdedit /set {GUID} osdevice vhd=[c:]\vhd\win7b.vhd

4. Если вы хотите, чтобы добавленная система была последней в списке ОС при загрузке, нужно выполнить следующую команду

bcdedit /displayorder {GUID} /addlast

Запись с соответствующим GUID переносится в конец (подобным образом можно добиться любого нужного порядка).

5. Если вы хотите поменять название системы при загрузке, нужно выполнить следующую команду

bcdedit /set {GUID} description “Windows 7 - VHD”

6. Для форсирования автоматического определения в Windows диска через соответствующий уровень абстракции — Hardware Abstraction Layer —следует выполнить следующую команду

bcdedit /set <guid> detecthal on

Готово! Можно перезагружаться. После загрузки Windows 7 начнет устанавливать нужные драйвера для вашего реального оборудования. Попросит перезагрузиться. После этого можно нормально работать. С Aero!

 
 

Если посмотреть на диски, присутствующие в системе, будет видно, что помимо виртуального диска на 16 Гб (обведен оранжевым), с которого, собственно, загружена Win7, также присутствуют второй раздел виртуального диска на 200 Мб под системные файлы и реальный(!) жесткий диск, установленный на компьютере.


Если отрыть реальный диск и посмотреть, где находится файл с образом системы


можно обнаружить, что размер файла увеличился до 16 Гб. Все дело в том, что наш VHD-образ был автоматически сконвертирован в образ с фиксированным размером, то есть занял максимально возможные 16 Гб. Это ускоряет работу системы. Стоит также отметить, что этот образ по-прежнему можно загружать через Virtual PC.

Константин Кичинский