четверг, 13 декабря 2012 г.

Перенос физической машины в виртуальную машину Hyper-V

Недавно достался мне подержанный ноутбук, перед началом использования которого я решил для начала сохранить имеющиеся на наём документы и файлы в виде виртуальной машины. Мало ли что. Вдруг предыдущий владелец что-то забыл.

Самый простой способ очевидно был воспользоваться утилитой Disk2vhd, как я это делал со стареньким сервером.

Но тут меня поджидал неприятный сюрприз в виде error snapshotting volumes.


Как я не пытался запускать/перезапускать службы, править параметры реестра, ничего не помогало, да и решения эти были для Windows XP и Windows Server 2003.

Решил воспользоваться dd, и скопировал диск посекторно в образ img. Для этого загрузился с Ubuntu LiveCD, поставил sshfs, примонтировал сетевую шару и начал копирование образа.

# apt-get install sshfs
# sshfs night@fileserver:/home/night/ /mnt
# dd if=/dev/sda of=/mnt/nb-disk.img

После нескольких часов копирования, создал виртуальную машину с чуть большим объёмом жёсткого диска, так же загрузился с Ubuntu LiveCD, и раскатал образ в эту ВМ.

# apt-get install sshfs
# sshfs night@fileserver:/home/night/ /mnt
# dd if=/mnt/nb-disk.img of=/dev/sda

Сразу же после перезагрузки увидел BSOD. STOP: 0x0000007b.

Всё дело в различиях контроллера ноутбука и виртуальной машины.

Пришлось загрузить виртуальную машину с образа установочного диска Windows 7, после выбора языка нужно нажать Shift+F10, для вызова командной строки.

Далее вызываем редактор реестра "regedit".
Выбираем раздел HKEY_LOCAL_MACHINE
Нажимаем "Файл" > "Загрузить куст", выбираем диск с системой и загружаем ветку system (C:\Windows\System32\config\system).

Правим вот эти вот параметры:
  • HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\CriticalDeviceDatabase\pci#ven_8086&dev_7111
  • HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\CriticalDeviceDatabase\pci#ven_8086&dev_7110&cc_0601
  • HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\CriticalDeviceDatabase\primary_ide_channel
  • HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\CriticalDeviceDatabase\secondary_ide_channel
  • HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\IntelIde
  • HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\PCIIde
  • HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\atapi
Листинг значений для Hyper-V:
[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\CriticalDeviceDatabase\pci#ven_8086&dev_7111]
"ClassGUID"="{4D36E96A-E325-11CE-BFC1-08002BE10318}"
"Service"="intelide"

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\CriticalDeviceDatabase\pci#ven_8086&dev_7110&cc_0601]
"ClassGUID"="{4D36E97D-E325-11CE-BFC1-08002BE10318}"
"Service"="isapnp"

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\CriticalDeviceDatabase\primary_ide_channel]
"Service"="atapi"
"ClassGUID"="{4D36E96A-E325-11CE-BFC1-08002BE10318}"

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\CriticalDeviceDatabase\secondary_ide_channel]
"Service"="atapi"
"ClassGUID"="{4D36E96A-E325-11CE-BFC1-08002BE10318}"

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\IntelIde]
"ErrorControl"=dword:00000001
"Group"="System Bus Extender"
"Start"=dword:00000000
"Tag"=dword:00000004
"Type"=dword:00000001

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\PCIIde]
"ErrorControl"=dword:00000001
"Group"="System Bus Extender"
"Start"=dword:00000000
"Tag"=dword:00000003
"Type"=dword:00000001
"ImagePath"=hex(2):73,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,44,00,\
 52,00,49,00,56,00,45,00,52,00,53,00,5c,00,70,00,63,00,69,00,69,00,64,00,65,\
 00,2e,00,73,00,79,00,73,00,00,00
"DisplayName"="Standard IDE/ESDI Hard Disk Controller"

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\atapi]
"ErrorControl"=dword:00000001
"Group"="SCSI miniport"
"Start"=dword:00000000
"Tag"=dword:00000019
"Type"=dword:00000001
"DisplayName"="Standard IDE/ESDI Hard Disk Controller"
"ImagePath"=hex(2):73,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,44,00,\
 52,00,49,00,56,00,45,00,52,00,53,00,5c,00,61,00,74,00,61,00,70,00,69,00,2e,\
 00,73,00,79,00,73,00,00,00

Убеждаемся в присутствии файлов
  • windows\system32\drivers\intelide.sys
  • windows\system32\drivers\pciide.sys
  • windows\system32\drivers\atapi.sys

Теперь можно перезагружаться.
Первый старт ВМ может быть довольно-долгим, поскольку поменялась вся конфигурация оборудования.
После стартам можно перезагрузить машину и установить средства интеграции в виртуальную машину и удалить ненужные драйверы. После чего всё должно работать намного шустрее.

1 комментарий:

  1. Интересно, у меня получится с физики Ubuntu таким же макаром перенести под VirtualBox под Windows 7... Сейчас пока что делается образ. 80 гигов :)

    ОтветитьУдалить