Как перенести систему на виртуальную машину

Создание загружаемых VHD-дисков с помощью Disk2VHD

Данная статья — первая из серии публикаций об инструментах, активизирующих важную функцию Windows 7 и Windows Server 2008 R2: возможность загрузить физический компьютер не с физического диска C (как мы привыкли), а с системного диска, сохраненного в виде виртуального жесткого диска (VHD). Статья немного необычна, так как в большинстве случаев я рассказываю об инструментах для решения проблем, по существу уже знакомых читателям. Но загрузка с диска VHD — новая концепция, поэтому сначала рассмотрим ее, а потом уже утилиту Disk2VHD.

Зачем загружать физический компьютер с диска VHD? Можно назвать несколько причин, но две самые важные относятся к простоте развертывания операционной системы. Во-первых, вспомним, как устанавливается операционная система на сервере или рабочей станции. Это можно сделать вручную, вставив диск DVD в накопитель и ответив на множество вопросов; можно использовать установочный диск DVD с упрощенной процедурой автоматизированного сценария или же применить один из многих инструментов для работы с образами, чтобы разместить на пустом жестком диске нового компьютера заранее подготовленный образ операционной системы. Как правило, метод на основе образа — самый быстрый из трех, но его реализация требует усилий.

Вероятно, самый широко известный коммерческий инструмент для работы с образами — Symantec Ghost, а компания Microsoft предоставляет бесплатную альтернативу ImageX, но в обоих случаях манипуляции с образом довольно непростые. Если при переносе образа происходит ошибка, то определить ее причины нелегко. При загрузке же с диска VHD, в сущности, требуется скопировать специально подготовленный файл VHD на жесткий диск целевого компьютера. Поэтому загрузку с диска VHD можно было бы назвать «развертыванием с помощью XCOPY».

Вторая причина — простота развертывания виртуальной машины. Создавая и сохраняя образы системы как файлы VHD (например, вместо GHO-файлов Ghost или WIM-файлов ImageX) можно быстро развернуть (то есть скопировать) образы в формате VHD на физических компьютерах. Или можно подготовить образы как новые, быстро построенные виртуальные машины в среде сервера Hyper-V: просто скопируйте файлы VHD на сервер Hyper-V и создайте новую виртуальную машину на основе VHD. Файлы VHD стало даже более целесообразно использовать в качестве средства развертывания благодаря поддержке VHD службами Windows Deployment Services (WDS) в операционной системе Server 2008 R2.

Для подготовки системы, загружаемой с диска VHD, необходимо выполнить несколько шагов. Во-первых, нужен файл VHD, содержащий загружаемый универсальный образ на основе системы Windows 7 или Server 2008 R2. «Универсальный» — generalized — лишь новейший термин, придуманный специалистами Microsoft для обозначения готовности к применению Sysprep. Во-вторых, необходим диск VHD, содержащий образ загружаемого диска Windows. Чтобы подготовить соответствующий VHD, требуется создать пустой файл VHD (что описано в предыдущих статьях), сохранить загружаемую систему, подготовить ее с использованием Sysprep, загрузить операционную систему (возможно, WinPE), затем задействовать команду ImageX/capture для преобразования работоспособной системы в WIM-файл. После этого необходимо выбрать и подключить файл VHD как накопитель и вновь использовать ImageX (на этот раз с ключом/apply), чтобы развернуть образ на диске VHD. Теперь все готово к тому, чтобы распространить файл VHD на новые виртуальные машины или физические компьютеры, которые будут загружаться с диска VHD.

Данный процесс весьма сложен и в следующих статьях мы его рассмотрим подробнее. Однако можно немедленно воспользоваться бесплатным инструментом Disk2VHD (technet.microsoft.com/en-us/sysinternals/ee656415.aspx), выпущенным специалистами Sysinternals. С помощью Disk2VHD можно преобразовать диски на работающем компьютере в один или несколько дисков VHD — без ImageX, WinPE и Sysprep — благодаря службе Volume Shadow Copy Service (VSS). Синтаксис прост:

