Как сделать виртуальную машину из физической

Обновлено: 06.07.2024

Но что, если у вас возникнет нужда в обратном, то есть в переносе настроенной виртуальной Windows на физический компьютер?

Развертывания виртуальной Windows на физический диск

Скажем, понравилась вам тестируемая на виртуалке версия Windows, и вы захотели, не тратя времени, развернуть ее на хостовой машине. Возможно ли такое? Да, но с определенными оговорками, ибо нельзя дать стопроцентной гарантии, что система встанет без ошибок и необходимости дополнительных настроек вроде установки драйверов. На одном из ресурсов для этого предлагается использовать программу Macrium Reflect, но нам этот способ показался слишком громоздким и неудобным, поскольку, во-первых, он предполагает работу как минимум с двумя переносными носителями, во-вторых, с ним связано практически неизбежное падение развернутой системы в BSOD , с которым придется разбираться отдельно.

Мы предлагаем более простое решение с применением утилиты Vhd2Disk — выполняющей ту же работу, что и знаменитая Disk2vhd, только в обратном порядке. Если Disk2vhd виртуализирует физический ПК, то Vhd2Disk, извините за не совсем удачное выражение, материализует виртуальную Windows на физическом компьютере.

Утилита тоже бесплатна, скачать ее вы можете с официальной странички форума:

Перенос Windows с VirtualBox на реальный компьютер

Для примера мы будем использовать виртуальную Windows XP ввиду ее компактности и небольшого объема внешнего диска, но суть от этого не меняется, с таким же успехом на физический диск вы можете перенести Windows 10, 8.1 и 7. Итак, имея настроенную виртуальную Windows на Oracle VM VirtualBox , удаляем из нее дополнения гостевой ОС во избежание конфликтов и отцепляем общие папки, если таковые имеются. Зайдя в управление дисками виртуальной системы, вы увидите примерно такую картину, только разделов в Windows 10/8.1/7 будет больше (служебные, системный и пользовательский) .

Управление дисками

Конвертирование диска VDI в VHD

Более чем наверняка ваша переносимая с VirtualBox Windows будет установлена на виртуальный диск формата VDI , нам же нужен виртуальный диск формата VHD , поэтому завершаем работу гостевой системы, идем в менеджер виртуальных носителей VirtualBox и выбираем диск с нашей системой.

Oracle VM VirtualBox

VirtualBox

VirtualBox

VirtualBox

VirtualBox

Процедура не займет много времени, в результате которой вы получите точную копию виртуальной машины, только в формате VHD .

Менеджер виртуальных носителей

VHD

Подготовка диска

В данном примере развертывание образа будет выполняться на чистый накопитель, который необходимо подключить к компьютеру через SATA или USB . Если на диске уже имеются разделы, удаляем их со всем содержимым в Diskpart. Правда, есть способ, позволяющий развернуть систему из VHD -образа только на системный том, но в данном примере мы предположим, что вы решили перенести не только одну систему, но весь виртуальный диск с его разделами. Вот так это должно выглядеть в оснастке управления дисками.

Диск 1

Работа с Vhd2Disk

Vhd2Disk

Vhd to disk

SVHD dumped on drive successfully!

Идет подготовка устройства

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

Управление дисками

Также, что очень важно, вам нужно будет зайти в Диспетчер устройств, в котором наверняка обнаружатся неопознанные устройства или же устройства без драйверов. Это нормальное явление, драйвера ставим с вручную или помощью DriverPack Solution либо же аналогичной программы.

Сегодня на рабочем компьютере вышла из строя материнская плата. Пока плату будут ремонтировать решил свою рабочую физическую windows-систему перенести на виртуальную машину, чтобы не терять время на инсталляцию и настройку софта который облегчает администрирование. Оказалось что перенос windows с физической машины на виртуальную - достаточно простая задача.

Если на физической машине\винчестере у вас несколько логических дисков, а время поджимает, можете сделать образ только с системного диска.

Устанавливаем и создаем виртуальную машину с той ОС, чей образ Вы сделали.

VirtualBox: создание виртуальной машины

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

