Вопрос Каков рекомендуемый способ перемещения виртуальной виртуальной машины на другой компьютер?


Я использую VirtualBox 4.1.x на своей машине Ubuntu, и я создал несколько виртуальных машин. Поскольку существует несколько способов переместить виртуальную машину в VirtualBox на другой компьютер, мне было интересно, какой из них рекомендуется:

  1. Используйте «Утилита импорта / экспорта».
  2. Скопируйте всю папку виртуальной машины, содержащую .vdi а также .vbox файлы.
  3. Выполните клонирование VDI с помощью «Virtual Media Manager», а затем создайте виртуальную машину на целевой машине, но с помощью клонированного VDI в качестве жесткого диска.

Я успешно использовал 1-й метод несколько раз, и он всегда работал. Проблема в том, что после экспорта и импорта образ диска теперь превращается в VMDK, а не VDI!

Второй метод вероятно, самый простой, но я не уверен, что просто копирование файлов будет работать или нет на целевой машине. Когда я искал этот метод, я обнаружил, что у некоторых людей были проблемы, в которых им пришлось редактировать файл VirtualBox.xml для его решения!

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

Из приведенного выше объяснения ясно, что мой желаемый метод - это второй, но мне нужна экспертная консультация по этому вопросу, если он работает или нет. Я не хочу, чтобы любое редактирование XML мешало мне!

Каков наилучший способ безопасной передачи моей виртуальной машины на другой компьютер с помощью VirtualBox?


197
2017-08-18 19:45


происхождения


Просто перенесите файлы и поместите их в одном месте. - Ramhound
@seyed 1. A безотказный решение с высокими коэффициентами успеха / воспроизводимостью может быть не всегда рекомендуемые и / или Лучший решение проблемы и наоборот, Однако, поскольку вы спрашиваете о рекомендуемые решение, вариант (2) из вашего списка (хотя и подверженного ошибкам) ​​будет самым быстрым и, следовательно, рекомендуется! Варианты (1) & (3) подпадают под безотказный категории, поскольку они будем работа в большинстве случаев. P.S .: post-export, некоторые (большинство?) Настройки конфигурации могут быть изменены (если используются опции 1/3)! ... Надеюсь это поможет. - Amar


ответы:


Хорошо сделано для ваших исследований. Я регулярно использую все три варианта.

  1. (Используйте «Утилиту импорта / экспорта»), Это проще всего, потому что он объединяет всю виртуальную машину в один файл и передает ее без проблем практически каждый раз. Однако, по моему опыту при создании OVA или OVF-файла для экспорта он удаляет все снимки, а если сделано неправильно, это может привести к файлу VMDK. При повторной импорте виртуальной машины вы можете выбрать тип файла жесткого диска, который вы хотите создать, VDI или VMDK.

  2. (Скопируйте всю папку виртуальной машины, содержащую .vdi а также .vbox файлы), Это мой предпочтительный вариант, и хотя мне пришлось несколько раз отредактировать XML-файл, это было моей собственной ошибкой для того, чтобы что-то испортить. Убедитесь, что при копировании виртуальной машины вы получаете ВСЕ файлы, связанные с ней. Проблемы, с которыми я столкнулся, заключались в том, что некоторые снимки и вторичные файлы VDI находились в неправильном каталоге и не были скопированы правильно. Если вы скопируете все файлы (и разрешения), у вас не должно возникнуть никаких проблем.

  3. (Clone VDI с помощью «Virtual Media Manager», а затем воссоздайте виртуальную машину на целевой машине, но используя клонированный VDI в качестве жесткого диска).  Это менее желательно, потому что тогда у вас есть 2 копии виртуальной машины, и это может вызвать проблемы с лицензированием, проблемы с сетью и т. Д. В зависимости от того, как вы клонируете файл VDI.

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


139
2017-08-18 20:53



Спасибо за ответ. Я подожду еще несколько дней, чтобы узнать, есть ли у кого-нибудь еще что-то другое. (+1) - Seyed Mohammad
Похоже, никто не может что-то добавить ... Поэтому я отмечаю это как ответ. - Seyed Mohammad
Просто дополнительная ссылка для варианта 1, ссылка, после импорта формат VDMK, он, по-видимому, определяется и не может быть изменен. - simongcc
@tbenz Как избежать получения VMDK при экспорте? - Don Rhummy
Просто чтобы быть полным: если вы делаете вариант 2, сделайте это на целевой машине: Virtualbox> Machine> Add> [перейти к папке, где находятся все файлы VM]. Вероятно, хорошая идея поместить новые файлы VM в ту же папку, где хранятся все ваши другие виртуальные машины. - Donn Lee


Метод 2 хорошо работает сейчас (с VirtualBox 4.0 и выше), без каких-либо модификаций XML:

  1. Остановите свою виртуальную машину
  2. Выход из VirtualBox
  3. Скопируйте папку VM в новое место
  4. Перезапустите VirtualBox и удалите старую виртуальную машину.
  5. Перейдите в меню «Машина» ≥ «Добавить и перейти к старой папке».

Это оно!

ps: У меня есть VirtualBox 4.3.20 на OSX 10.10

Видеть это сообщение форума VirtualBox Больше подробностей.


34
2017-09-24 19:35



Не могу поверить, что это не так сильно, как должно быть! Это самый простой способ (слишком простой!) При перемещении виртуальных машин в пределах одной и той же ОС. Успешно переместил две виртуальные машины с диска C на диск D. Mine - это Win7 64bit с Virtualbox 5.x - Edwin Yip
На самом деле это не просто переместить файл VDI, а только всю виртуальную машину. - DustWolf
@DustWolf Правильно, но об этом говорит вопрос о. - David
@DustWolf Это то, что сказал Дэвид. Msgstr "Скопировать папку VM в новое место". Насколько мне известно, эта папка содержит всю виртуальную машину. Я что-то упускаю? - Nik-Lz
@RestlessCobra да, новая папка содержит всю виртуальную машину. - David


Мой предпочтительный вариант - вариант 2:

  1. Скопируйте всю папку VM, содержащую файлы .vdi и .vbox.

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

Итак, если это сообщение, которое вы получаете после перемещения виртуальной машины и пытаетесь запустить ее в новой настройке:

Не удалось открыть жесткий диск.

Не удается зарегистрировать жесткий диск из-за жесткого диска    с UUID уже существует.

Просто зайдите в каталог вашей виртуальной машины; конечно, измените фактический путь, чтобы соответствовать фактическому пути, в который вы входите:

cd /full/path/to/virtualbox/virtualmachine/Sandbox

И запустите эту команду, чтобы назначить диску новый UUID:

VBoxManage internalcommands sethduuid Sandbox.vdi

16
2017-09-25 17:14





В случае, если кто-то еще ищет ответ на этот вопрос, я успешно переместил 5 виртуальных виртуальных машин на другую установку Win7 на новый жесткий диск на том же компьютере (по существу переход от одной гостевой ОС к другой на том же ПК). Я понимаю, что драйверы на совершенно новой машине, вероятно, будут меняться и потенциально могут негативно повлиять на ход, но я документировал этот процесс ниже в надежде, что он может кому-то помочь.

  • Не требовалось клонировать виртуальные машины или изменять файл xml. Версия VB была довольно актуальной: 4.3.12r93773.
  • Новые копии виртуальных машин были созданы в новой папке / совместно используемом диске, чтобы сохранить существующие / старые виртуальные машины неповрежденными. Я все еще могу загрузиться с старого жесткого диска, который я сохранил для резервирования / разрешения проблем, пока я не доволен своей новой настройкой; поэтому я могу получить доступ к старым виртуальным машинам в их прежнем состоянии, если это необходимо.
  • Буквы на диске могут отличаться / могут не потребоваться в зависимости от вашей настройки.

На старом Win7 Host:

  1. Убедитесь, что все виртуальные машины отключены.

На новом хосте Win7:

  1. Создайте новую папку под названием X: \ NewVMs \ VirtualBox VM (с новой машины Win7 для обеспечения разрешений в порядке)
  2. Копировать / Вставить (не перетаскивать) все виртуальные машины и связанные с ними папки из старой папки в эту папку (использует новые разрешения)
  3. Удалите VirtualBox (если установлен)
  4. Удалить папку .virtualbox и все содержимое (если они есть)
  5. REBOOT для подтверждения отсутствия файлов программ или записей в реестре (при удалении старого VirtualBox).
  6. Установите / переустановите VirtualBox (убедитесь, что вы используете ту же версию, что и VirtualBox, на которой были созданы виртуальные машины на старом хосте / машине (в моем случае вер. 4.3.12r93773))
    ВАЖНО: (Не выбирайте флажок для открытия / запуска VirtualBox в конце установки)
  7. Скопируйте / вставьте (не перетаскивайте) .virtualbox папку и содержимое из старого узла Win7 (обычно C: \ Users [имя_пользователя] .VirtualBox
  8. Теперь откройте VirtualBox
  9. Задайте настройки для новой папки создания виртуальной виртуальной машины по тому же пути к файлу, что и новая виртуальная папка виртуальной машины VirtualBox: виртуальные машины X: \ NewVMs \ VirtualBox
  10. Состояние тестирования виртуальных машин

Удачи.


9
2017-08-16 12:21



Хотя это информативный ответ, он не касается того, что было задано. Другой вопрос может быть более подходящим местом для вашего ответа. - akTed
@Steven, «... по существу переход от одного хозяин OS к другому ... "? - pythonlarry


Для частного случая, когда:

  • у вас есть одна виртуальная машина (или хотите переместить все ваши виртуальные машины),
  • и хост - это такое же оборудование с той же версией ОС (или переустановка той же ОС на тот же компьютер)

Если вы в этом случае, тогда все просто:

  1. Завершите работу VirtualBox на обоих хостах.
  2. Скопируйте .config/VirtualBox а также VirtualBox VMs папки с исходного хоста.
  3. Скопируйте эти папки на хост назначения.
  4. Запуск VirtualBox на целевом хосте

2
2018-03-22 03:42





Я также использовал метод 2, чтобы переместить мою виртуальную машину, и мне не пришлось вносить какие-либо изменения в какой-либо XML-файл, но у меня было несколько ошибок с USB и совместным использованием файлов, и ниже показано, как я исправил их вместе с процессом:

  1. Скопируйте виртуальную машину со старого на новый. Файлы виртуальной машины отличаются от самой виртуальной машины Oracle. Эти файлы обычно находятся на c: \ users \\ VirtualBox VMs \, Я взял все VirtualBox VMs \ частично и скопировал его в аналогичное место на новом ПК. Это копирует все виртуальные машины, которые у меня были на оригинальном ПК.

  2. Теперь на новом ПК запустите виртуальную коробку и перейдите в Меню> Машина> Добавить и выберите файл .vbox из скопированной папки. Вот и все.

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

enter image description here

  1. Я не знаю, почему USB-контроллер не работал, потому что он работал на оригинальном компьютере. Я пошел и установил VirtualBox Extension Pack

  2. Эта установка была немного странной, потому что загрузка установки не была исполняемым файлом. Я нажал на Oracle_VM_VirtualBox_Extension_Pack-5.1.4-110228.vbox-extpack и выбрал «Выбрать программу из списка установленных программ», а также выбранный виртуальный бокс Oracel и установил расширение. Это устранило проблему, но еще одно менее желательное решение - вы можете отключить USB.

  3. Если у вас были общие папки в исходной виртуальной машине, они могут отличаться, и вы получите ошибку. Просмотрите их в настройках >> Общая папка и удалите те, которые были повреждены. Появится сообщение об ошибке

this,

Это все.


0
2017-09-12 21:36





Четвертый путь

В VirtualBOX:

  1. Выключить ВМ
  2. Щелкните правой кнопкой мыши и удалите виртуальную машину (не удаляйте файлы)
  3. Перейдите в файл> Virtual Media Manager и удалите файл .vdi.
  4. Перейдите в меню «Файл»> «Настройки»> «Общие» и установите папку машины по умолчанию в новое место
  5. Создайте новый режим использования VM для создания виртуальной машины без жесткого диска

В Проводнике:

  1. Найдите файл .vdi и скопируйте его.
  2. Перейдите в новую папку с машиной по умолчанию, там будет папка VM внутри
  3. Вставьте файл .vdi в новую папку VM

Назад В VirtualBOX:

  1. Щелкните правой кнопкой мыши виртуальную машину и откройте настройки
  2. Перейдите в Storage> Controller: SATA и добавьте жесткий диск, нажмите выбрать существующий диск 11. Выберите файл .vdi в новой папке VM

Заметка: Если метод 2 прерывает вашу установку VirtualBOX, перейдите в C: \ Users \ .VirtualBox и удалите VirtualBox.xml и переименуйте VirtualBox.xml-prev в VirtualBox.xml


0
2018-06-28 21:44





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

Кроме того, убедитесь, что вы используете ту же версию VirtualBOX на хосте, но не только версию VirtualBOX, но также добавочный пакет vesion ... или, по крайней мере, новый хост имеет более высокую версию, но никогда не более низкую версию на любом из двух.

И, наконец, я научился этому трудно, удалите конфигурацию папок SHARED на VirtualBOX перед перемещением машины, а затем заново создайте ее ... очень важно, когда хост - это разные ОС (хосты Windows / Linux).

И как раз в качестве примечания ... я всегда использую inmutable файлы VDI для жестких дисков для ОС, а также для VDI данных (таким образом, тот же DATA VDI может использоваться для большего, чем гость), особенно трюк для 4GiB pagefile.sys

Эта последняя часть, повторное использование встроенного VDI-файла делает вещи немного сложнее, VirtualBOX имеет BIG BUG.

Чтобы увидеть ошибку в действии:

  • Создайте один inmutable VDI (как тот, который я использую для pagefile.sys)
  • Создание двух или трех виртуальных машин на VirtualBOX
  • Переместите один из них в начало списка (просто чтобы не повредить какой-либо из ваших)
  • BackUp файлы .vbox каждого из созданных вами машин Thoose (для сравнения с ним после того, как произойдет BUG)
  • Прикрепите этот inmutable VDI к более чем одной из этих машин (кроме той, что находится в верхней части списка)
  • Теперь посмотрим .vbox машины, которая находится в верхней части списка.

Эта машина была отредактирована, она имеет ссылки на другие машины inmutable VDI.

Таким образом, BUG: отредактируйте одну машину, добавляя inmutable VDI, который используется другим, влияет на машину в верхней части списка.

Почему, черт возьми, я повторно использую тот же 4GiB VDI на всех машинах Windows? Легко, это MBR-диск с разделом FAT32, где я ставил pagefile.sys, так как он не поддается уничтожению, все виртуальные машины будут создавать файл в своей папке моментальных снимков, где они сохраняют изменения и теряются при следующей загрузке, поэтому я делаю не нужно 4GiB для каждого гостя, хранящегося на главном диске, всего лишь один ... таким образом я сохраняю много GiB, так как у меня есть более 20 разных окон для тестирования приложений, которые я разрабатываю самостоятельно, все комбинации (XP, Vista , 7, 8, 8.1, 10) * (32Bits, 64Bits) * (Так же, как при первой установке после каждого ServicePack, после полного обновления Windows), я получаю много, много гостей ... так что все они Я разделяю inmutable 4GiB VDI для виртуального ram (pagefile.sys).

И если вы позволите BUG пойти дальше, попробуйте перенести одну из машин Thoose на другой хост VirtualBOX (помните, что это только виртуальная машина с настройкой на них и ни один гость не установлен на них), вы увидите, что VirtualBox не позволяет вам добавьте их, поскольку отсутствуют некоторые VDI (это FALSE и TRUE, это означает, что такая первая машина содержит ссылки на такие VDI, которые были установлены на правильной машине).

Теперь сравните файлы .VBOX всех них с предысторией BackUp ... обратите внимание, как один из них неправильно изменен? ... да, это тот, что находится в верхней части списка.

Ну, этот BUG был проинформирован VirtualBOX несколько лет назад, они все еще не могут это исправить ... и это вызывает много проблем.

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

Это действительно плохой BUG, ​​который занял у меня много дней, чтобы узнать (несколько лет назад), я изучаю это с трудом!

Я преодолел это с помощью машины, которую я назвал:

  • Common Inmutable Disks

Он имеет пустую конфигурацию и только один VDI, да, вы правы, вы догадываетесь об этом, обмениваемом VDI i для всех остальных виртуальных машин.

Хорошо, когда я открываю файл .VBOX, я вижу внутри него много строк на <MediaRegistry>  <HardDisks> раздел, по одному на каждую машину, где я использую этот inmutable VDI ... как образец (я удаляю личные данные):

<MediaRegistry>
  <HardDisks>
    <HardDisk uuid="...UUID..." location="D:\VDIs\_Virtual_Memory_.vdi" format="VDI" type="Immutable">
      <HardDisk uuid="{...UUID...}" location="Snapshots\{...UUID...}.vdi" format="VDI" autoReset="true"/>
      <HardDisk uuid="{...UUID...}" location="D:\VMs\Windows001 ... // This belongs to other virtual Machine
      <HardDisk uuid="{...UUID...}" location="D:\VMs\Windows002 ... // This belongs to other virtual Machine
      <HardDisk uuid="{...UUID...}" location="D:\VMs\Windows003 ... // This belongs to other virtual Machine
      <HardDisk uuid="{...UUID...}" location="D:\VMs\Windows004 ... // This belongs to other virtual Machine
      <HardDisk uuid="{...UUID...}" location="D:\VMs\Windows005 ... // This belongs to other virtual Machine
      <HardDisk uuid="{...UUID...}" location="D:\VMs\Windows006 ... // This belongs to other virtual Machine
      <HardDisk uuid="{...UUID...}" location="D:\VMs\Windows007 ... // This belongs to other virtual Machine
      <HardDisk uuid="{...UUID...}" location="D:\VMs\Windows008 ... // This belongs to other virtual Machine
      <HardDisk uuid="{...UUID...}" location="D:\VMs\Windows009 ... // This belongs to other virtual Machine
      <HardDisk uuid="{...UUID...}" location="D:\VMs\Windows010 ... // This belongs to other virtual Machine
      <HardDisk uuid="{...UUID...}" location="D:\VMs\Windows011 ... // This belongs to other virtual Machine
      <HardDisk uuid="{...UUID...}" location="D:\VMs\Windows012 ... // This belongs to other virtual Machine
      <HardDisk uuid="{...UUID...}" location="D:\VMs\Windows013 ... // This belongs to other virtual Machine
      ... and so on ...  // This belongs to other virtual Machine
    </HardDisk>
  </HardDisks>
</MediaRegistry>

Pretty BUG, ​​не решенный с лета.

Ну, чтобы переместить такие машины ... вы должны вручную отредактировать файлы .VBOX, чтобы поставить все такие диски на новый хост на первом компьютере (тот, который находится в верхней части списка), перед добавлением .VBOX файлы в список, поэтому при добавлении их VirtualBOX имеет ссылки на недостающие VDI (отсутствует, вызванный большой ошибкой).

Это происходит потому, что каждый раз, когда вы подключаете VDI, который используется на другом компьютере, VirtualBOX обновляет два компьютера. Файлы VBOX (тот, который принадлежит используемому вами устройству) и первый в списке.

Я не совсем уверен, что произойдет, когда в списке, у первого нет такого общего VDI, к которому он прикреплен ... лучше не попробовать, увидеть то, что я вижу.

Таким образом, переход на другой HOST намного сложнее, чем то, что кажется, из-за очень плохой реализации на .VBOX-файлах внутренней структуры и из-за действительно больших ошибок, когда VirtualBOX их редактирует.

Сбой:

  • Внутренняя структура (XML) зависит от HOST (Windows или Linux)
  • Редактирование одной машины может изменить другую, а не только отредактированную редакцию
  • ... что еще ?

Нужно больше ... я все время переношу машины, делая это (и не было проблем, никогда не было):

  1. Обратите внимание на список всех машин (порядок, группировка и т. Д.).
  2. Обратите внимание на первый в списке (вся его конфигурация)
  3. Обратите внимание на все свойства машин, которые я хочу переместить на другой хост
  4. Скопируйте файлы .vbox как .txt-файлы (те, что находятся в верхней части списка + все машины, которые я хочу перенести)
  5. Восстановите все машины (и у вас есть специальный в верхней части списка) внутри VirtualBox на новом хосте
  6. Закрыть VirtualBox на новом хосте
  7. Diff сравнить старый .txt с новыми .vbox-файлами и скопировать из .txt в .vbox некоторые части по-человечески, а не только Copy & Paste
  8. Откройте VirtualBox и прикрепите все VDI в правильном порядке
  9. Снова закройте VirtualBox на новом хосте
  10. Diff сравнить старый .txt с новыми файлами .vbox и «исправить» из .txt в .vbox некоторые части по-человечески, а не только Copy & Paste

Все остальное (папка моментальных снимков и файлы VDI) я копирую их обычным способом (File System Copy & Paste).

Вся эта трудная ручная работа вызвана Big BUG VirtualBox: она редактирует / изменяет машину, которая не была изменена, когда вы прикрепляете inmutable VDI, который используется на нескольких машинах, иначе достаточно простого копирования и вставки файла .VBOX (после исправление путей общих папок и т. д.).


-1
2018-01-03 15:03





Скопируйте папку, содержащую машину, в пункт назначения, затем в меню «Машина» ---> «Добавить», а затем выберите файл vbox, а не файл vdi. Для меня это было безупречно. Не уверен, что мне повезло, или если он должен работать таким образом.


-2
2018-04-27 23:51