VirtualBox dosyaları nasıl taşınır?


165

Varsayılan olarak, VirtualBox tüm verileri ana dizinin altındaki bir dizinde saklar. Nasıl değiştireceğimi biliyorum ama mevcut görüntülerin konumunu nasıl değiştirebilirim (VirtualBox.xml dosyasını elle düzenlemeden)?

Windows üzerinde çalışıyorum ve herhangi bir NTFS bağlantısı kullanmayı denemek istemiyorum .


4
Aaa, sembolik bağlantılar önerecektim (Her şeyi çözerler), ama bu fikri engelledin ... :(
DMA57361

2
Windows'taki bağlantılara hiç güvenmiyorum. NTFS bu konuda yetenekli olsa da, Windows XP bu konuda hiçbir şey bilmiyor ve onunla ilgili yeterince sorun var. Gereksiz yere korkak olabilirim ...
maaartinus

Ah, evet, onlara XP'de dokunmam. Ancak 7'deki destek oldukça sağlam - hala cmd çizgisinden inşa etmek zorundasınız, ama bu gerçekten bir angarya değil. Vista'dan emin değilim ...
DMA57361 11:11

Daha da kötüsü, NTFS'nin XP sürümü sabit bağlantıları desteklemektedir, ancak bunlar hacimleri kapsamaz . Açıkçası, verileri farklı bir bölüme taşımak istedim.
maaartinus

Hardlinks hiç birime yayılamaz, yalnızca sembolik bağlantılar olabilir (ve bu tür bir şey için kullanılabilir, kullanıcı klasörlerimin tümü örneğin ikinci HDD'me bağlanır). Fakat şahsen ben XP'de hardlinksden hala kaçınırdım (bir seçenek olsalar bile).
DMA57361 11:11

Yanıtlar:


137

Tüm VM'nizi tamamen yeni bir konuma taşımak istiyorsanız, aşağıdaki 2 cevabı takip etmelisiniz:

Gönderinin buraya kopyalanması:

  1. VirtualBox'ı kapatın, .VirtualBox \ VirtualBox.xml dosyanızı yedekleyin.
  2. Mevcut "Virtualbox VM'ler" klasörünüzü bulun ve içeriğini içeren tüm klasörü yeni sürücünüz E'ye kopyalayın (taşıyın):
  3. VirtualBox'ı ve ardından sırayla her VM için çalıştırın:

    3.1 Sanal Makine adına sağ tıklayın ve açılan menüden "Kaldır" ı seçin. "Dosyaları fiziksel olarak sil?" soru.

    3.1b'yi bir Sanal Kullanıcı Arabiriminden çıkardıktan sonra, VirtualBox'u kapatmanız ve arka plan VBoxSVC görevinin zaman aşımına uğraması ve de sonlandırması için yeterince kapalı bırakmanız gerekir. Ardından, VirtualBox uygulamasını tekrar başlatabilir ve önceki adımda kaldırılan VM'leri geri eklemek için Makine | Ekle'yi kullanabilirsiniz.

    3.2 Makine | Ekle .. menü öğesini seçin, E: sürücüsündeki VM'lerin yeni konumuna gidin ve .vbox dosyasını seçin.

    3.3. Kalan sanal makineler için tekrarlayın.

  4. Dosya | Tercihler'de, varsayılan makine yolunu "E: \ VirtualBox VMs" olarak ayarlayın.
  5. VM'lerin her birini test edin. Yalnızca hepsinin çalıştığından emin olduktan sonra, eski VM'yi içeren klasörü silin, yani "C: \ VirtualBox VMs" silin.

Bağlantılı klonlama makinesi için bunu yaptığımda, başlayamıyorlar
Nam G VU

1
Bu benim için işe yaradı, ancak aynı zamanda .VirtualBox\VirtualBox.xmldosyayı düzenleyerek ve bir bul / değiştir yaparak her bir Sabit Disk ve anlık görüntü görüntüsünün yollarını güncellemem gerekiyordu . Ayrıca, tüm genel yapılandırma ve kayıt işlemleri gibi sadece Machinesve HardDiskaltındaki klasörleri taşıdım .VirtualBox.
Dave Andersen

4
Mac OS X kullanıcıları için, VirtualBox.xmlbulunur ~/Library/VirtualBox/VirtualBox.xml. VM'ler içinde bulunur ~/VirtualBox VMs.
Siu Ching Pong - Asuka Kenji -

2
Sanal Kutu 4.3.0+ "Son Önemli Şey" yi çözdü, kapatmam bile gerekmedi - talimatlar .
PCaetano

Belki de "version" komut satırını da ekleyebilirsiniz. 1) Mevcut VM'leri üzerinden listeler VBoxManage list vms. 2) VM'lerin adlarının yanında, parantez içinde, UUID'lerine referans verilir. İlgilendiğiniz birini kopyalayın. Bununla ilgili detaylar üzerinden ulaşılabilir VBoxManage showvminfo UUID. 3) İlgilenilen Sanal Makinenin kaydını silin VBoxManage unregistervm UUID. 4) İlgili VM'nin dizinini taşıyın. 5) Son olarak, makineyi VBoxManage register NameOfVM.vboxşu şekilde kaydedin - açıkça, burada NameOfVM .vboxkaydedilecek VM dosyasının asıl adı anlamına gelir .
Nikos Alexandris

