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

Решения, которые позволят справляться с такими задачами, существуют. На рынке программного обеспечения сегодня представлен целый ряд продуктов, позволяющих создавать виртуальные машины, а точнее, изолированные виртуальные среды, для выполнения приложений и распределения вычислительных ресурсов между ними. Среди них есть и решения от Microsoft, такие как Microsoft Virtual Server 2005 и Microsoft Virtual PC 2007.

Для реализации указанных выше сценариев воспроизвести имеющуюся машину в виртуальной среде от начала до конца, пошагово, приложение за приложением, настройка за настройкой довольно непросто. Некоторые производители приложений для виртуализации рабочих станций и серверов предусмотрели для таких случаев вариант «прямого импорта» физической системы в образ виртуальной машины. К сожалению, такая функция отсутствует для Microsoft Virtual PC и трудна для реализации в Microsoft Virtual Server (см. комментарии в конце статьи).

Но ситуация не безнадежна. В данной статье приводится пример настройки виртуальных машин в Microsoft Virtual PC, а по аналогии — и в Microsoft Virtual Server, которая позволит обойти функциональные ограничения этих продуктов.

Для решения проблемы импорта существующей системы в виртуальную среду предлагается использовать полную резервную копию целевой системы, которая создается утилитой самой операционной системы, а именно — Backup and Restore.

Результатом полного резервного копирования, выполненного через Backup and Restore, будет файл формата Microsoft Virtual Hard Disk (VHD), который используется и для эмуляции жестких дисков в виртуальной машине Microsoft. Образ формата VHD можно использовать в Microsoft Virtual Server или Microsoft Virtual PC, но из-за особенностей его внутренней архитектуры такой образ VHD нельзя применять в качестве загрузочного. Попытки добиться этого стандартными средствами в среде Virtual PC, а именно с помощью утилит diskpart, bootrec и bootsect, успеха не имели. Хотя монтирование VHD-образа в Virtual Server или Virtual PC в качестве дополнительного диска к имеющейся виртуальной машине позволит без труда восстановить выбранный фрагмент полной резервной копии компьютера, например, путем простого копирования.

Полностью реализовать возможности Windows Backup and Restore для восстановления системы можно только из самого приложения или под управлением Windows Recovery Environment (WinRE), если воспользоваться режимом Complete PC Restore из меню восстановления этой среды. Доступ к WinRE можно получить, имея на руках установочный диск Windows Vista и выбрав вариант Repair My Computer.

Впрочем, в данной статье речь идет не о резервном копировании и восстановлении. Итак, сформулируем еще раз задачу эксперимента. В нашем распоряжении имеется целевой компьютер с установленной Windows Vista и Microsoft Virtual PC 2007. Задача: воссоздать реальную машину в виртуальной среде с минимальными трудозатратами.

В первую очередь создадим полную резервную копию родительской системы. Для этого нужно перейти в Control Panel и воспользоваться приложением Backup and Restore. В открывшемся окне следует выбрать вариант Back up Computer. Далее следуйте инструкциям мастера резервного копирования. Особенность этого шага заключается в том, что резервная копия машины должна быть помещена на раздел жесткого диска, отличный от системного, или на внешний носитель. Вариант размещения архива системы на одном или нескольких DVD-R (W) носителях не подходит, так как нам нужен единственный файл формата VHD.

В результате получаем такую папку, как показано на экране 1.

Экран 1. Каталог для резервной копии

Из всей совокупности файлов, составляющих полную резервную копию системы, нас интересует файл с расширением *.vhd. Он будет находиться в папке Backup — ### — ###. Копируем его в целевой каталог, например: С:Virtual (см. экран 2).

Экран 2. Образ системы в виде файла с расширением *.vhd

Теперь запускаем Virtual PC. Создаем новую виртуальную машину и одновременно Hard Disk 1 для нее, через мастер создания виртуальных машин New Virtual Machine Wizard: Create а Virtual Machine — {имя машины} — Operating system — в раскрывающемся списке выбираем Windows Vista — Using recommended RAM — A new virtual hard disk. Далее принимаем параметры мастера по умолчанию. Размер диска при создании можно указать совсем небольшой, например 300 Mбайт. В настройках виртуальной машины можно сразу выставить параметр Undo disk — Enable Undo Disk.

Создаем Hard Disk 2. Выбираем вариант Virtual Hard Disk File — Browse и указываем путь к резервной копии операционной системы — файлу с расширением *.vhd. В результате получаем примерно такую конфигурацию, как на экране 3.

Экран 3. Параметры создаваемой виртуальной среды

Где Hard Disk 1 — это пустой неформатированный диск, а Hard Disk 2 — файл c резервной копией нашей системы. Нажимаем Ok.

Далее воспользуемся диском с дистрибутивом операционной системы. Вставляем его в накопитель и запускаем виртуальную машину. В меню окна виртуальной машины выбираем CD — Use physical drive #:, где # — имя для используемого устройства DVD. Если нужно, заходим в настройки BIOS виртуальной машины и устанавливаем очередность загрузки, чтобы в первую очередь происходила загрузка именно с устройства DVD. Будет выполнен запуск среды установки операционной системы.

На первом экране c региональными и языковыми параметрами установки нажимаем Next для выбора параметров по умолчанию, на втором экране выбираем пункт Repair Your Computer. Произойдет запуск среды восстановления Windows и обнаружение имеющихся установок операционной системы. В появившемся диалоговом окне System Recovery Options следует нажать Next. Из предложенного меню восстановления выбираем Command Prompt.

Далее необходимо подготовить Hard Disk 1. Для этого в командной строке нужно набрать следующие команды:

