2013-07-23 19 views
96

Próbuję utworzyć nową maszynę wirtualną w wirtualnym pudełku przy użyciu już istniejącego dysku twardego, ale gdy próbuję wybrać istniejący plik dysku twardego (plik .vhd), wyświetla on błąd uniemożliwiający użycie wirtualnego dysku twardego, ponieważ identyfikator UUID już istnieje.Jak zmienić UUID w wirtualnym pudełku

Spróbowałem więc polecenie:

VBoxManage internalcommands sethduuid /home/user/VirtualBox VMs/drupal/drupal.vhd 

aby zmienić UUID dla pliku vhd. Ale wtedy pojawia się ten błąd:

sethduuid <filepath> [<uuid>] 
     Assigns a new UUID to the given image file. This way, multiple copies 
     of a container can be registered. 

WARNING: This is a development tool and shall only be used to analyse 
     problems. It is completely unsupported and will change in 
     incompatible ways without warning. 

Syntax error: Invalid UUID parameter 

Jak mogę rozwiązać ten problem?

+1

Ścieżki zawierające spacje powinny być ujęte w cudzysłów, ponieważ zostały już odkryte. –

Odpowiedz

123

znalazłem to

jeśli mogę użyć „” w końcu będzie działać

wreszcie Oto komenda

VBoxManage internalcommands sethduuid "/home/user/VirtualBox VMs/drupal/drupal.vhd" 
+19

Naprawdę chciałbym, aby VirtualBox miał jakiś interfejs lub okno, które pozwala nam zmienić to – fedmich

10

Choć nie rozwiązało problemu, po prostu pisać przyczynę tutaj dla innych osób z podobnym problemem.

Powód jest taki, że na ścieżce znajduje się spacja (nazwa katalogu VirtualBox VMs), która rozdzieli komendę. Tak więc pojawia się błąd.

5

Komenda kończy się niepowodzeniem, ponieważ zawiera spację w jednej z nazw folderów: , tj. "Maszyny wirtualne VirtualBox.

VBoxManage internalcommands sethduuid /home/user/VirtualBox VMs/drupal/drupal.vhd 

Jeśli nie ma miejsca na nazwę folderu lub nazwy pliku, a następnie polecenie będzie działać nawet bez cytowania go, np po zmianie „VirtualBox VM” do „VBoxVMs”

VBoxManage internalcommands sethduuid /home/user/VBoxVMs/drupal/drupal.vhd 
3

Chociaż to pytanie zadawane jest stary, trzeba pamiętać, że zmiana UUID na wirtualnym dysku twardego w systemie Windows będzie Windows traktuje go jako maszyna nie aktywnym (jako zauważy zmianę dysku) i poprosi o ponowną aktywację!

2

Inną alternatywą do oryginalnego rozwiązania byłoby użycie znaku ucieczki \ przed przestrzeni:

VBoxManage internalcommands sethduuid /home/user/VirtualBox\ VMs/drupal/drupal.vhd 
21

Następujące pracował dla mnie:

  1. run VBoxManage internalcommands sethduuid „VDI/Plik VMDK " dwa razy (za pierwszym razem wystarczy, aby wygodnie wygenerować identyfikator UUID, zamiast tego można użyć dowolnej innej metody generowania UUID)

  2. otworzyć plik .vbox w edytorze tekstowym

  3. wymienić UUID znaleźć w Maszyn UUID = "{...}" z UUID dostałeś po uruchomieniu po raz pierwszy

    sethduuid
  4. zastępuje identyfikator UUID znaleziony w HardDisk uuid = "{...}” aw Obraz UUID =«{}» (pod koniec) z UUID dostałeś po uruchomieniu sethduuid drugi raz

+0

Myślę, że ta odpowiedź jest bardziej przydatna dla każdego (łącznie ze mną), który chce skopiować maszynę wirtualną. – cbuchart

+0

Zastanawiasz się - dlaczego musisz zmienić Uuid Machine? Jeśli chcę tylko skopiować dysk vmdk z jednego komputera na drugi, nie potrzebuję tego, prawda? –

+0

Musisz zmienić Uuid urządzenia, jeśli skopiujesz wirtualny dysk na tę samą maszynę – borchvm

7

Jeśli kopiowane dysku (plik VMDK) z jedna maszyna na drugą i trzeba zmienić identyfikator UUID dysku w kopii, nie trzeba zmieniać UUID komputera, jak sugeruje inna odpowiedź:

Wszystko, co musisz zrobić, to przypisać nowy identyfikator UUID do Obraz dysku:

VBoxManage internalcommands sethduuid your-box-disk2.vmdk 
UUID changed to: 5d34479f-5597-4b78-a1fa-94e200d16bbb 

, a następnie zastąpić stary UUID z nowo powstałych jeden w dwóch miejscach w pliku * .vbox

<MediaRegistry> 
    <HardDisks> 
    <HardDisk uuid="{5d34479f-5597-4b78-a1fa-94e200d16bbb}" location="box-disk2.vmdk" format="VMDK" type="Normal"/> 
    </HardDisks> 

aw

<AttachedDevice type="HardDisk" hotpluggable="false" port="0" device="0"> 
     <Image uuid="{5d34479f-5597-4b78-a1fa-94e200d16bbb}"/> 
    </AttachedDevice> 

on pracował dla mnie przez VirtualBox ver. 5.1.8 działa na Mac OS X El Capitan.

+0

Prawdopodobnie masz rację. Postępowałem zgodnie z twoją instrukcją i nadal mam błąd. Wysyłanie błędnego zapytania do UUID, nawet jeśli Dysk twardy wyświetla się poprawnie zarówno w "pliku -> Menedżerze wirtualnego nośnika", jak i w Ustawieniach urządzenia z poprawnym UUID –

+0

Nie jestem pewien, co twoja sprawa jest. To, co opisałem powyżej, jest dokładnie tym, co zrobiłem i działało na Macu z VB 5.1.8 –

+0

Rozwiązałem problem, wykonując następujące czynności: '1. ponowne zainstalowanie wirtualnego pudełka przy użyciu menedżera pakietów synaptic', a następnie '2. W konfiguracji maszyny wirtualnej nie wyłączyłem dyskietki i ustawienia EFI. Utrzymałem je włączone. Problem został naprawiony. –

4

Przeszukałem internet w poszukiwaniu odpowiedzi dotyczącej Mac OS, tak .. rozwiązanie jest

cd /Applications/VirtualBox.app/Contents/Resources/VirtualBoxVM.app/Contents/MacOS/ 

VBoxManage internalcommands sethduuid "full/path/to/vdi" 
+0

Super pomocny !! – Nitroware