virtualbox: подключение vhd образа жесткого диска

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

virtualbox: свойства виртуальной машины

  • На вкладке материнской платы ставим галочку напротив "Enable IO APIC"
  • На вкладке процессора убеждаемся что не установлена галочка напротив "PAE/NX features."

Если физический диск на физической машине был сконфигурирован как SATA-устройство, вам может понадобиться подключить его образ как SATA-устройство и в виртуальной машине.

Делается это на вкладке "Storage".

Удаляем текущий контроллер:

VirtualBox: удаление контроллера

И создаем SATA-контроллер:

virtualbox: добавление sata-контроллера

Подключаем к контролеру образ жесткого диска (у вас он конечно будет в vhd/vhdx-формате):

virtualbox: подключение sata жесткого диска

Хочу отметить что столкнулся с таким нюансом: изначально на хостовой машине с 8 ГБ ОЗУ я создал виртуальную машину с 2 ГБ ОЗУ, после успешного запуска решил увеличить до объем ОЗУ на виртуальной машине до 4 ГБ, но она перестала запускаться, выдавая ошибки. Свободного времени было немного, потому я не записал текст ошибки и не стал разбираться в сути проблемы, просто снова установил в виртуальной машине 2 ГБ ОЗУ.

Если выскакивает ошибка 0x0000007B мне помогло для виртуализиванной машины с windows xp указать носитель IDE с типом ICH6, чипсет ICH9. При этом винчестер на физической машине был воткнут в SATA.

Практически гениально!

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

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

date

27.07.2021

user

itpro

directory

Hyper-V, PowerShell, Windows Server 2016, Виртуализация

comments

комментариев 6

В Hyper-V в отличии от VMWare нет встроенной функции клонирования виртуальной машины (клонирование есть только в Virtual Machine Manager). Чтобы создать полную копию существующей ВМ придется использовать функцию импорта/экспорта. В этой статье мы рассмотрим, как клонировать виртуальную машину в Hyper-V через импорт/экспорт через графический интерфейс Hyper-V Manager, PowerShell и Windows Admin Center (WAC).

При клонировании виртуальных машин с Windows не забывайте о том, что после клонирования ВМ у ее копии будет такой же SID. Для сброса SID нужно использовать утилиту sysprep. Если вы создали эталонный образ Windows, то перед клонированием на нем нужно выполнить команду:

%WINDIR%\system32\sysprep\sysprep.exe /generalize /shutdown /oobe

ВМ будет выключена и при следующей загрузке как оригинальной ВМ, так и ее клона для Windows будет сгенерирован новый SID. Также нежелательно клонировать ВМ, включенные в домен Active Directory.

Экспорт/импорт ВМ из консоли Hyper-V Manager

Сначала нужно экспортировать ВМ в отдельный каталог.

Запустите консоль Hyper-V manager, выберите ВМ и в контекстном меню выберите Export.

Начиная с версии Hyper-V в Windows Server 2012 R2 (в том числе в Free Hyper-V Server) вы можете экспортировать даже запущенные виртуальные машины без их остановки.

экспорт виртуальной машины через hyper-v manager

Укажите каталог, в который нужно экспортировать виртуальную машину.

каталог в который поместить копию ВМ

Статус экспорта ВМ будет отображен в строке состояния ВМ в консоли Hyper-V.

exporting VM в консоли hyper-v

Начиная с Hyper-V в Windows Server 2012 R2 вы можете экспортировать конкретный снимок (checkpoint) виртуальной машины. Для этого достаточно выбрать нужны снимок в дереве Checkpoints и выбрать Export.

экспорт снимка ВМ в hyper-v

Чтобы импортировать ВМ щелкните в консоли Hyper-V Manager по имени хоста и выберите Import Virtual Machine.

запустить Import Virtual Machine в консоли hyper-v