X:Sources> Diskpart
DISKPART> Sel disk 0
DISKPART> Create partition primary
DISKPART> Format fs=ntfs quick
DISKPART> sel partition 1
DISKPART> Active
DISKPART> Exit

После исполнения команды Exit выходим из Command Prompt и нажимаем кнопку Restart в меню восстановления для перезагрузки.

Повторно загружаемся с установочного диска. Как и в предыдущих шагах, на первом экране c региональными и языковыми параметрами установки нажимаем Next для выбора параметров по умолчанию; на втором экране выбираем пункт Repair Your Computer. В ответ на приглашение Windows found problems with your computer’s startup options выбираем No и нажимаем Next. Из предложенного меню восстановления опять выбираем Command Prompt. Теперь следует восстановить конфигурацию загрузчика операционной системы.

Прежде всего необходимо скопировать сам загрузчик на загрузочный раздел. Перед копированием снимем атрибуты hidden и system c файла bootmgr.

X:Sources> D:
D:>attrib –h –s bootmgr

Копируем bootmgr на активный раздел:

D:>copy D:ootmgr c:

На следующем шаге нужно восстановить конфигурацию bootmgr. Файл BCD, в котором хранится конфигурация загрузчика, должен находиться в каталогеBoot активного раздела. Существует несколько вариантов решения этой задачи. Самый простой — воспользоваться утилитой bootrec, которая включена в Windows Recovery Environment и имеется на диске с дистрибутивом операционной системы. Данная утилита представляет собой очень полезное средство. Она позволяет восстановить поврежденную запись master boot record (MBR) без перезаписи имеющейся таблицы разделов, boot sector (BR) и собственно сам BCD — файл, в котором хранятся настройки загрузчика операционной системы. Воспользуемся последней возможностью:

D:> bootrec/rebuildbcd

После ввода этой команды bootrec обнаружит имеющуюся установленную версию операционной системы и предложит переконфигурировать загрузчик (на самом деле будет воссоздан файл BCD). Выглядит это примерно так, как на экране 4.

Экран 4. Перенастройка загрузчика

Далее следует утвердительно ответить на приглашение, т. е. набрать Y и нажать Enter. Утилита bootrec внесет необходимые изменения. К сожалению, внутренняя архитектура vhd-файла резервной копии системы не позволяет корректно воссоздать Boot Record для активного раздела. Поэтому сделать раздел с имеющейся установленной системой активным не получится, хотя совместное использование утилит diskpart и bootrec подразумевает эти манипуляции и даже вывод положительного результата таких действий на экран.

Экран 5. Восстановление BCD

Проверяем результат выполнения команды bootrec/rebuildbcd (см. экран 5), для чего в командной строке набираем:

D:> dir c:/ahs

КаталогBoot и файл BCD в нем должны присутствовать в корневом каталоге активного раздела. Чтобы не было проблем с запуском локализованных версий операционной системы, копируем необходимые файлы в каталог C:Boot из каталога D:Boot резервной копии системы. Предварительно необходимо переименовать имеющийся там файл BCD.

D:> cd boot
D:> ren bcd bcd_old
D:> xcopy d:oot*.* c:Boot/y/s

На этом можно и остановиться, однако, для того чтобы не возникало проблем с назначением букв логическим дискам при запуске операционной системы, следует выполнить еще один шаг. Еще раз воспользуемся утилитой Diskpart:

D:> diskpart
DISKPART> sel disk 0
DISKPART> sel partition 1
DISKPART> set id=27 override

Команда SET ID=27 делает раздел технологическим и скрытым. Этот метод используется поставщиками вычислительных систем для предотвращения доступа к разделу с предустановленной средой WinRE. Впрочем, это не мешает процессу загрузки операционной системы A. Ключ OVERRIDE используется для принудительного назначения атрибута, так как по умолчанию такое действие для загрузочного раздела не разрешено.

Теперь можно выполнить перезагрузку. Для этого закрываем окно командной строки и нажимаем кнопку Restart в меню восстановления. Диск с дистрибутивом предварительно необходимо извлечь.

Произойдет загрузка операционной системы с раздела в файле *.vhd сделанной нами резервной копии системы, причем в режиме восстановления после сбоя. Выбираем Start Windows Normally и получаем виртуальную машину, которая является копией того экземпляра, с которого выполнялось полное резервное копирование.

Некоторые комментарии:

  1. Виртуальную копию операционной системы придется активировать заново, так как Harware ID, вычисляемое при первичной активации, естественно, изменится.
  2. Утилита Backup and Restore позволяет выполнять полное резервное копирование системы только в версиях Windows Vista Business, Enterprise и Ultimate.
  3. Для «преобразования» физических компьютеров в виртуальные машины существует инструмент Virtual Server 2005 Migration Toolkit (VSMT). Однако он требует развертывания дополнительной инфраструктуры Automated Deployment Services (ADS) и в конечном итоге может оказаться дорогим решением (потребуется Windows Server 2003 Enterprise Edition). Кроме того, у меня нет информации об успешной миграции рабочих станций под управлением Windows Vista с использованием этого средства.

Таким образом, совместное использование виртуализации и резервного копирования может с успехом применяться для быстрого восстановления «выбывшей из строя» рабочей станции, а также предоставляет в распоряжение администратора простой бесплатный инструмент, позволяющий гибко и безопасно проводить эксперименты, ориентированные на существующую конфигурацию систем.

Валерий Волобуев — MCSA, MCITPro, MCDST, MCT, консультант по информационным технологиям УЦ «Сетевые Технологии», Techexpert inc., Киев