Próbuję otworzyć konfigurację VM, która ma taki sam UUID jak istniejąca maszyna wirtualna

25

Podczas próby dodania dwóch maszyn wirtualnych VirtualBox, które zostały pierwotnie skopiowane (za pomocą prostej kopii pliku) z tego samego źródła, po dodaniu drugiej otrzymuję komunikat

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

(Tak, komputery powinny były zostać sklonowane zamiast prostej kopii pliku, ale w tym momencie jest już za późno.)

Tgr
źródło

Odpowiedzi:

37

Możesz użyć VBoxManage internalcommands sethduuid <VDI/VMDK file> (Uruchom z katalogu instalacyjnego VBox), aby zmienić UUID HD, ale ma to dwie wady: nie aktualizuje .vbox plik i nie zmienia UUID maszyny (nie znalazłem żadnego sposobu, aby to zrobić z VBoxManage), tylko UUID HD.

Dla mnie działało (Win 7, najnowsza wersja VirtualBox):

  1. biegać VBoxManage internalcommands sethduuid <VDI/VMDK file> dwa razy (pierwszy raz, aby wygodnie wygenerować identyfikator UUID, można użyć innej metody generowania UUID)
  2. otworzyć .vbox plik w edytorze tekstu
  3. zastąp UUID znaleziony w <Machine uuid="{...}" z UUID, który dostałeś, kiedy biegłeś sethduuid pierwszy raz
  4. zastąp UUID znaleziony w <HardDisk uuid="{...}" i w <Image uuid="{}" (pod koniec) z identyfikatorem UUID, który dostałeś, kiedy biegłeś sethduuid drugi raz

Następnie możesz dodać maszynę wirtualną. Nie jest to bardzo czyste rozwiązanie, ale nie wydaje się powodować żadnego problemu.

Tgr
źródło
1
To działało dla mnie, ale miałem także „włożoną” płytę DVD do maszyny wirtualnej, którą ręcznie kopiowałem. Kiedy edytowałem mój plik .vbox, musiałem się zmienić <DVDImages>...</DVDImages> po prostu <DVDImages /> „wysunąć” płytę DVD z duplikatem UUID.
JPhi1618
Pamiętaj, że jeśli maszyna wirtualna ma migawki, będziesz musiał wykonać te same kroki na plikach vdi w folderze „Migawki”.
this.lau_
5

Znalazłem prostszy sposób, aby to zrobić.

Sklonuj istniejącą maszynę wirtualną. Tworzy to nową wersję z przypuszczalnie nowym uuidem, ale pod wszystkimi innymi względami jest to ta sama maszyna.

Następnie skopiuj ten, który chcesz dodać, do swojego użytkownika (twojego imienia) Wirtualne maszyny wirtualne (lub gdziekolwiek jest to miejsce dla twoich maszyn wirtualnych) i zastąp wszystkie istniejące tam pliki, aby zastąpić istniejącą maszynę.

Najpierw na wszelki wypadek wykonałbym kopię zapasową istniejącej maszyny, ale tutaj wszystko działało dobrze. Użyto go, aby wrócić do wcześniejszej kopii zapasowej maszyny wirtualnej, zachowując istniejącą wersję jako klon.

Robert Walker
źródło
jeśli masz wystarczająco dużo miejsca na dysku, to najłatwiejszy sposób, dzięki Robert.
sddk
Jeśli któryś z nich to zrobi - powinien upewnić się, że plik vbox ma sprzętowy znacznik uuid, który pasuje do maszyny uuid :: & lt; hardware uuid = "{...}" & gt ;, a następnie może zmienić uuid dysku twardego i komputera bez żadnych problemów. & lt; hardware uuid = "{...}" & gt;
StixO
1

Możesz także sklonować istniejącą maszynę, a następnie przejść do ustawień i zmienić miejsce przechowywania, aby użyć wcześniej skopiowanego pliku .vmdk.

Toby
źródło
1

Zdaję sobie sprawę, że to stary post, ale wystąpił ten błąd. Rozwiązałem to przez:

  1. Otwórz Virtual Box Manager
  2. Kliknij prawym przyciskiem myszy maszynę wirtualną w Virtual Box Manager
  3. Kliknij „Usuń”
  4. Pojawi się wyskakujące okienko. Wybierz „Usuń tylko”, co po prostu   usuń wszystkie ślady wirtualnego pudełka z Virtual Box   Menedżer
  5. Zamknij Virtual Box Manager
  6. Korzystając z menedżera plików Linux, przejdź do folderu zawierającego   maszyna wirtualna
  7. Usuń (lub przenieś) wszystko Z WYJĄTKIEM pliku wirtualnego dysku .vmdk
  8. Otwórz Virtual Box Manager
  9. Kliknij „Maszyna”
  10. Kliknij „Nowy”
  11. Nadaj nazwę nowej maszynie (użyłem tej samej nazwy, którą użyłem pierwotnie)

    UWAGA: Nazwa maszyny stanie się nazwą   katalog zawierający maszynę wirtualną, więc wybierz mądrze   i zauważ, że jeśli chcesz, aby plik .vmdk znajdował się w nowym   katalog, w którym podejmie dodatkowe kroki w Virtual Box Manager

  12. Wybierz odpowiedni typ i wersję maszyny wirtualnej   miał problem i kliknij „Dalej”
  13. Wybierz rozmiar pamięci, którą ma mieć maszyna wirtualna   przydzielone i kliknij „Dalej”
  14. Wybierz „Użyj i istniejący plik wirtualnego dysku twardego” i wybierz go   przeglądając jego lokalizację
  15. Wybierz „Utwórz”

Wystarczy postępować zgodnie z instrukcjami, a następnie uruchomić maszynę wirtualną.

Wszystko działa bez zarzutu, nie jest wymagana ponowna aktywacja okien itp.

Dale Reynolds
źródło
0

Jeśli nie możesz uruchomić z powodu tego błędu, po prostu „Usuń ...” wpis z „Oracle VM VirtualBox Manager” . Spowoduje to usunięcie konfliktu, a następnie będziesz mógł otworzyć maszynę wirtualną z nowej lokalizacji.

... W tym momencie możesz wykonać klon, jeśli tego chcesz. W moim przypadku nie było potrzeby dodatkowego wysiłku, ponieważ nie miałem potrzeby posiadania oryginalnej lokalizacji maszyny wirtualnej.

nobar
źródło
-1

Użytkownik TGR zrobił to dobrze, ale musiałem dokonać jeszcze jednej zmiany: W pliku XML vbox potrzebowałem zmienić uuid obrazu, aby pasował do dysku twardego uuid (drugi identyfikator UUID wygenerowany w wierszu poleceń)

<StorageControllers>
   <StorageController ...>
     <AttachedDevice ...>
       <Image uuid="{ [second UUID] }"/>
DakotaHoosier
źródło
-1

Znalazłem inny sposób prostszy niż jakikolwiek inny. Masz tylko usunąć maszynę wirtualną z interfejsu Virtual Box (jeśli zapyta, czy chcesz usunąć pliki z maszyny wirtualnej, odpowiedz NIE! Lub stracisz maszynę wirtualną). Następnie przejdź do pliku .vbox i otwórz go (za pomocą Virtual Box). Powinien działać, ponieważ usunąłeś identyfikator UUID (podczas usuwania maszyny wirtualnej). Przynajmniej zadziałało dla mnie ...

Marouan Kouitra
źródło