Спроба відкрити конфігурацію VM, яка має той самий UUID як і існуюча віртуальна машина


26

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

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

(Так, машини мали бути клоновані замість простої копії файлу, але в цей момент вже пізно.)

Відповіді:


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вдруге бігли

Ви можете додати віртуальну машину після цього. Не дуже чисте рішення, але, здається, не викликає жодних проблем.


1
Це працювало для мене, але я також мав DVD-диск, «вставлений» у VM, який я копіював вручну. Коли я редагував свій файл .vbox, мені довелося змінити його, <DVDImages>...</DVDImages>щоб просто <DVDImages />«витягнути» DVD із дублікатом UUID.
JPhi1618

Зауважте, що якщо у VM є знімки, вам також доведеться виконати ті ж дії, що і у файлах vdi у папці "Знімки".
Лоран

6

Я знайшов простіший спосіб зробити це.

Клоніруйте існуючу віртуальну машину. Це створює нову версію з імовірно новим uuid, але в усіх інших аспектах це та сама машина.

Потім скопіюйте того, кого ви хочете додати, у \ користувача (своє ім’я) \ Віртуальний вікні VM \ (або де б не було місце для ваших віртуальних машин) та перезапишіть усі існуючі файли там, щоб замінити існуючу машину.

Я б створив резервну копію існуючої машини спочатку на всякий випадок, перш ніж це зробити, але тут вона спрацювала чудово. Використовується для повернення до попередньої резервної копії VM, зберігаючи існуючу версію як клон.


якщо у вас достатньо місця на диску, це найпростіший спосіб, дякую Роберту.
sddk

Якщо хтось робить це - вони повинні переконатися, що у файлі vbox є апаратний тег uuid, який відповідає машині uuid :: <hardware uuid = "{...}">, то вони можуть змінити uuid на жорсткому диску та машинний uuid з будь-які питання. <hardware uuid = "{...}">
StixO

2

Я розумію, що це старий пост, але я наткнувся на цю помилку. Я вирішив це:

  1. Відкрийте віртуальний менеджер вікон
  2. Клацніть правою кнопкою миші на віртуальній машині в менеджері віртуальних ящиків
  3. Натисніть "Видалити"
  4. З'явиться спливаюче вікно. Виберіть "Видалити лише", який просто видалить усі сліди віртуального вікна з Менеджера віртуальних ящиків
  5. Закрийте віртуальний менеджер вікон
  6. За допомогою файлового менеджера Linux перейдіть до папки, що містить віртуальну машину
  7. Видаліть (або перемістіть) все, крім ВІР-файла віртуального жорсткого диска
  8. Відкрийте віртуальний менеджер вікон
  9. Натисніть "Машина"
  10. Натисніть "Створити"
  11. Назвіть нову машину (я використовував те саме ім’я, що і раніше)

    ПРИМІТКА: ім'я машини стане назвою каталогу, який буде містити віртуальну машину, тому вибирайте з розумом, а також зауважте, що якщо ви хочете, щоб файл .vmdk знаходився в новому каталозі, він буде робити додаткові кроки у віртуальному вікні Менеджер

  12. Виберіть належний тип та версію для віртуальної машини, у якої виникла проблема, та натисніть "Далі"
  13. Виберіть розмір пам’яті, який потрібно виділити віртуальній машині, і натисніть «Далі»
  14. Виберіть "Використовувати та наявний файл віртуального жорсткого диска" та виберіть його, переглянувши його місце
  15. Виберіть "Створити"

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

Все працює нормально, не потрібно повторна активація Windows або тощо.


1

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


1

Якщо ви не можете запустити через цю помилку, просто "Видаліть ..." запис із "Oracle VM VirtualBox Manager" . Це очистить конфлікт, і ви зможете відкрити VM з його нового місця.

... У цей момент ви можете виконати клон, якщо це те, що ви маєте намір. У моєму випадку ніяких додаткових зусиль не потрібно було, оскільки я не мав потреби в первинному розташуванні VM.


Це далеко не найпростіше рішення, і не тільки це, воно працює.
шму

-1

Користувач TGR це правильно зрозумів, але мені довелося внести ще одну додаткову зміну: У XML vbox мені потрібно було змінити uuid Image на відповідність uuid HardDisk (другий UUID, згенерований у командному рядку)

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

-1

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

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.