Затем нужно указать путь к каталогу, в котором находятся папки с файлами импортируемой ВМ. При импорте ВМ в Hyper-V предлагается 3 варианта регистрации ВМ на хосте:

  • Register the virtual machine in-place (use the existing unique ID) —зарегистрировать ВМ в каталоге с импортируемыми файлами, ID ВМ сохраняется;
  • Restore the virtual machine (use the existing unique ID) — скопировать файлы ВМ в другой каталог, сохранить исходный идентификатор ВМ;
  • Copy the virtual machine (create a new unique ID) — скопировать ВМ в другую каталог и сгенерировать новый ID.

копировать ВМ Hyper-V и сгенерировать новый ID

У каждой ВМ на хосте Hyper-V есть идентификатор ID, который должен быть уникальным в рамках хоста. Если вы импортируете, клонируете ВМ на другой хост, ID ВМ менять не обязательно.

Если вы попробуете импортировать ВМ с дублирующим ID, появится ошибка:

Чтобы создать клон ВМ с новым ID мы выбрали 3 вариант. Мастер предложит указать в каких каталогах нужно разместить файлы ВМ. По умолчанию, используются каталоги, заданные в настройках хоста Hyper-V.

указать каталог, в котором хранить файлы ВМ

Затем укажите каталог для хранения виртуальных дисков vhdx ВМ.

каталога для vhdx файлов ВМ hyper-v

После этого новая клонированная виртуальная машина появится в консоли Hyper-V.

Клонирование ВМ через экспорт/импорт в Hyper-V с помощью PowerShell

Рассмотрим, как клонировать виртуальную машину Hyper-V через импорт/экспорт из консоли PowerShell.

Для экспорта ВМ воспользуйтесь такой командой:

Export-VM -Name win10 -Path 'C:\VHD\export'

Export-VM в hyper-v с помощью powershell

Если вы хотите экспортировать запущенную ВМ, вы можете использовать параметр CaptuteLiveState, в котором определяется как нужно копировать оперативную память ВМ. Доступны три опции

  • CaptureSavedState – экспортировать оперативную память (по-умолчанию);
  • CaptureDataConsistentState – экспортировать состояние ВМ из Production checkpoint;
  • CaptureCrashConsistentState – не сохранять содержимое памяти.

Export-VM -Name win10 -Path 'C:\VHD\export' -CaptureLiveState CaptureCrashConsistentState

Если вы хотите экспортировать состояние ВМ в определеном снимке, нужно указать его имя.

Сначала выведите список снимков для указанной ВМ:

Get-VMSnapshot -VMName win10

Затем выполните экспорт нужного снимка по его имени:

Export-VMSnapshot -Name “win10 - (2/17/2021 - 9:52:20 PM) Standard” -VMName win10 -Path 'C:\VHD\export'

Export-VMSnapshot

После завершения экспорта ВМ вы можете импортировать ее. Если нужно зарегистрировать ВМ по месту хранения файлов, выполните команду:

Import-VM -Path "C:\VHD\export\win10\Virtual Machines\1117A061-0B50-4BC2-850C-88CCD4C114FB.vmcx"

В параметре Path указываем расположение vmcx файла конфигурации ВМ (формат vmcx заменил XML формат конфигурационных файлов ВМ в Hyper-V Server 2016). Для копирования ВМ в другой каталог с тем же ID используйте параметр Copy. Чтобы сгенерировать нового идентификатор ВМ, используйте параметр GenerateNewId:

Import-VM -Path "C:\VHD\export\win10\Virtual Machines\1117A061-0B50-4BC2-850C-88CCD4C114FB.vmcx" -VhdDestinationPath "C:\VHD\win10_2" -VirtualMachinePath "C:\VHD\win10_2"

В параметре VhdDestinationPath указывается каталог, куда нужно скопировать VHDX файлы ВМ, а в параметре VirtualMachinePath — каталог конфигурационных файлов ВМ. Если эти параметры не задать, файлы ВМ будут скопированы в дефолтный каталог, указанный в настройках хоста Hyper-V (C:\ProgramData\Microsoft\Windows\Hyper-V\Virtual Machines\).

Также можно указать каталоги для хранения чекпоинтов ( SnapshotFilePath ) и файла подкачки ( SmartPagingFilePath ).

import-vm командлет powershell

Обратите внимание, что клонированная ВМ появилась в консоли Hyper-V с оригинальным именем. Переименуем новую ВМ, но сначала нужно получить ее ID:

get-vm | select VMNAME,VMId

Как вы видите в консоли есть две ВМ с одинаковым именем и разными ID. Нужно переименовать ВМ с ID, который отличается от ID импортируемой ВМ. Скопируйте ID новой ВМ и переименуйте ее:

переименовать виртуальную манину hyper-v из powershell

Затем для удобства можно переименовать виртуальный жесткий диск.

Get-VHD -VMId 24ad8934-f650-46f6-9caa-2a3b79b79bd5| Select Path | Rename-Item -NewName win10_2.vhdx
Remove-VMHardDiskDrive -VMName win10_2 -ControllerType SCSI -ControllerLocation 0 -ControllerNumber 0
Add-VMHardDiskDrive -VMName win10_2 -ControllerType SCSI -ControllerNumber 0 -ControllerLocation 0 -Path "C:\VHD\win10_2\win10_2.vhdx"

Изменим MAC адрес виртуального адаптера (можно указать новый статический MAC или настроить динамическое получение MAC адреса).

Set-VMNetworkAdapter -VMName win10_2 -DynamicMacAddress
Start-VM -Name win10_2

изменить имя виртуальных дисков ВМ hyper-v

Прежде, чем подключить новую ВМ в сеть, желательно переименовать ее и изменить IP адрес на новый (если используется DHCP адресация, этот шаг можно пропустить). В данном случае мы можем подключиться к новой ВМ через PowerShell Direct с помощью командлета Invoke-Command или Enter-PSSession:

Enter-PSSession -ComputerName win10_2 -Credential (Get-Credential)
Rename-Computer win10_2
Remove-NetIPAddress -InterfaceAlias “Ethernet” -AddressFamily IPV4
New-NetIPAddress -IPAddress 192.168.31.50 -InterfaceAlias “Ethernet” -AddressFamily IPv4 -PrefixLength 24
Restart-Computer

Клонирование виртуальных машин Hyper-V через Windows Admin Center

Возможно клонировать ВМ Hyper-V напрямую без промежуточного экспорта/импорта появилась в Windows Admin Center v2009.

Запустите WAC, выберите раздел Virtual Machines, выберите ВМ -> Manage -> Clone.

Windows Admin Center клонировать виртулаьную машину

Затем нужно указать имя новой ВМ и каталог, в который нужно поместить ее файлы.

wac клонирование виртуальной машины с sysprep

Обратите внимание, что мастере клонирования есть опция “I have already run sysprep on my VM”. Если вы не выполнили генерализацию образа с помощью Sysprep, и не включили эту опцию, Hyper-V создаст снапшот исходной ВМ, выполните ее Sysprep и склонирует в новую (исходная ВМ будет несколько раз перезагружена и не доступна для работы). После этого исходная ВМ будет возвращена в первоначальное состояние, а снапшот удален.

Windows Admin Center - pre-sysprep снимок при клонировании

Дождитесь окончания клонирования ВМ. Новой ВМ автоматически будет присвоен новый ID.

клонирование виртуальной машины hyper-v

Предыдущая статья Следующая статья

page

page

page

Включаем поддержку SR-IOV для виртуальных машин Hyper-V

Низкая скорость сети на хосте Hyper-V с Windows Server 2019

Установка VMWare ESXi в виртуальную машину Windows Hyper-V

Маршрутизация между разными IP подсетями в Hyper-V

А какие есть бесплатные способы сделать клон ВМ из ESXi в Hyper-V?

Из приличных был StarWind V2V Converter, вроде это функционал там бесплатные. можно еще тулзой disk2vhd

Очень интересует последний способ, спасибо за него! Я поставил Windows Admin Center, она отлично встала на Windows Server 2022, я попробовал клонировать Windows 10 (заведено 2 юзера, оба админы).
Вот какую ошибку получаю:

Подробная информация об уведомлении
Ошибка
Не удалось клонировать виртуальную машину

00:43:25
Источник
Перейти в Виртуальные машины
Тип
Ошибка

Читайте также: