Jaa


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

  • Anonymous
    January 20, 2009
    PingBack from http://blog.a-foton.ru/index.php/2009/01/20/%d0%b7%d0%b0%d0%b3%d1%80%d1%83%d0%b7%d0%ba%d0%b0-windows-7-%d1%81-vhd-%d0%be%d0%b1%d1%80%d0%b0%d0%b7%d0%b0/

  • Anonymous
    January 21, 2009
    PingBack from http://staforce.wordpress.com/2009/01/22/windows-7-vhd/

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

  • Anonymous
    January 24, 2009
    В XP, насколько я знаю, несколько по-другому устроены загрузчик и работа с ним, чтобы все это проделать вручную, скорее всего, нужно копать в направлении bootsect. Попробуйте такой способ установки сразу на VHD: http://blogs.technet.com/iwalker/archive/2009/01/20/ka-windows-7.aspx

  • Anonymous
    August 21, 2009
    Вот никак не могу понять, имеет ли смысл установка Windows 7 в VHD на новой системе. Для каких целей? Везде рекламируется одна цель - попробовать новую операционную систему, а вот использование режима, когда на жестком диске раздел под загрузчик (очень маленький) и сама операционка в файле VHD какие несет преимущества? Какие недостатки? (насколько медленнее работает)

  • Anonymous
    August 23, 2009
    The comment has been removed

  • Anonymous
    December 13, 2009
    Все прекрасно установилось на vhd, но комп стартует с Хр и не спрашивает ни о чем. Что делать? как ету 7 запустить )

  • Anonymous
    December 13, 2009
    Скорее всего, в Windows XP другой загрузчик.

  • Anonymous
    March 08, 2010
    Установил при существующей Windows XP на VHD раздел. Все установилось, была одна перезагрузка, загрузчик на реальном диске уже был подменен, 7-ка пошла с виртуального диска. Но потом появился checkdsk и он что то исправил, и теперь черный экран - не загружается загрузчик. То есть ни Хрюши ни 7-ки.... Кто нить знает реально и пошагово, как теперь восстановить загрузку ХР и как добавить опцию загрузки 7-ки из имеющегося файла c:Win7.vhd Если что то надо откуда то скопировать, без проблем. Консоль разумею но вот что куда и как - искал в нете не нашел... Спасибо!

  • Anonymous
    March 08, 2010
    Сергей, загрузка Windows 7 на vhd из-под Windows XP не является поддерживаемым сценариям. Соответственно, манипуляции над загрузчиком Windows XP для запуска семерки могут привести к непредсказуемым последствиям ;) Для восстановления загрузчика WinXP можно попробовать запустить восстановление Windows XP с установочного диска. А вот добавить опцию загрузки 7-ки наврядли получится.

  • Anonymous
    April 04, 2010
    В результате попыток реанимирования флешки, какая то прога (да фиг с ней уже) потерла загрузочную область раздела с вистой. Вообщем смог спасти инфу, но пришлось форматнуть раздел и заново поставить OS, но загрузчик теперь только виста. Файл Win7.vhd присутствует, но влезть в него невозможно. Как мне опять загрузить семерку - исправить загрузчик? Структура: С:Windows (Vista)  и D:Win7.vhd (семерка) - диски физические. Может можно как то ручками прописать? Спасибо. P.S. Если диски физические, то может лучше будет на них (потом, когда инфу с 7 перекину) разные OS поставить, чем виртуальный диск использовать?

  • Anonymous
    April 05, 2010
    А что мешает заменить загрузчик Vista на загрузчик Windows 7 и внести необходимые записи с помощью bcdedit? Да, лучше использовать реальные физические диски, чем виртуальные. Виртуальный диск может быть интересен для тестирования или использования при виртуализации. Для обычного использования лучше этот вариант не использовать.

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

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