В прошлый раз мы создали 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.
В статье «Создаем загрузочный диск VHD», опубликованной в прошлом номере журнала Windows IT Pro/RE, я изложил принципы создания загрузочного виртуального жесткого диска. На этот раз я хочу рассказать о том, как можно загружать с виртуального жесткого диска системы Windows 7 Enterprise и Windows 7 Ultimate
. Приношу свои извинения пользователям систем Windows 7 Professional, Windows Vista и Windows XP — эта операция выполняется только при работе с версиями Enterprise/Ultimate.
Механизм загрузки системы с виртуального жесткого диска базируется на двух основных концепциях. Концепция первая: вместо того, чтобы загружать систему с тома C на физическом жестком диске (физический диск разбивается на тома, тома получают имена, скажем том C, и в этот том устанавливается операционная система, так что в томе C размещаются десятки тысяч файлов), пользователь должен прежде всего создать не физический жесткий диск, а виртуальный диск в разработанном компанией Microsoft формате VHD и сохранить его в виде файла с именем, например image.vhd. Затем этот файл нужно смонтировать, назначив ему буквенное обозначение (например, H), установить в нем копию Windows (о том, как это делается, я рассказывал в предыдущих статьях) — и в результате получится загрузочный диск Windows, но не простой, а аккуратно упакованный в один файл image.vhd.
Концепция вторая: файл VHD необходимо скопировать на компьютер, где уже запущена Windows, и настроить существующую копию Windows таким образом, чтобы система могла дополнительно стартовать с виртуального жесткого диска, а не с накопителя C.
Возникает вопрос, а зачем все это нужно? Дело в том, что, если образы системы хранятся в формате VHD, такую систему можно развертывать двумя способами. Способ первый: настольные системы развертываются у пользователей в формате виртуальных машин, которые выполняются на больших серверах Hyper-V. Второй способ состоит в том, что нужные образы настольных систем распределяются по физическим настольным системам, но вместо специализированных средств формирования образа, таких как Ghost, Clonezilla или ImageX, в данном случае используется Windows Explorer — файл VHD перемещается методом «отбуксировать и оставить».
Первая часть проблемы решается просто: нужно скопировать файл image.vhd на диск целевой системы. В рассматриваемом примере я буду исходить из того, что вы скопировали image.vhd в папку C:\images. Теперь осталось только известить существующую копию Windows о том, каким образом обеспечить загрузку новой альтернативной копии, «упакованной» в формат VHD.
Чтобы решить эту задачу, рекомендую прочитать две статьи: «Основы Bcdedit», опубликованную в Windows IT Pro/RE № 5 за 2009 год, и «Начальная загрузка с Bcdedit» в № 6 за 2009 год, в которых речь идет об инструментальном средстве командной строки, предназначенном для управления загрузкой системы Windows.
Как описано в упомянутых статьях, вам предстоит с помощью программы Bcdedit создать отдельную «запись об операционной системе», и только после этого вы сможете настроить диспетчер загрузки Windows Boot Manager так, чтобы во время загрузки пользователю предлагался вариант загрузки с файла image.vhd (а также традиционный вариант загрузки с накопителя C). Новой записи для операционной системы можно дать название Boot from VHD:
bcdedit/copy {current}/d "Boot from VHD"
В результате вы получите новый глобальный уникальный идентификатор записи для операционной системы:
The entry was successfully copied to {61bed0dc-ddd7-11df-
9094-70f3954a3108}.
Теперь требуется указать два загрузочных параметра в {61bed0dc-ddd7-11df-9094-70f3954a3108} — «device» и «osdevice» — и задать им такие значения: «vhd= [driveletter:]\vhdfilespec». После этого при загрузке из файла C:\images\image.vhd нужно будет ввести следующие инструкции:
bcdedit/set {61bed0dc-ddd7-11df-9094-70f3954a3108} device
vhd=[c:]\images\images.vhd
bcdedit/set {61bed0dc-ddd7-11df-9094-70f3954a3108} osdevice
vhd=[c:]\images\images.
Приведенные команды не отличаются особым изяществом, но наш пример показывает, как они формируются. Сначала следует bcdedit/set, затем сгенерированный глобальный уникальный идентификатор, потом device или osdevice (всего требуется две команды, по одной для каждого устройства), и в заключение — раздел vhd=-.
Выполните команды, перезагрузите систему, и вы увидите окно диспетчера загрузки, а в нем два варианта загрузки: Windows 7 (этой системой вы пользовались до сих пор) и Boot from VHD. Выберите второй вариант, и система загрузится с виртуального жесткого диска.
Вы все еще не разобрались с тем, как пользоваться такой возможностью? Если вам требуется инструмент, позволяющий привести в прежнее состояние физическую систему — скажем, школьный компьютер — так, как это делают коммерческие продукты, например Deep-Freeze или, к сожалению, уже снятое с производства Microsoft SteadyState, позвольте порекомендовать вам отвлечься от работы на какое-то время и прочесть мою статью «Снимки физических и виртуальных систем с помощью Diskpart», опубликованную в № 9 за 2010 год. В ней разъясняется, как создаются пары VHD-файлов «потомок/родитель», которые обеспечивают столь популярную в виртуальных машинах возможность получения моментальных снимков, и предполагаю, что эта возможность была бы весьма полезна в физических системах.
Марк Минаси (www.minasi.com/gethelp) — старший редактор журнала Windows IT Pro, сертифицированный системный инженер по продуктам Microsoft
В данной статье описывается способ запуска виртуального диска VHD из ранее установленной Windows 7 beta (также этот способ работает в WinServer R2).
Шаг 1. Убедитесь что раздел жесткого диска, на котором в данный момент находится vhd-файл имеет не менее 16Гб свободного места (это очень важно для стабильной работы системы — в нашем случае file.vhd находится в корне диска C:\).
Шаг 2. В корневом каталоге Вашего системного диска найдите файлы bootmgr и bcdedit.exe, оба из них потребуются для дальнейшего изменения загрузочных записей.
Примечание:
обязательно создайте резервные копии данных файлов на случай непредвиденной ситуации с целью сохранения работоспособности вашей текущей операционной системы.
Шаг 3. Убедитесь, что Вы имеете права Администратора. В меню «Пуск» введите cmd и в открывшейся консоле выполните следующее:
1) bcdedit /copy {current} /d “Windows 7” //создаст точную копию текущих загрузочных записей и выдаст вам GUID-идентификатор вновь созданной записи, который потребуется в дальнейшем
2) bcdedit /set {GUID} device vhd=[c:]\file.vhd //вместо {GUID} необходимо подставить значение из первой команды
3) bcdedit /set {GUID} osdevice vhd=[c:]\file.vhd
4) bcdedit /displayorder {GUID} /addlast //в списке загружаемых систем при включении компьютера новая сборка Windows 7 станет поледней
5) bcdedit /set {GUID} description “{NAME}” //позволяет задать «имя» для нашей новой системы в boot-списке
6) bcdedit /set detecthal on //данная команда служит для более быстрого оределения виртуального диска при загрузке компьютера, появится листинг menu.lst, в который нужно внести следующие изменения:
title Windows 7
root (hd0,0)
chainloader /bootmgr
Шаг 4. Необходимо перезагрузить компьютер
После перезагрузки Вы должны увидеть список доступных на вашем компьютере операционных систем, в котором присутствует и новенькая сборка Windows 7. Если ее выбрать, то произойдет загрузка системы и установка всех необходимых драйверов под именно Ваше оборудование.
После того, как система придет в рабочее состояние, в окне Компьютер (Computer) Вы сможете обнаружить наличие подключенного виртуального диска емкостью 16Гб, дополнительный виртуальный раздел емкостью 200Мб и все ваши физические дисковые накопители. Если открыть диск, где ранее располагался vhd-файл, то можно обнаружить, что его размер увеличился до тех самых 16Гб, причем размер этот теперь строго ограничен.
Оцените статью: Голосов
Этот ролик с Microsoft TechDays. Автор: Михаил Гоч
VHD — файл виртуального жесткого диска.
О чем мы поговорим? Использование VHD в Windows 7
- Создание и подключение VHD без использования сторонних программ
- Установка операционной системы в VHD
- Загрузка из VHD, созданного в среде виртуализации на физическом оборудовании
Поддержка VHD
- Сегодня (Windows XP, Vista, Server 2003, Server 2008)
— Диски VHD создаются средствами виртуализации (Virtual Server 2005, Virtual PC, Hyper-V)
— Для подключения диска необходимо использовать утилиту VHDmount.exe из пакета Vitrual Server 2005
- Завтра (Windows 7, server 2008 R2)
— Диски VHD создаются из оснастки Disk Management или утилитой diskpart.exe
— Диски подключаются без использования дополнительного ПО
Как это работает?
В оснастке Disk Management -> Create VHD, задаем путь, устанавливаем размер. Дальше работаем как с обычным диском.
Из командной строки:
> diskpart
DISKPART> select vdisk file-c:\test.vhd
DiskPart successfully opened the virtual disk file.
DISKPART> attach vdisk
DiskPart successfully attached the virtual disk file.
DISKPART> detach vdisk
DiskPart successfully detached the virtual disk file.
Установка Windows 7 в VHD. Сценарии использования и преимущества.
- Основная операционная система остается неизменной (изменяется только загрузчик)
- Не требуется отдельный раздел для каждого экземпляра ОС
- Можно протестировать совместимость оборудования, периферии с новой ОС и удалить ее, просто стерев файл VHD
- VHD можно использовать как в виртуальной, так и физической среде
- Резервное копирование — сохраняем 1 файл
- Использование дифференциальных VHD — отличное решение для учебных классов и публичных компьютеров
Особенности использовани VHD в Windows 7
- Не сохраняйте VHD в каталог Windows, не используейте слово Windows в названи диска
- Для дисков VHD не поддерживается компрессия NTFS
- Загрузка с VHD на съемном носителе не поддерживается
- Рекомендованный минимальный размер диска — 7024 Mb
- Будьте осторожны с расширяемыми (expandable) VHD
— Необходимо резервировать свободное место под пространство под максимальный размер расширяемого диска, так как при загрузке диск будет увеличен до максимального размера
— Скорость работы с VHD фиксированного размера — выше
Установка Windows 7 в VHD
- Загрузка с дистрибутивного DVD Windows 7
- Создание VHD диска утилитой diskpart.exe
- Установка операционной системой
Вначале все как обычно, загрузка с DVD, при появление первого экрана нажимаем <Shift>+<F10>. Запускается командная строка.
diskpart
DISKPART> create vdisk file=»d:\win7.vhd» type=fixed maximum=16000
DsikPart successfully created the virtual disk file.
DISKPART> select vdisk file=»d:\win7.vhd»
DsikPart successfully opened the virtual disk file.
DISKPART> attach vdisk
DsikPart successfully attached the virtual disk file.
Сворачиваем окно с командной строкой и продолжаем установку. Появляется новый раздел. В него и производим установку.
Загрузка из VHD, созданного в среде виртуализации
- Подготовка среды виртуальной системы утилитой sysprep.exe с параметрами /generalize
- Копирование VHD на целевую систему
- Обновление загрузчика bootmgr и добавление загрузочной записи утилитой bcdedit.exe
