Расскажу о простом и эффективном способе переноса Windows системы из физической среды в виртуальную, который я сам оттестировал на Microsoft Hyper-V Server R2 и Microsoft Windows Server 2008 R2. Последним, мигрировавшим таким образом, был контроллер домена Windows Server 2003 SP2.
Конечно, если вы поклонник “правильных” решений, у вас много свободного времени и к тому же вы любитель квестов, то я порекомендую воспользоваться возможностями System Center Virtual Machine Manager с его визардом P2V, Microsoft Virtual Server Migration Toolkit (VSMT) и Automated Deployment Service (ADS), или другими решениями аналогичной задачи.
Я же в последнем случае не рискнул воспользоваться даже утилитой Disk2vhd от Sysinternals а решил сделать все офлайн при помощи проверенного Norton Ghost.
Так вот:
1. Делаем образ диска/системного раздела исходной системы. Как уже сказал, я использую для этого Norton Ghost.
2. Создаем виртуальную машину с диском достаточного размера на шине IDE. (Я, к слову, в рабочей среде использую только диски фиксированного размера)
3. Подключаем вновь созданный диск в хостовой системе, назначаем ему букву. В Windows Server 2008 R2 это можно сделать прямо из Диспетчера сервера/Управление дисками.
В Hyper-V Server R2 для этого придется воспользоваться diskpart-ом. Читаем “DISKPART> help select vdisk” и “DISKPART> help attach vdisk”.
4. Создаем нужных размеров разделы.
5. Делаем загрузочный раздел виртуального диска активным.
6. Помещаем загрузочную запись в MBR виртуального диска. Я использую для этого утилиту “mbrfix”. Читаем соответственно “MbrFix /?”. Если этого не сделать, то виртуальная машина не загрузится с этого диска.
7. Разворачиваем созданный образ раздела/диска. Опять же давно знакомый Norton Ghost нам в помощь.
Казалось бы, что уже можно включать виртуальную машину. Но в большинстве случаев система выпадет в синий экран с ошибкой “STOP: 0x0000007B INACCESSIBLE_BOOT_DEVICE ”. Так происходит, когда в переносимой системе используется не стандартный контроллер IDE. Теорию и практику по этому поводу можно глянуть в базе знаний Microsoft. Соответственно, нужно установить стандартный контроллер IDE вручную и мы продолжаем:
8. Подгрузим куст реестра, отвечающий за стандартный контруллер IDE, в нашу пока еще офлайн систему. Я делаю это следующим образом. В regedit.exe в ветку “HKEY_USERS” в новый раздел “123” загружаю реестр из файла “System32\config\SYSTEM”. В рег файле, созданном под руководством упомянутой статьи делаю массовую замену строки “HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet” на “HKEY_USERS\123\ControlSet001”. Импортирую, измененный таким образом рег файл. И выгружаю временный куст “123”.
9. Проверим наличие и если необходимо добавим в папку “%SystemRoot%\System32\Drivers” драйвера: Atapi.sys, Intelide.sys, Pciide.sys, Pciidex.sys. Их можно взять из установочного диска соответствующей версии Windows или файла “%SystemRoot%\Driver Cache\I386\Driver.cab”.
10. Отключим виртуальный диск от хостовой системы.
11. Загружаем виртуальную машину.
Дальше на ваше усмотрение, но я рекомендую также проделать:
1. Сразу же после первой загрузки установить службы интеграции и перезагрузиться.
2. Очистить систему от лишних устройств. Обычно диспетчер устройств не показывает отсутствующие девайсы. Но системная переменная “devmgr_show_nonpresent_devices” со значением “1” заставляет его это делать. Соответственно, установив эту переменную, я выставляю в диспетчере устройств “Вид\Показывать скрытые устройства” и вручную удаляю все не активные девайсы.
На этом этапе перенос Windows из физической среду в виртуальную можно считать завершенным.