Попытка открыть конфигурацию виртуальной машины, которая имеет тот же UUID, что и существующая виртуальная машина

26

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

Failed to open virtual machine [...]
Trying to open a VM config [...] which has the same UUID as an existing virtual machine.

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

Tgr
источник

Ответы:

40

Вы можете использовать VBoxManage internalcommands sethduuid <VDI/VMDK file>(Запустить из каталога установки VBox), чтобы изменить HD UUID, но у этого есть два недостатка: он не обновляет .vboxфайл и не меняет UUID компьютера (я не нашел никакого способа сделать это с VBoxManage ), только HD UUID.

У меня сработало следующее (Win 7, последняя версия VirtualBox):

  1. запустить VBoxManage internalcommands sethduuid <VDI/VMDK file> дважды (первый раз просто для удобного создания UUID, вместо этого вы можете использовать любой другой метод генерации UUID)
  2. откройте .vboxфайл в текстовом редакторе
  3. замените UUID, найденный в <Machine uuid="{...}"UUID, который вы получили при sethduuidпервом запуске
  4. замените UUID, найденный в <HardDisk uuid="{...}"и в <Image uuid="{}"конце (ближе к концу), на UUID, который вы получили при sethduuidвтором запуске

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

Tgr
источник
1
Это работало для меня, но я также вставил DVD в виртуальную машину, которую я копировал вручную. Когда я редактировал свой файл .vbox, я должен был изменить <DVDImages>...</DVDImages>к только <DVDImages />для «вытаскивания» на DVD с дубликатом UUID.
JPhi1618
Обратите внимание, что если у виртуальной машины есть снимки, вам также нужно будет выполнить те же действия с файлами vdi в папке «Снимки».
Лоран
6

Я нашел более простой способ сделать это.

Клонировать существующую виртуальную машину. Это создает новую версию с предположительно новым uuid, но во всем остальном это та же машина.

Затем скопируйте тот файл, который вы хотите добавить, в вашу \ user (ваше имя) \ VM Virtual Box \ (или там, где это место для ваших виртуальных машин) и перезапишите все существующие файлы, чтобы заменить существующий компьютер.

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

Роберт Уокер
источник
если у вас достаточно места на диске, это самый простой способ, спасибо Роберт.
СДДК
Если кто-то сделает это - он должен убедиться, что в файле vbox есть метка uuid для оборудования, соответствующая uuid :: :: hardware uuid = "{...}">, тогда он может изменить uuid жесткого диска и uuid компьютера без любые вопросы. <hardware uuid = "{...}">
StixO
2

Я понимаю, что это старый пост, но я столкнулся с этой ошибкой. Я решил это:

  1. Открыть диспетчер виртуальных ящиков
  2. Щелкните правой кнопкой мыши на виртуальной машине в Virtual Box Manager
  3. Нажмите «Удалить»
  4. Появится всплывающее окно. Выберите «Удалить только», чтобы просто удалить все следы виртуального ящика из диспетчера виртуальных ящиков
  5. Закройте диспетчер виртуальных ящиков
  6. Используя файловый менеджер Linux, перейдите в папку, содержащую виртуальную машину
  7. Удалите (или переместите) все, кроме файла виртуального жесткого диска .vmdk
  8. Открыть диспетчер виртуальных ящиков
  9. Нажмите «Машина»
  10. Нажмите «Новый»
  11. Назовите новую машину (я использовал то же имя, что и изначально)

    ПРИМЕЧАНИЕ. Имя машины is станет именем каталога, в котором будет находиться виртуальная машина, поэтому выберите мудро, а также обратите внимание, что если вы хотите, чтобы файл .vmdk находился в новом каталоге, он предпримет дополнительные шаги в Virtual Box Управляющий делами

  12. Выберите правильный тип и версию для виртуальной машины, в которой возникла проблема, и нажмите «Далее»
  13. Выберите объем памяти, который вы хотите выделить виртуальной машине, и нажмите «Далее»
  14. Выберите «Использовать и существующий файл виртуального жесткого диска» и выберите его, перейдя к его местоположению
  15. Выберите «Создать»

Просто следуйте инструкциям оттуда и затем запустите виртуальную машину.

Все работает нормально, повторная активация Windows и т. Д. Не требуется.

Дейл Рейнольдс
источник
1

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

Тоби
источник
1

Если вы не можете запустить из-за этой ошибки, просто «Удалить ...» запись из «Oracle VM VirtualBox Manager» . Это очистит конфликт, и вы сможете открыть виртуальную машину из ее нового местоположения.

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

nobar
источник
Это, безусловно, самое простое решение, и не только оно работает.
Шму
-1

Пользователь TGR понял это правильно, но мне пришлось внести одно дополнительное изменение: в vbox XML мне нужно было изменить uuid Image, чтобы он соответствовал uuid HardDisk (второй UUID, сгенерированный в командной строке)

<StorageControllers>
   <StorageController ...>
     <AttachedDevice ...>
       <Image uuid="{ [second UUID] }"/>
DakotaHoosier
источник
-1

Я нашел другой способ проще, чем любой другой. У вас есть только o удалить виртуальную машину из интерфейса Virtual Box (если вас спросят, хотите ли вы удалить файлы виртуальной машины, ответьте НЕ !, или вы потеряете виртуальную машину). А затем перейдите к файлу .vbox и откройте его (с помощью Virtual Box). Это должно работать, потому что вы удалили UUID (при удалении виртуальной машины). По крайней мере, у меня это сработало ...

Маруан Куитра
источник