58

Yalnızca birkaç VM'm vardı ve VirtualBox için varsayılan depolama yerini değiştirebileceğimi ve sonra VM'leri kopyalayabileceğimi öğrendim. Yeni HD'de oluşturduğum klonlar, yeni HD'de istediğim yerde Her şey yolunda, anlık görüntüler ve sanal HD'lerin konumunu yeniden eşlemenize gerek yok.


3
+1 Bunun en iyi yöntem olduğunu düşünüyorum. VirtualBox sizin için her şeyi düzenli küçük bir pakette taşır.
Dave Andersen

3
bu en iyi yoldur, manuel cfg düzenlemesi gerekmez
Bojan Bjelic

bunu nasıl yapıyorsun???
FlipFloop

Bu gerçekten kabul edilmiş bir cevap olmalıdır
V0ID

1
Uyarı: Clone mükemmel bir kopya üretmiyor ve makine / disk kimlikleri değiştikçe kurulu yazılımın lisanslarını güncelleme ihtiyacını tetikleyebilir. Bir VM'deki Quicken'ın eski bir kopyasını yeni bir diske taşırken bunu karşılaştı.
MZB

36

En kolay yöntem, sanal makinelerinizi çıkarmayı ve ayarlarını değiştirmeyi gerektirmez.

  1. Virtualbox VMs klasörünüzü yeni bir sürücüye kopyalayın.

  2. Sanal Kutu Makine Yöneticisi'ni çalıştırın. Medya Yöneticisi Dosyasını Çalıştırın -> Sanal Medya Yöneticisi

    2a. Depolama alanını taşımak için VM'yi seçin. Click Yayın düğmesini ve ardından Kaldır düğmesini. Bir sonraki iletişim kutusunda, sanal sürücüyü kaldırabilir veya saklayabilirsiniz. Sizi Virtualbox Makine Yöneticisinde bırakarak yöneticiyi kapatın.

  3. Medyayı yeni kaldırdığınız VM'yi seçin, Ayarlar düğmesine, Depolama bölümüne tıklayın . Medya için bir denetleyici ekleyin (genellikle SATA) ve ardından bir sabit sürücü ekleyin ve mevcut diski seçin ve yeni konumunuzdaki VD'yi seçin.

  4. Taşıdığınız her makine için tekrarlayın

Kontrol etmek için sanal makinenizi yeni yere ateşleyin. Sanal Medya Yöneticisini bir sonraki ziyaretinizde, VM girişinin üzerine gelmek VD'nin nerede saklandığını gösterir.

Anlık görüntü klasörlerinizi, kullanıyorsanız yeni sürücüye işaret edecek şekilde değiştirdiğinizden emin olun. Her makinenin bir anlık görüntü klasörü ayarı vardır ve VM Manager, Dosya -> Ayarlar'da da değiştirilmesi gereken bir Varsayılan Makine klasörü ayarına sahiptir .

Ayrıca xml dosyasındaki yolu da değiştirmek zorunda kaldım. Bundan sonra kusursuz çalıştı.

NOT: Yazıldığından bu yana işler biraz değişti, Rob'ın cevabına bakınız. Şimdi çok basit.


2
Bunu yapmanın en kolay yolu olduğunu düşünüyorum.
Peter Perháč

17

ÇOK, daha basit. 1) yeni konuma taşı 2) Sanal kutu menüsünden kaldır'ı sağ tıkla 3) Makine menüsünden 'ekle'yi seç 4)' sanal kutu makinesi tanımı 'türüne sahip 8kb Mavi simgesini bul. Seçin ve sanal kutu listenize ekleyecektir. sanal makineye çift tıklayın ve çalışır.


Bundan daha basit olsa bile, VM'leri VirtualBox'a geri eklemek istediğinizde *.vbox, klasöründeki dosyayı tıklamanız yeterlidir .
Joel Mellon,

2
Üç yılda işler nasıl değişti ... İstek o zamanlar bu kadar kolay olmuştu. Bunu görmeleri için benim cevabımı not ekledi.
Fiasco Labs

1
Bu gerçekten daha yüksek olmalı. Etrafta dolanıp çalıştım. Basitçe, kullanıcı arabiriminde "erişilemez" olanları kaldırmak ve .vbox dosyasını çift tıklatarak yeni konumu kullanarak yeniden ekleyin.
wenbert

Linux ana bilgisayarda çalışmıyor. Bu hatayı almak: VM oturumu herhangi bir açılmadan önce kapatıldı. Sonuç Kodu: NS_ERROR_FAILURE (0x80004005) Bileşen: SessionMachine Arayüz: ISession {7844aa05-b02e-4cdd-a04f-ade4a762e6b7}
Max N

1
Bu mthod'un "kaldır" kısmı, ayarlarınızın kaybolmasına neden olacak kötü bir fikir gibi hissediyor, ancak değil. Bu yöntem tüm ayarlarınızı korur ve denediğim en kolay yöntemdir. Hem Windows 7 hem de Windows Sever 2016 misafirleriyle birlikte Windows 10 ana bilgisayarında çalıştı.
Gece Baykuş

13

Mac'te, bu dosyadaki yolları düzenleyin:

/Users/pleddy/Library//VirtualBox/VirtualBox.xml

Bu kolaydı, presto!


3
Windows kullanıyor ve ayrıca VirtualBox.xml dosyasını düzenlemek istemiyor.
ChrisN

4
Yine de bu bana yardımcı oldu, çünkü eğer bu soru mac'taysanız hâlâ çirkindir.
NReilingh

Ben bir mac kullanıcısıyım ve google beni buraya indirdi ve bu çözüm hepsinden daha basit, mükemmel mantıklı ve benim için çalıştı :)
Mohit Singh

Linux'tayım ve bu cevabın sesi hoşuma gitti, ancak dosyanın üstündeki uyarıya son verildi. XML'i doğrudan düzenlemeyi hala tavsiye eder misiniz? Uyarı yazıyor: ** BU DOSYALARI DÜZENLEMEYİN. Herhangi bir VirtualBox ile ilgili uygulama çalışırken bu dosyada değişiklik yaparsanız, değişikliklerin yürürlüğe girmeden üzerine yazılacaktır. Değişiklik yapmak için VBoxManage veya VirtualBox Manager GUI kullanın. **
craq

11

