Загрузка 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.

Comments (14)

  1. emusic says:

    А требуется ли для загрузки из VHD что-либо еще из висты, кроме bootmgr и базы данных BCD в каталоге Boot?

    То есть, можно ли под XP записать в корень диска bootmgr, переписать из какой-нибудь висты каталог Boot, вистовский файл с загрузочным сектором, умеющий загружать bootmgr, создать дополнительную запись в boot.ini, настроить BCD и загружать Win7 из VHD?

  2. kichinsky says:

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

    Попробуйте такой способ установки сразу на VHD: http://blogs.technet.com/iwalker/archive/2009/01/20/ka-windows-7.aspx

  3. Clevelus says:

    Вот никак не могу понять, имеет ли смысл установка Windows 7 в VHD на новой системе. Для каких целей?

    Везде рекламируется одна цель – попробовать новую операционную систему, а вот использование режима, когда на жестком диске раздел под загрузчик (очень маленький) и сама операционка в файле VHD какие несет преимущества?

    Какие недостатки? (насколько медленнее работает)

  4. kichinsky says:

    На мой взгляд (я могу не знать каких-то еще сценариев), это имеет смысл, если:

    — хочется просто попробовать, но не хочется ставить как полноценную систему на диск (преимущества: переносимость, быстрое удаление)

    — нужно протестировать какие-то конфигурации/настройки — то есть как тестовое окружение (преимущества: переносимость, можно просто копировать образы, чтобы начать с начала, быстрое удаление),

    — "multi-boot system", когда вам нужно иметь несколько операционных систем на одном диске и как-то ими управлять (легко добавлять/удалять).

    Насчет маленького загрузчика — не знаю, вообще говоря, для загрузки с VHD Windows обновляет основной загрузчик, дальше нужно разбираться в деталях и тонкостях.

    Недостатки: 1) незначительно уменьшается скорость дисковых операций. 2) загрузка с VHD работает только для Win7 и WinServ2008R2.

  5. KlykSeroga says:

    Все прекрасно установилось на vhd, но комп стартует с Хр и не спрашивает ни о чем.

    Что делать? как ету 7 запустить )

  6. kichinsky says:

    Скорее всего, в Windows XP другой загрузчик.

  7. Сергей says:

    Установил при существующей Windows XP на VHD раздел. Все установилось, была одна перезагрузка, загрузчик на реальном диске уже был подменен, 7-ка пошла с виртуального диска. Но потом появился checkdsk и он что то исправил, и теперь черный экран – не загружается загрузчик. То есть ни Хрюши ни 7-ки….

    Кто нить знает реально и пошагово, как теперь восстановить загрузку ХР и как добавить опцию загрузки 7-ки из имеющегося файла c:Win7.vhd

    Если что то надо откуда то скопировать, без проблем. Консоль разумею но вот что куда и как – искал в нете не нашел…

    Спасибо!

  8. kichinsky says:

    Сергей, загрузка Windows 7 на vhd из-под Windows XP не является поддерживаемым сценариям. Соответственно, манипуляции над загрузчиком Windows XP для запуска семерки могут привести к непредсказуемым последствиям 😉

    Для восстановления загрузчика WinXP можно попробовать запустить восстановление Windows XP с установочного диска.

    А вот добавить опцию загрузки 7-ки наврядли получится.

  9. IgorZaz says:

    В результате попыток реанимирования флешки, какая то прога (да фиг с ней уже) потерла загрузочную область раздела с вистой. Вообщем смог спасти инфу, но пришлось форматнуть раздел и заново поставить OS, но загрузчик теперь только виста. Файл Win7.vhd присутствует, но влезть в него невозможно. Как мне опять загрузить семерку – исправить загрузчик? Структура: С:Windows (Vista)  и D:Win7.vhd (семерка) – диски физические. Может можно как то ручками прописать?

    Спасибо.

    P.S. Если диски физические, то может лучше будет на них (потом, когда инфу с 7 перекину) разные OS поставить, чем виртуальный диск использовать?

  10. kichinsky says:

    А что мешает заменить загрузчик Vista на загрузчик Windows 7 и внести необходимые записи с помощью bcdedit?

    Да, лучше использовать реальные физические диски, чем виртуальные.

    Виртуальный диск может быть интересен для тестирования или использования при виртуализации. Для обычного использования лучше этот вариант не использовать.

  11. Agafron says:

    если на vhd залить другую систему (например Мас) загрузка возможна?

  12. kichinsky says:

    Насколько я знаю, устанавливаемая ОС должна поддерживать такой способ запуска. Сомневаюсь, что это верно для MacOS.