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

Обновлено: 06.07.2024

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

Экспорт виртуальной машины

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

Использование диспетчера Hyper-V

Чтобы экспортировать виртуальную машину:

В диспетчере Hyper-V щелкните правой кнопкой мыши виртуальную машину и выберите пункт Экспорт.

Выберите место хранения экспортируемых файлов и нажмите кнопку Экспорт.

После завершения экспорта можно просмотреть все экспортированные файлы в расположении экспорта.

Использование PowerShell

Откройте сеанс от имени администратора и выполните команду, как показано ниже, после замены и пути виртуальной машины <> :

Дополнительные сведения см. в разделе Export-VM.

Импорт виртуальной машины

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

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

Импорт с помощью диспетчера Hyper-V

Чтобы импортировать виртуальную машину, выполните следующие действия.

В меню действия в диспетчере Hyper-V щелкните Импорт виртуальной машины.

Щелкните Далее.

Выберите папку, содержащую экспортированные файлы, и нажмите кнопку Далее.

Выберите виртуальную машину для импорта.

Выберите тип импорта и нажмите кнопку Далее. (Описание см. в разделе типы импортаниже.)

Импорт с помощью PowerShell

Используйте командлет Import-VM , следуя примеру для требуемого типа импорта. Описание типов см. в разделе типы импортаниже.

Этот тип импорта использует файлы, где они хранятся во время импорта, и хранит идентификатор виртуальной машины. Следующая команда показывает пример файла импорта. Выполните аналогичную команду со своими собственными значениями.

Восстановить

Чтобы импортировать виртуальную машину, указав собственный путь к файлам виртуальной машины, выполните команду, подобную следующей, заменив примеры значениями.

Импортировать как копию

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

Дополнительные сведения см. в статье Импорт-виртуальная машина.

Типы импорта

Hyper-V предлагает три типа импорта:

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

Копирование виртуальной машины Это похоже на тип восстановления в том, что выбрано расположение для файлов. Разница заключается в том, что импортированная виртуальная машина имеет новый уникальный идентификатор. Это означает, что виртуальную машину можно импортировать на один узел несколько раз.

1vhd

Вы хотите, чтобы был простой способ перенести физические машины на виртуальные машины для тестирования и консолидации? Сегодня мы взглянем на Disk2VHD от Sysinternals, который представляет собой простое решение для превращения физических машин Windows в виртуальные машины — даже когда они запущены и работают.

Запуск Disk2VHD

Disk2vhd позволяет вам создать виртуальный жесткий диск (VHD) физической машины, даже когда машина включена и работает с использованием технологии моментальных снимков томов. Эта небольшая утилита не требует установки, и вы можете запустить ее с флешки, если хотите. Просто откройте папку Disk2vhd и запустите исполняемый файл.

Согласитесь с EULA …

2vhd

3vhd

Вам показывают индикатор выполнения, пока создается виртуальный жесткий диск. VHD XP от более старого IBM ThinkPad G40, использованного для этого теста, занял около часа. Время, необходимое для создания виртуального жесткого диска, зависит от системы.

4vhd

Установка на Windows Virtual PC

16VHDD

11vhd

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

12vhd

Определите объем памяти, выделяемый виртуальной машине, и выберите параметры сети.

13vhd

14vhd

Созданная виртуальная машина будет помещена в папку Virtual Machines.

15vhd

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

17vhd

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

7vhd

28vhd

Мастер запустится на виртуальном компьютере и будет следовать каждому шагу, пока он не будет завершен, а затем перезапустите виртуальную машину.

18vhd

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

sshot-2009-12-26-[20-10-36]

Вывод

Вы также можете запускать виртуальные жесткие диски на виртуальных машинах Microsoft Hyper-V на Server 2008, и мы также успешно запустили один из них на VirtualBox. Существует множество сценариев, в которых Disk2vhd очень пригодится, особенно для объединения старых машин в одну. Его можно использовать для создания образов других машин для тестирования, не беспокоясь об их повреждении. Также его можно использовать для простого создания резервной копии вашего компьютера. Он полностью бесплатный, не требует установки и создает виртуальный жесткий диск во время работы компьютера. Он будет работать на Windows XP SP2 и выше.

Перенос физических серверов в виртуальную среду (Physical-to-Virtual, P2V) может преследовать различные цели. Например, выведя из эксплуатации устаревшие сервера и смигрировав их в виртуальную среду можно оптимизировать загрузку оборудования, не говоря о том что виртуальными машинами гораздо легче управлять. Способов P2V-миграции достаточно много, и сегодня я опишу один из них.