disk2vhd |*

Так, например,

disk2vhd C: E:\a.vhd

создает диск VHD из диска C, а

disk2vhd * E:\a.vhd

копирует все тома, даже не обозначенный символом том Window 7, в файл VHD. Или просто запустите Disk2VHD, чтобы открыть пользовательский интерфейс. Даже если указать более одного тома, Disk2 VHD упаковывает их в один VHD.

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

Марк Минаси (www.minasi.com/gethelp) — старший редактор журнала Windows IT Pro, сертифицированный системный инженер по продуктам Microsoft

Предыстория.

Обозначалась проблема – проектировщику купили новый компьютер и нужно было все его программы перенести со старого (XP) на новый. Особое затруднение вызвал перенос программ от “Смета Визард” со всеми настройками, базами и ещё кучей всего непонятного. Техническая поддержка запросила солидную сумму за перенос, и честно сказали, что с “наскоку” даже у них не получится. Потом “всплыла” ещё куча настолько специфических программ (некоторые вообще под DOS), что я реально загрустил…

Сам процесс мучений …

Стал копать в сторону виртуализации и решил привлечь на помощь Virtual PC 2007, которая меня не раз выручала в подобных ситуациях. Не буду описывать весь процесс переноса, засада ждала там, где её никто не ждал, Virtual PC 2007 в принципе не работает с USB портами хостовой машины, т.е. USB электронный ключ для ПО не работал, что теряло весь смысл в переносе. Virtualbox и Vmware технологии меня не устраивали в принципе, хотелось проще и эффективней.

На помощь пришла Windows Virtual PC. Это решение удачно и органично вписывалось в моё видение разрешения проблемы. Установка на Windows7 заняло пару минут, встала как родная, – так оно и есть, в виде необязательного обновления системы. Осталось сделать образ старой машины и прикрутить на новое место.

Большинство советуют использовать утилиту Марка Руссиновича (у него очень много достойных и бесплатных утилит) – Disk2vhd последняя версия – v2.01 была успешна скачена, запущена (предварительно удалил ненужное ПО, удалил временные файлы, дефрагментация, полная проверка check disk).

В программе есть возможность установить три галочки, забегая вперёд, скажу, что перепробовал все варианты при создании файла …

Мне нужен был “слепок” двух логический томов C и D, сам жёсткий диск на 500Гб, занимаемое место – около 30 Гб. (На скриншоте другой диск выбран для примера).

Сам файл image.vhd вышел также около 30Гб, что вполне логично и вселяло надежду на успех, ибо Windows Virtual PC не может работать с файлами свыше 127 Гб. Пробуем подключить как уже имеющийся жёсткий диск (места свободного – 1Тб):

Ок, идём другим путём. Создаю новую виртуальную машину с именем 666, и вместо её жёсткого диска подсовываю свой образ:

Вожделенно жму кнопочку ОК ….

Как можно заметить, сама виртуальна машина занимает всего 26 125 МБ, но всё дело портит “Общий размер” – 500Гб, т.е. физический размер самого жёсткого диска откуда делается образ. Что только не делал, – и в консольном режиме Disk2vhd образ делал, про галочки уже писал – все возможные варианты испробовал. Акронисом сжимал тома, удалял и отключал ненужные разделе на диске доноре – ничего не помогло. Не пожалел времени и испробовал следующий “костыль” – Акронисом клонировал диск-донор на 80 Гб диск ))), и с него сделал образ программой Disk2vhd. Итог был предсказуем – всё заработало. Тем не менее, хотелось более эстетичного решения ) В этом помог Paragon, незаслуженно забытый мной после перехода на Акронис.

Использовал какую то сборку в которую входил liveCD с Win7 и тучей всякого ПО, далее смотрим скриншоты, там всё ясно …

Образ сделанный этой программой прекрасно встал без проблем !

Далее в Windows Virtual PC запускаем из запущенной виртуальной машины пакет интеграции, втыкаем электронный ключ, выбираем в меню – “использовать” и всё просто радует ))

Полезные ссылки: