Bir sanal diskin UUID'sini nasıl değiştiririm?


131

Zaten var olan bir sabit diski kullanarak Oracle VirtualBox ile yeni bir sanal makine oluşturmaya çalışıyorum. Var olan sabit disk dosyasını, bir .vhd dosyasını seçmeye çalıştığımda, sanal sabit diskin UUID zaten mevcut olduğu için kullanılamadığını belirten bir hata görüntülüyor.

Bu yüzden UUID'sini değiştirmek için aşağıdaki komutu denedim.

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

Bu hatayı alıyorum.

Sözdizimi hatası: Geçersiz UUID parametresi

Bunu nasıl çözebilirim?


1
Daha önce keşfetmiş olduğunuz gibi, boşluk karakterleri içeren yollar çift tırnak içine alınmalıdır.
AB

Yanıtlar:


171

Doğru komut şudur.

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

Sanal diskin yolu bir boşluk içerir, bu nedenle iki parametre olarak ayrıştırılmasını önlemek için çift tırnak içine alınmalıdır.


25
VirtualBox'ın bunu değiştirmemize izin veren bir kullanıcı arayüzü veya pencereye sahip olmasını gerçekten diliyorum
fedmich

1
Dosya yolundaki boşluk nedeniyle bunun alıntılanması gerekir.
Chris Stryczynski

VirtualBox UI'nin zaten bilinen bir diski açmaya çalıştığınızda yeni bir UUID oluşturma seçeneği sunması iyi olurdu. Dürüst olmak gerekirse, disk yöneticisini hiçbir şey için kullanmıyorum, VirtualBox'ı sadece sanal diskleri yönetmek ve izlemek için kaynaklar gibi davranmaya çalışmak yerine dosya yolları olarak görmeyi tercih ederim.
JRH

34

Aşağıdakiler benim için çalıştı:

  1. run VBoxManage internalcommands "VDI / VMDK dosyasını" sethduuid iki kez (ilk kez elverişli bir UUID oluşturmak için adildir, bunun yerine başka bir UUID nesil yöntemini kullanabilirsiniz)

  2. açmak bir metin düzenleyicisinde .vbox dosyasını

  3. UUID bulundu yerini Uuid = "{...}" Makine sen sethduuid koştu zaman UUID ile elindeki ilk kez

  4. UUID bulundu yerini Uuid = "{...}" HardDisk ve Görüntü Uuid = "{}" Eğer ikinci kez sethduuid koştu zaman var UUID ile (sonuna doğru)


1
Sanırım bu yanıt, sanal makineyi kopyalamak isteyen herkes (ben dahil) için daha yararlı.
cbuchart

1
Merak ediyorum - Machine uuid'i neden değiştirmeniz gerekiyordu? Vmdk diskini bir makineden diğerine kopyalamak istersem, buna ihtiyacım yok, değil mi?
Oleg Gryb

1
Sanal diski aynı makineye kopyalarsanız, Makine
uuid'ini

1
Benim durumumda mükemmel çalıştı - teşekkürler! Makine UUID'sini ayarlamama gerek yoktu.
Benco

1
@FabrizioBertoglio umarım cevabınızı almışsınızdır - ancak bu dosyaları düzenlemek için her türlü vbox hizmetini durdurmanız gerekir - aksi takdirde aynı ole ole elde edersiniz. Ayrıca, yapılandırma dosyasının altındaki SATA HardDisk <bağlı cihazlar> için UUID'nizin, yapılandırma dosyasının üst kısmındaki Sabit Disk bölümündeki Sabit Disk için UUID ile eşleştiğinden emin olun. Bunlardan herhangi birini yapmadan önce, ayrıca bir <Hardware UUID = myMachineUUID> eklemek isteyeceksiniz.
Ken

12

Bir makineden diğerine bir disk (vmdk dosyası) kopyaladıysanız ve kopyadaki bir diskin UUID'sini değiştirmeniz gerekiyorsa, Makine UUID'sini başka bir yanıtta önerildiği gibi değiştirmenize gerek yoktur.

Tek yapmanız gereken, disk görüntüsüne yeni bir UUID atamaktır:

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

ve sonra eski UUID'yi * .vbox dosyanızdaki iki yerde yeni oluşturulanla değiştirin

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

ve

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

VirtualBox ver için benim için çalıştı. 5.1.8 Mac OS X El Capitan'da çalışıyor.


Muhtemelen haklısın. Ben senin talimat takip ettim Sabit Disk hem doğru bir şekilde görünmesi bile, hala Sorgulama UUID Başarısız hata var file -> Virtual Media Managerdoğru UUID ile ve Makine Ayarları
Fabrizio BERTOGLIO

Durumunuzun ne olduğundan emin değilim. Yukarıda anlattığım şey tam olarak yaptığım şeydi ve Mac'te VB 5.1.8 ile çalıştı
Oleg Gryb

Sorunu aşağıdaki adımlarla çözdüm: 1. re-installing virtual box using synaptic package managerardından 2. In the virtual box machine configuration, I did not disable the Floppy disk and EFI Setting. I kept them enabled.Sorun giderildi.
Fabrizio Bertoglio

@OlegGryb Ana İşletim Sistemine ve ayrıca Konuk İşletim Sistemine bağlı olabilir.
Ken

11

Sorunu çözmüş olmanıza rağmen, sadece benzer soruna sahip bazılarının nedenini burada yayınlıyorum.

Bunun nedeni, yolunuzda (dizin adı VirtualBox VMs) komutu ayıracak bir boşluk olmasıdır . Böylece hata belirir.


11

MAC OS ile ilgili bir cevap için web'de arama yaptım, bu yüzden .. çözüm

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

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

1
Süper yardımcı !!
Addo Solutions

6

Komut, klasör adlarından birinde, yani 'VirtualBox VM'lerinde yer bulunduğundan başarısız olur.

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

Klasör adında veya dosya adında boşluk yoksa komut, örneğin 'VirtualBox VM'lerini' 'VBoxVM'lere' değiştirdikten sonra, alıntı yapmadan bile çalışacaktır.

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

4

Sorulan bu soru eski olsa da, bir Windows sistemindeki sanal bir HDD üzerindeki bir UUID'yi değiştirmenin, pencerelerin onu etkinleştirilmemiş bir makine olarak değerlendirmesine (disk değişikliğini fark ettiği için) ve yeniden etkinleştirme isteyeceğini unutmayın!


4

Windows x64 için @ Al3x ile aynı çözüm cmd.exe:

cd %programfiles%\Oracle\VirtualBox

VBoxManage internalcommands sethduuid "full/path/to/.vdi"

Bu, diskin UUID'sini rastgele hale getirir. Uzman ipucu: .vdi dosyasına sağ tıklayın ve "full/path/to/.vdi"cmd.exe'de hızlı düzenlemeyi elde etmek ve etkinleştirmek için "Yol olarak kopyala" seçeneğini seçin , ardından yapıştırmak için sağ tıklayın.


2

Orijinal çözümünüze başka bir alternatif \, boşluktan önce kaçış karakterini kullanmaktır :

VBoxManage internalcommands sethduuid /home/user/VirtualBox\ VMs/drupal/drupal.vhd
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.