Переходим к конкретной задаче. Имеется одинокий 🙂 сервер с установленной на нем Windows Server 2003 R2. На сервере крутятся несколько важных сервисов, остановка которых более чем на несколько минут недопустима. Физический доступ к серверу ограничен, так как он стоит в датацентре. Задача — смигрировать его на Hyper-V, при этом минимизировав время недоступности сервисов.

Для решения этой задачи я решил воспользоваться программой Disk2VHD от Sysinternals. Disk2VHD умеет конвертировать физические жесткие диски в виртуальные диски формата VHD. Подключив созданные программой VHD-файлы к виртуальной машине, мы получаем полную копию физического сервера со всеми установленными ролями, приложениями и настройками.

При создании VHD программа использует службу теневого копирования (Volume Shadow Copy Service, VSS), что позволяет создавать образ диска прямо на работающей машине, без необходимости ее остановки. Более того, образ можно создать на том же диске, который вы конвертируете, правда скорость работы при этом будет несколько ниже, чем при использовании другого диска.

Disk2VHD бесплатна, не требует установки и поддерживает все более-менее актуальные операционные системы Microsoft начиная с Windows XP SP2 и Server 2003 SP1, как 32-х так и 64-битные версии. В общем, Disk2VHD оптимальна для решения нашей задачи, по крайней мере в теории. Посмотрим, что покажет практика ?

Создание образа

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

Запуск Disk2VHD

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

Disk2VHD может работать как в графическом режиме, так и из командной строки. Например, сконвертировать диск C: можно командой:

disk2vhd C: C:\Distr\Image.vhd

А так сконвертируются все диски, имеющиеся на сервере:

Подключение образа

Получившийся образ переносим на сервер Hyper-V. Открываем Hyper-V Manager и запускаем процесс создания новой виртуальной машины. Параметры машины (процессор, память, сеть) устанавливаем в соответствии с характеристиками копируемого физического сервера, а в качестве виртуального диска указываем использовать полученный VHD-файл.

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

Запускаем виртуальную машину. При первой загрузке система попытается определить и установить драйвера на новое оборудование. Для новых ОС, таких как Windows Server 2012, этот процесс проходит автоматически, в нашем же случае надо перейти в меню Action — Insert Integration Services Setup Disk, после чего вручную запустить установку сервисов интеграции.

установка Integration Services

По окончании установки сервисов интеграции система потребует перезагрузки.

установка integration services

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

Заключение

Программы от Sysinternals выручали меня в различных ситуациях, не подвели и на этот раз. С помощью Disk2VHD сервер успешно смигрировал в виртуальную среду с минимальными потерями. Допускаю, что мне просто повезло и я не столкнулся с проблемами в процессе перехода, однако у меня использование Disk2VHD вызвало только положительные эмоции 🙂

Вопрос, возможно, глупый, но всё же:
Есть полностью сконфигурированная ВМ, созданная в Virtualbox 4.1.6
Задача — перенести её на реальное железо, причем, желательно, с использованием флэш-накопителя.

Насколько я понимаю, пошагово это будет выглядеть как — создать образ харда виртуалки, записать его вместе с загрузчиком на флэшку, после чего развернуть этот образ на хард реального компа.

Если ход мыслей верен — прошу расписать каждый шаг и ПО, необходимое для реализации (или отослать к руководствам, если таковые имеются =) ), если же неверен — опять-таки, наставить на путь истинный.

Заранее благодарен за любую помощь! =)


Способов переноса может быть несколько:

1. Как уже посоветовали dd, загрузившись с Livecd, смонтировать приёмник в /mnt и дать команды:

Только всё же лучше снимать образ не диска, а разделов всех, в отдельный файл образа, затем на новом диске реального ПК создать таблицу разделов с такими же по размеру разделами, или чуть большими, главное что не меньшими и развернуть всё тем же dd.

2. Запаковать в архив целиком систему, только Linux / BSD, агрузиться с Livecd, смонтировать файловые системы в той последовательности, в которой они должны быть подключены, согласно /etc/fstab, к примеру в /mnt/system, в /mnt/backup смонтировать приёмник:

3. Вариант, воспользоваться специальным ПО, правда платным, Acronis True Image Home Edition (bootcd можно найти в internet бесплатно.) Создать образ целиком диска и сохранить к примеру на флешку, правда будет долго писаться (флешка медленная). Затем загрузиться с диска с Acronis`ом на новом ПК и развернуть образ диска с флешки, загрузчик восстанавливать не придётся.

Но это всё достаточно сложные варианты, т.к. вы просите всё сделать с помощью флешки, проще подключить жёсткий диск того компьютера, на который вы хотите перенести вашу виртуальну машину к компьютеру, где у вас установлен Virtualbox, пробросить его в виртуальную машину и скопировать систему прямо на него, проще это выполнить всё тем же Acronis`ом, режим клонирование диска / перенос системы. Он так же вам позволит указать другие размеры разделов и правильно увеличит файловые системы, так же не нужно будет переустанавливать загрузчик, да и скорость копирования будет выше за счёт того что вы пишете на жёсткий диск и Acronis не копирует пустое место диска как в случе с dd.

Для того, что бы пробросить реальный жёстки диск в Virtualbox нужно сначала создать (сопоставить ему) файл vmdk.

Для таких операция ваш пользователь должен находиться в группе disk, /dev/sdb - имя диска, подключенного к вашей системе.
После чего останавливаете виртуальную машину и добавляете в неё жёсткий диск, указав, что диск уже существует и указываете созданный предыдущей командой файл.

Грузитесь с bootcd Acronis True Image Home Edition и осществляете клонирование диска. Затем выключаете виртуальную машину, выключаете компьютер и подключаете диск к целевому компьютеру.


Нашел на просторах интернетов следующую полезность:
VBoxManage internalcommands converttoraw .vdi
.img

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

Осталось взять knoppix и из под него развернуть образ. большое спасибо всем отозвавшимся! =)


Разбейте целевой диск на разделы, подмонтируйте образ из виртуальной машины, скопируйте файлы (cp -a), подправьте fstab и переставьте загрузчик. Возможно, нужно будет сделать chroot и перегенерировать initramfs.


>Насколько я понимаю, пошагово это будет выглядеть как — создать образ харда виртуалки, записать его вместе с загрузчиком на флэшку, после чего развернуть этот образ на хард реального компа.

просто сделайте tar-ом архивы разделов (всех, кроме каталогов /sys, /proc, /mnt, /media, их потом создать надо ручками), затем растарьте на целевой системе. Ну а загрузчик заново надо прописать (для lilo просто chroot && /sbin/lilo)

dd плохо тем, что диск(раздел) в 100Гб она копирует _только_ в диск(раздел) в 100Гб.


>скопируйте файлы (cp -a)

tar-ом быстрее обычно (если использовать tar cz)


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


>dd плохо тем, что диск(раздел) в 100Гб она копирует _только_ в диск(раздел) в 100Гб.


Нет. Разве что после развёртывания нужно fsck сделать, чтобы сохранить в ФС информацию о новом размере раздела.



о чём я и говорил - dd переносит 100Гб раздел в 100Гб раздел. И 100Гб диск в 100Гб диск. В последнем случае вообще всё печально - диск на 500Гб видится как диск на 100Гб. :(

А если вы хотите перенести раздел в 100Гб на раздел в 200Гб, то проще воспользоваться cp или лучше tar'ом.

Беда в том, что dd слишком тупая, и переносит всё AS IS.


>Нет. Разве что после развёртывания нужно fsck сделать, чтобы сохранить в ФС информацию о новом размере раздела.

тут resize надо делать, а не fsck. А это может привести к потере всех данных.


тут resize надо делать, а не fsck.
Зачем resize? Если скопировать (dd) например 80-гигабайтый раздел на 160-гигабайтных раздел то достаточно fsck - так как в дополнительных 80 гигабайтах нет ни одного бита данных, достаточно просто поставить ФС в известность о том, что они есть. Вот в случае переноса всего диска с GPT и несколькими разделами скорректировать GPT (parted предлагает это автоматом) нужно ещё до resize, иначе подвигать разделы или изменить их размер не получиться.
> А это может привести к потере всех данных.
О какой потере данных может идти речь, если данные перенесены на новый диск откуда-то (с диска-источника или файла-образа), где точно остаётся их копия?


>Зачем resize? Если скопировать (dd) например 80-гигабайтый раздел на 160-гигабайтных раздел то достаточно fsck - так как в дополнительных 80 гигабайтах нет ни одного бита данных, достаточно просто поставить ФС в известность о том, что они есть.

а вы проверяли? fsck посмотрит в таблицу разделов, где записано, что там 160Гб, а не 80? Ведь в самой FS записано что 80.

О какой потере данных может идти речь, если данные перенесены на новый диск откуда-то (с диска-источника или файла-образа), где точно остаётся их копия?

угу. С образа VM, который на том-же диске :)


а вы проверяли?
Конечно, неоднократно. После развёртывания раздела достаточно fsck. Причём его даже не обязательно делать сразу или же вручную - он будет произведён автоматически при очередной загрузке ОС.
> угу. С образа VM, который на том-же диске :)
В любом случае образ VM во время переноса будет находиться на другом разделе (который, в свою очередь может располагаться где угодно - на том же HDD, на другом HDD или вообще на сетевой шаре).


В любом случае с dd слишком много геморроя на пустом месте. С помощью tar или cp перенести систему гораздо проще и быстрее.


dd удобнее для переноса нескольких разделов. А их обычно как раз несколько.


Сделай несколько разделов, подмонтируй в один корень, а потом tar/cp. Всё равно будет _проще_ и _быстрее_.


Чудесно, только как всё это относится к переносу виртуальной машины на железо?


Размеры физического диска и виртуального не совпадают с вероятностью 99.99999%. Поэтому делаем так. Разбиваем физический диск как нужно, монтируем в один корень, далее монтируем разделы виртуального диска и делаем cp с соответствующими флагами, далее chroot в корень физического диска и восстанавливаем загрузчик. Очевидно, что cp отработает в разы быстрее чем dd, так как данных переливать будет на порядки меньше, да и геморроя потом с resize'ом файловых систем избежим.


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


В виртуальной машине наверняка небольшие диски, ускорение вряд ли будет существенно.

Читать man, высчитывать offset'ы и потом не забываем, что resize не увеличит число инодов (по крайней мере на ext3), поэтому в будущем можно огрести геморрой. Может лучше сразу сделать всё правильно?

RussianNeuroMancer> Конечно, неоднократно. После развёртывания раздела достаточно fsck. Причём его даже не обязательно делать сразу или же вручную - он будет произведён автоматически при очередной загрузке ОС.

Наглая ложь. Специально для дебилов привожу доказательства

Ничего не изменилось.

Теперь ждем твою демонстрацию или ты понял.


Далеко не факт.
Зависит от размеров диска виртуалки, и всё.
> высчитывать offset'ы и потом не забываем
Этим занимается parted.
> по крайней мере на ext3
Кого ext3 интересует сейчас?



Какие, кроме установки дров и загрузки ядра для конкретной архитектуры проца?


Зависит от размеров диска виртуалки, и всё.

Конечно. А кто сказал, что он маленький?

Ты уверен, что для ext4 не так? я вот не уверен.

Зачем надеяться на какие-то непонятные факторы, если есть 100% рабочий быстрый и железобетонный способ, который вообще не зависит от всяких еслибы да кабы ? Тебе нравятся извращения?


Конечно. А кто сказал, что он маленький?
Данные обычно хранят на СХД, не?
> Ты уверен, что для ext4 не так? я вот не уверен.
См. наличие resize_inode в Filesystem features вывода tune2fs -l /dev/vdaX. И не нужно никаких абы да кабы.


См. наличие resize_inode в Filesystem features вывода tune2fs -l /dev/vdaX. И не нужно никаких абы да кабы.

Во во. Смотреть на какие-то фичи. Ты прям как упертый баран. Тебе так сложно согласиться с очевидными фактами на счет того, что мой способ 100% рабочий быстрый и не зависит ни от чего?

Я переносом Windows 7 не занимался, но если вы почитаете в Internet, да и здесь то увидите проблемы замены драйверов. К тому же в реестре указан жёстко путь (расположение) системного раздела и файлов реестра:

Вообще данную тему очень интересно, видимо, обсуждать на форуме посвященном Linux / BSD системам.

И ещё раз повторюсь, замены в нужных местах можно попробовать сделать и в Windows, но она для этого не предназначена, в Linux / BSD делается всё куда проще, даже в случае не загружающейся системы (через chroot), попробуйте сделать то же самое в Windows.



>Вообще данную тему очень интересно, видимо, обсуждать на форуме посвященном Linux / BSD системам.

Тьфу, перепутал темы, пардон, но с переносом Windows XP не всегда тоже гладко проходит.

Да у ТС Linux, наверное, ошибся.


Ну, допустим, определенный % пользователей всегда гарантированно сталкивается с какими-то половыми^W проблемами (независимо от ОСи) :)

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