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

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

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

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

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

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

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

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

193 голоса | спросил Seyed Mohammad 18 PM000000110000004731 2013, 23:45:47

9 ответов


136

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

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

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

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

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

ответил tbenz9 19 AM000000120000001431 2013, 00:53:14
32

Теперь метод 2 хорошо работает (с VirtualBox 4.0 и выше) , без необходимости изменения XML:

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

Вот и все!

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

Смотрите этот пост форума VirtualBox для получения дополнительной информации подробности.

ответил David 24 thEurope/Moscowp30Europe/Moscow09bEurope/MoscowThu, 24 Sep 2015 22:35:02 +0300 2015, 22:35:02
16

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

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

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

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

  

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

     

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

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

  cd /full /path /to /virtualbox /virtualmachine /Песочница
 

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

  VBoxManage internalcommands sethduuid Sandbox.vdi
 
ответил JakeGould 25 thEurope/Moscowp30Europe/Moscow09bEurope/MoscowFri, 25 Sep 2015 20:14:10 +0300 2015, 20:14:10
9

В случае, если кто-то еще ищет ответ на этот вопрос, я успешно переместил 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 VMs
  10. Состояние тестирования виртуальных машин

Удачи.

ответил Steven Kelly 16 PM00000040000000331 2014, 16:21:03
2

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

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

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

  1. Завершение работы VirtualBox на обоих хостах.
  2. Скопируйте папки .config /VirtualBox и VirtualBox VMs с исходного узла.
  3. Скопируйте эти папки на хост-узел.
  4. Запустить VirtualBox на целевом узле
ответил Nicolas Raoul 22 MaramTue, 22 Mar 2016 06:42:08 +03002016-03-22T06:42:08+03:0006 2016, 06:42:08
0

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

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

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

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

 введите описание изображения здесь>> </a> </p>

<ol start =

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

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

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

  •  this .

    Вот и все.

    ответил zar 13 thEurope/Moscowp30Europe/Moscow09bEurope/MoscowTue, 13 Sep 2016 00:36:17 +0300 2016, 00:36:17
    0

    4-й путь

    В 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

    ответил peterjtk 29 J0000006Europe/Moscow 2018, 00:44:12
    -1

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

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

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

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

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

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

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

    Эта машина была отредактирована, она имеет ссылки на другие машины, которые могут быть изменены 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, ​​который занял у меня много дней, чтобы узнать (несколько лет назад), я изучаю это с трудом!

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

    • Общие запрещенные диски

    У него есть пустая конфигурация и только один VDI, да, вы правы, вы догадались, что он не поддается VDI для всех остальных виртуальных машин.

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

      & л; MediaRegistry & GT;
      & Lt; & жесткие диски GT;
        <HardDisk uuid = "... UUID ..." location = "D: \ VDIs \ _Virtual_Memory_.vdi" format = "VDI" type = "Immutable">
          <HardDisk uuid = "{... UUID ...}" location = "Snapshots \ {... UUID ...}. vdi" format = "VDI" autoReset = "true" /& gt;
          <HardDisk uuid = "{... UUID ...}" location = "D: \ VMs \ Windows001 ... //Это относится к другой виртуальной машине
          <HardDisk uuid = "{... UUID ...}" location = "D: \ VMs \ Windows002 ... //Это относится к другой виртуальной машине
          <HardDisk uuid = "{... UUID ...}" location = "D: \ VMs \ Windows003 ... //Это относится к другой виртуальной машине
          <HardDisk uuid = "{... UUID ...}" location = "D: \ VMs \ Windows004 ... //Это относится к другой виртуальной машине
          <HardDisk uuid = "{... UUID ...}" location = "D: \ VMs \ Windows005 ... //Это относится к другой виртуальной машине
          & Lt; HardDiskuuid = "{... UUID ...}" location = "D: \ VMs \ Windows006 ... //Это относится к другой виртуальной машине
          <HardDisk uuid = "{... UUID ...}" location = "D: \ VMs \ Windows007 ... //Это относится к другой виртуальной машине
          <HardDisk uuid = "{... UUID ...}" location = "D: \ VMs \ Windows008 ... //Это относится к другой виртуальной машине
          <HardDisk uuid = "{... UUID ...}" location = "D: \ VMs \ Windows009 ... //Это относится к другой виртуальной машине
          <HardDisk uuid = "{... UUID ...}" location = "D: \ VMs \ Windows010 ... //Это относится к другой виртуальной машине
          <HardDisk uuid = "{... UUID ...}" location = "D: \ VMs \ Windows011 ... //Это относится к другой виртуальной машине
          <HardDisk uuid = "{... UUID ...}" location = "D: \ VMs \ Windows012 ... //Это относится к другой виртуальной машине
          <HardDisk uuid = "{... UUID ...}" location = "D: \ VMs \ Windows013 ... //Это относится к другой виртуальной машине
          ... и так далее ... //Это относится к другой виртуальной машине
        & Lt; /HardDisk & GT;
      & Л; /& GT жестких дисков;
    & Lt; /MediaRegistry & GT;
     

    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 & amp; Paste
    8. Откройте VirtualBox и прикрепите все VDI в правильном порядке
    9. Снова закройте VirtualBox на новом хосте
    10. Diff сравнить старый .txt с новыми файлами .vbox и «исправить» с .txt на .vbox на некоторые части по-человечески, а не только с копированием и вставкой

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

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

    ответил Laura 3 Jpm1000000pmTue, 03 Jan 2017 18:03:14 +030017 2017, 18:03:14
    -2

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

    ответил Thia Zol 28 AMpFri, 28 Apr 2017 02:51:57 +030051Friday 2017, 02:51:57

    Похожие вопросы

    Популярные теги

    security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132