Bütün bu günü bir gün boşa harcadıktan sonra (Arch Linux'ta Virtualbox 5.0.12 kullanarak), sonunda thomthom'un cevabının önerdiği şekilde çözdüm. Tam prosedürden emin olmayanlar için, tüm bir makineyi klonlayan komut (anlık görüntüler dahil):

VBoxManage clonevm --mode all --basefolder </new/path/> --register <VM_to_clone>

VM'nin ismini alın.

VBoxManage list vms

Gerekirse, yol ve ad verin.

Son olarak, her şeyin yolunda olup olmadığını kontrol edin ve orijinali çıkarın.

Hepsi bu, gerçekten. Xml dosyaları veya bir hex editörü ile uğraşmanıza gerek yok. Bir GUI kullanmanıza gerek yok.

http://www.virtualbox.org/manual/ch08.html#vboxmanage-clonevm


Bu benim için çalışan tek cevaptı. Daha yüksek olmalı.
Max N

2
VM_to_cloneVM'nin UUID'si veya adıdır. Verilen komutla (bir UUID kullanarak), bir dizin yaratıldı /new/path/_<UUID>_ Cloneve içeren dosyalar da _<UUID>_ Clonead olarak kullanıldı . Açıkça daha güzel bir isme sahip olmak için --name "Your preferred name here"bayrağı kullanın .
Rob W

... ve orijinal VM'yi CLI'den kaldırmak için VBoxManage unregistervm UUID(edindiğiniz VM'nin UUID'si VBoxManage list vms, VM adını kullanmayın, çünkü --nameorijinal adı korumak için kullanıyorsanız , aynı ada sahip birden fazla VM'niz vardır)
Rob W

Uyarı: Clone mükemmel bir kopya üretmiyor ve makine / disk kimlikleri değiştikçe kurulu yazılımın lisanslarını güncelleme ihtiyacını tetikleyebilir. Bir VM'deki Quicken'ın eski bir kopyasını yeni bir diske taşırken bunu karşılaştı.
MZB

Zaten artık özel bir komut olduğu görülmektedir: virtualbox.org/manual/ch08.html#vboxmanage-movevm
Michael P

4

Lucas Pottersky aynı yapmak için cevap ama komut satırında (Windows üzerinde yerini yoluyla vboxmanagebirlikte VBoxManage.exe):

  1. Tüm sanal makineleri listele:

    vboxmanage list vms
    

    ya da sadece çalışıyor:

    vboxmanage list runningvms
    

    Her bir makine için isim ve UUID çıktılarını gösterir

    Taşıyacağınız her makine için aşağıdaki adımları izleyin.

  2. Dikkatlice kapat:

    vboxmanage controlvm UUID acpipowerbutton
    
  3. kaydını kaldırın:

    vboxmanage unregistervm UUID
    
  4. Sanal makine klasörünü yeni konuma taşıyın.

  5. .vboxDosyaya yol sağlayarak geri kaydedin :

    vboxmanage registervm /path/to/machine.vbox
    

2

Bu benim için VirtualBox'un MacOS sürümü ile de çalıştı (4.1.12 sürümü). VirtualBox'ın yeniden başlatılmadan önce bırakması için 5-10 saniye bekledim. VBoxSVC'nin düzgün şekilde kapandığından emin olmak için Aktivite İzleyicisi'ne baktım.

Bunu yapmazsanız, aşağıdakine benzer bir hata alırsınız (Windows’tan gelen bir başkasının hata mesajını kopyalayıp yapıyorum). Bu hatayı alırsanız, bunun nedeni yalnızca VirtualBox'dan çıkmadığınız veya VBoxSVC'nin bırakması için yeterince beklememiş olmanızdır.

Failed to open virtual machine located in E:/<path>/<machine_name>/<machine_name>.vbox.

Cannot register the hard disk 'E:\<path>\<machine_name>\Snapshots/{0ece4bff-9185-4cff-9069-b3d1f4536394}.vdi' {0ece4bff-9185-4cff-9069-b3d1f4536394} 
because a hard disk 'C:\<path>\<machine_name>\Snapshots/{0ece4bff-9185-4cff-9069-b3d1f4536394}.vdi' with UUID {0ece4bff-9185-4cff-9069-b3d1f4536394} already exists.

Result Code: E_INVALIDARG (0x80070057)
Component: VirtualBox
Interface: IVirtualBox {c28be65f-1a8f-43b4-81f1-eb60cb516e66}

2

VirtualBox v4.3.14 işletim sistemine sahip OS X'te tek yapmam gereken, .vboxdosyayı yeni konumdan çift ​​tıklamaktı ve VirtualBox'u açıp mevcut VM listesine ekledi.


Lütfen cevap olarak "teşekkür ederim" eklemeyin. Bunun yerine, yararlı bulduğunuz cevapları oylayın.
Scott

Cevabım 'teşekkür ederim' değil. Bunu daha açık hale getirmek için ifadeleri düzenledim. Teşekkürler.
Tyson Phalp

2

VirtualBox altındaki ayarlarda varsayılan bir saklama yeri var: http://mattvelic.com/default-vm-location/

Şimdi öldü. Wayback makine içeriği:

http://web.archive.org/web/20131116130725/http://mattvelic.com/default-vm-location

... Dosya menüsündeki Tercihleri ​​kontrol edin. Seyretmek! Genel sekmesindeki ilk öğe, Varsayılan Makine Klasörü'dür. http://web.archive.org/web/20131116130725im_/http://54.225.211.105/wp-content/uploads/2012/11/VB_Preferences.png Depolama diskime işaret etmek için konumu düzenledim ve hızlı bir şekilde veri tabanımı değiştirdim VM. Bu sefer VirtualBox hem makine dosyalarını hem de VDI'yi doğru yerde yarattı. Buradaki asıl ders bazen çözümün teknik olması gerekmediğidir. BT uzmanları olarak, bir sorunun cevabının karmaşık olacağını düşünmeye meyilli olduğumuzu düşünüyorum. Bariz çözümler için gözlerinizi dört açın!


Bu bağlantı şimdi öldü. Bağlantıları cevap olarak göndermemeye çalışın. Öldüklerinde, temizlik yapmak için SU kabiliyetine bırakılmıştır.
mrtsherman

archive.org içeriği ile güncellendi
Rebecca

1

Bunun mümkün olduğunu sanmıyorum.

VDI'yı yeni konuma taşıyabilirsiniz, ancak XML değişikliklerinden kaçınabileceğinizi sanmıyorum. Alternatif olarak (ama aslında XML baskısı ile aynıdır) GUI ile yeni bir sanal makine oluşturacak ve taşınan görüntünün disk olarak seçilmesi ihtiyaçlarınızı karşılayabilecek mi?


1
Xml’e ikinci kez baktım ve aslında çok basit. Ayarlarımı korumak istediğim için yeni bir makine oluşturmak iyi değil (neyi değiştirdiğimi hatırlamıyorum, tamamen önemsiz olabilir veya olmayabilir).
maaartinus

1

Orijinal yöntemi denedim (VDI'yi kaldırın, yeni kopyayı ekleyin), eskisinin hala var olduğunu belirten bir mesaj aldım ve işletim sistemini yeniden başlattığımda bile yeni kopyayı ekleyemedim (Mac OS X El Capitan'da).

Düzeltme / Dosya / Sanal Medya Yöneticisi menüsünde mevcut VDI'yi kaldırın. Bu, anlık görüntüler olsa bile çalışır; tüm anlık görüntü VDI'lerini ters sırayla kaldırmanız yeterlidir. VirtualBox'ı kapatıp tekrar açmanıza gerek yok.


0

Sanal kutuyu hiç bir zaman pencerelerde kullanmamıştım ama ubuntu'da VDI'yı taşıyorsunuz ve sanal kutu GUI'sinde VM'yi sağ tıklayıp VDI yerelleştirmesini dosyayı taşıdığınız yere değiştirebileceğiniz Konfigürasyon Menüsü -> depolamasını kullanıyorsunuz. Diğer makine dosyaları tanımına gelince, onları taşırsınız ve GUI'de Tercihler'e gidersiniz ve varsayılan makineler dizininin konumunu taşıdığınız değere çevirirsiniz.


0

Bu yöntemi kullanıyorum:

  1. VirtualBox GUI'den VM'nizi seçin ve takılı HDD'yi çıkarın
  2. Dosyayı (ör. Vdi) yeni konuma kopyalayın
  3. Sethduuid "myhdd.vdi'ye giden yolum" 6912BF7F-13BB-4E70-A2CA-C92300FEC3DC komutunu kullanarak vboxmanage internalcommands sethduuid komutuyla yeni konumda .vdi için yeni bir UUID oluşturun.

    (Önceki örnekte kendi UUID'nizi kullanın veya hiç eklemeyin: komut bir tanesini otomatik olarak oluşturacaktır. Ayrıca, bu adımı atlarsanız, .vdi'yi yeni konumdan eklerken UUID'nin zaten var olduğu bir hata alırsınız ).

  4. Şimdi VirtualBox GUI'ye geri dönün, VM'nizi seçin ve Setttings / Storage'da HD'yi (.vdi dosyası) yeni konumundan ekleyin.

ve bitti.


-1

Oracle VM VirtualBox'ta (6.0.4 sürümüyle test edilmiştir), VM'nizi kapatın -> VirtualBox Manager'da VM'yi sağ tıklayın -> "Taşı ..." tıklayın -> yeni dizini seçin. Bu kadar!


@Moreaki: Bu arada, “D” olmadan “okunaklı” (ve “okunaklı”) yazılır .
Scott
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.