25

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

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

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

7 ответов7

37

Вы можете использовать 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

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

5

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

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

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

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

1

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

  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, который вы скопировали ранее.

0

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

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

-1

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

-1

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

<StorageControllers>
   <StorageController ...>
     <AttachedDevice ...>
       <Image uuid="{ [second UUID] }"/>

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .