Wie verschiebe ich VirtualBox-Dateien?


165

Standardmäßig speichert VirtualBox alle Daten in einem Verzeichnis unterhalb des Basisverzeichnisses. Ich weiß, wie ich es ändern kann, aber wie kann ich den Speicherort vorhandener Bilder ändern (ohne VirtualBox.xml manuell zu bearbeiten)?

Ich arbeite unter Windows und möchte keine NTFS-Links verwenden .


4
Oh, ich wollte Symlinks vorschlagen (sie lösen Everything ™), aber Sie haben diese Idee blockiert ... :(
DMA57361

2
Ich vertraue Links unter Windows überhaupt nicht. Obwohl NTFS dazu in der Lage ist, weiß Windows XP nichts darüber und es gibt bereits genug Probleme damit. Ich kann unnötig feige sein ...
Maaartinus

Ah ja, ich würde sie auf XP nicht anfassen. Aber die Unterstützung für 7 ist ziemlich solide - Sie müssen sie immer noch aus der cmd-Zeile erstellen, aber das ist nicht wirklich mühsam. Ich bin mir nicht sicher über Vista ...
DMA57361

Es ist noch schlimmer, dass die XP-Version von NTFS Hardlinks unterstützt, diese können sich jedoch nicht über mehrere Volumes erstrecken . Offensichtlich wollte ich die Daten auf eine andere Partition verschieben.
Maaartinus

Hardlinks können nicht immer Bände erstrecken, nur Symlinks können (und kann für diese Art der Sache, mein Benutzerordner alle meine zweite Festplatte, zum Beispiel symbolische Links verwendet werden). Persönlich würde ich jedoch Hardlinks in XP vermeiden (auch wenn dies eine Option wäre).
DMA57361

Antworten:


138

Wenn Sie vorhaben, Ihre gesamte VM an einen völlig neuen Speicherort zu verschieben, sollten Sie nur die folgenden 2 Antworten befolgen:

Kopieren Sie den Beitrag hier:

  1. Fahren Sie VirtualBox herunter und sichern Sie Ihre .VirtualBox \ VirtualBox.xml-Datei.
  2. Suchen Sie Ihren vorhandenen Ordner "Virtualbox VMs" und kopieren Sie den gesamten Ordner mit dem Inhalt auf Ihr neues Laufwerk. E:
  3. Führen Sie VirtualBox aus und dann für jede VM der Reihe nach:

    3.1 Klicken Sie mit der rechten Maustaste auf den VM-Namen und wählen Sie "Entfernen" aus dem Popup-Menü. Beantworten Sie die Frage "Dateien physisch löschen?" Mit "Nein". Frage.

    3.1b Nachdem Sie eine VM von der Benutzeroberfläche entfernt haben, müssen Sie VirtualBox schließen und so lange geschlossen lassen, bis die VBoxSVC-Hintergrundaufgabe eine Zeitüberschreitung aufweist und auch beendet wird. Anschließend können Sie die VirtualBox-App erneut starten und über Computer | Hinzufügen die im vorherigen Schritt entfernten VMs wieder hinzufügen.

    3.2 Wählen Sie den Menüpunkt Computer | Hinzufügen ..., navigieren Sie zum neuen Speicherort der VM auf Laufwerk E: und wählen Sie die VBOX-Datei aus.

    3.3. Wiederholen Sie diesen Vorgang für alle verbleibenden VMs.

  4. Legen Sie unter Datei | Einstellungen den Standardcomputerpfad auf "E: \ VirtualBox-VMs" fest.
  5. Testen Sie jede der VMs. Erst wenn Sie sicher sind, dass alle funktionieren, löschen Sie den alten VM-Ordner, dh löschen Sie "C: \ VirtualBox-VMs".

Wenn ich dies für einen Linked-Clone-Computer tue, können sie nicht gestartet werden
Nam G VU

1
Dies funktionierte für mich, obwohl ich auch die Pfade zu jeder Festplatte und jedem Snapshot-Image aktualisieren musste, indem ich die .VirtualBox\VirtualBox.xmlDatei bearbeitete und ein Suchen / Ersetzen durchführte. Außerdem habe ich nur die Ordner Machinesund verschoben HardDisk, nicht alle darin enthaltenen Dateien .VirtualBox, da das die gesamte globale Konfiguration und Protokollierung und so ist.
Dave Andersen

4
Für Mac OS X Benutzer VirtualBox.xmlbefindet sich unter ~/Library/VirtualBox/VirtualBox.xml. Die VMs befinden sich in ~/VirtualBox VMs.
Siu Ching Pong - Asuka Kenji -

2
Virtual Box 4.3.0+ hat das "Last Important Thing" gelöst, ich musste es nicht einmal schließen - Anleitung .
PCaetano

Vielleicht könnten Sie auch die Befehlszeile "version" hinzufügen. 1) Bestehende VMs auflisten über VBoxManage list vms. 2) Neben den Namen der VMs in geschweiften Klammern wird auf deren UUID verwiesen. Kopieren Sie die von Interesse. Details dazu können über abgerufen werden VBoxManage showvminfo UUID. 3) Heben Sie die Registrierung der gewünschten VM über auf VBoxManage unregistervm UUID. 4) Verschieben Sie das Verzeichnis der gewünschten VM. 5) Zum Schluss registrieren Sie den Computer über VBoxManage register NameOfVM.vbox- wobei NameOfVM der tatsächliche Name der .vboxzu registrierenden VM- Datei ist.
Nikos Alexandris

58

Ich hatte nur ein paar VMs und fand heraus, dass ich einfach den Standardspeicherort für VirtualBox ändern und dann meine VMs klonen konnte. Die Klone wurden an dem neuen Speicherort auf der neuen Festplatte erstellt, an dem ich sie haben wollte. Alles intakt, Schnappschüsse und keine Notwendigkeit, den Speicherort der virtuellen Festplatten neu zuzuordnen.


3
+1 Ich denke, das ist die beste Methode. VirtualBox verschiebt alles für Sie in einem ordentlichen kleinen Bündel.
Dave Andersen

3
dies ist der beste weg, keine manuelle cfg-bearbeitung erforderlich
bojan bjelic

Wie machst Du das???
FlipFloop

Dies sollte wirklich die akzeptierte Antwort sein
theV0ID

1
Warnung: Clone erstellt keine perfekte Kopie und kann dazu führen, dass Lizenzen für installierte Software aktualisiert werden müssen, wenn sich die Computer- / Festplatten-IDs ändern. Dies ist beim Verschieben einer alten Kopie von Quicken auf einer VM auf eine neue Festplatte aufgetreten.
MZB

36

Die einfachste Methode besteht nicht darin, die virtuellen Maschinen zu entfernen und ihre Einstellungen zu ändern.

  1. Kopieren Sie Ihren Virtualbox-VM-Ordner auf ein neues Laufwerk.

  2. Führen Sie den Virtual Box Machine Manager aus. Führen Sie den Media Manager File -> Virtual Media Manager aus

    2a. Wählen Sie die VM aus, für die der Speicher verschoben werden soll. Klicken Sie auf die Schaltfläche Freigeben und dann auf die Schaltfläche Entfernen . Im nächsten Dialogfeld können Sie das virtuelle Laufwerk entweder entfernen oder behalten. Schließen Sie den Manager und lassen Sie ihn in Ihrem Virtualbox-Maschinen-Manager.

  3. Wählen Sie die VM aus, für die Sie gerade Medien entfernt haben, und klicken Sie auf die Schaltfläche Einstellungen . Klicken Sie auf den Abschnitt Speicher . Fügen Sie einen Controller für das Medium hinzu (normalerweise SATA), fügen Sie dann eine Festplatte hinzu, wählen Sie eine vorhandene Festplatte aus und wählen Sie den VD an Ihrem neuen Standort aus.

  4. Wiederholen Sie diesen Vorgang für jede Maschine, die Sie bewegen

Schalten Sie Ihre virtuelle Maschine am neuen Ort aus, um dies zu überprüfen. Wenn Sie das nächste Mal den Virtual Media Manager besuchen, wird Ihnen durch Bewegen des Mauszeigers über den VM-Eintrag angezeigt, wo der VD gespeichert ist.

Stellen Sie sicher, dass Sie die Snapshot-Ordner so ändern, dass sie auf das neue Laufwerk verweisen, wenn Sie sie verwenden. Jede Maschine hat eine Snapshot - Ordner - Einstellung und die VM Manager verfügen über eine Standard - Maschinen Ordner in Einstellung Datei -> Einstellungen , die auch geändert werden muss.

Außerdem musste ich auch den Pfad in der XML-Datei ändern. Danach hat es einwandfrei funktioniert.

HINWEIS: Die Dinge haben sich ein wenig geändert, seitdem dies geschrieben wurde, siehe Robs Antwort. Es ist jetzt extrem einfach.


2
Ich denke, das ist bei weitem der einfachste Weg, dies zu tun.
Peter Perháč

17

VIEL, VIEL einfacher. 1) Verschieben an einen neuen Ort 2) Klicken Sie mit der rechten Maustaste auf "Entfernen" aus dem Virtualbox-Menü. 3) Wählen Sie "Hinzufügen" aus dem Maschinenmenü. 4) Suchen Sie das blaue 8-KB-Symbol mit einer Art "Virtualbox-Maschinendefinition". Wählen Sie es aus und es wird Ihrer Virtualbox-Liste hinzugefügt. Doppelklick auf virtuelle Maschine und es funktioniert.


Noch einfacher ist es, wenn Sie die VMs wieder zu VirtualBox hinzufügen möchten. Klicken Sie einfach auf die *.vboxDatei in ihrem Ordner.
Joel Mellon

2
Wie sich die Dinge in drei Jahren ändern ... Der Wunsch war damals so einfach gewesen. Anmerkung zu meiner Antwort hinzugefügt, damit sie kommen und diese sehen.
Fiasco Labs

1
Das sollte wirklich höher sein. Ich spielte herum und brachte es nicht zum Laufen. Entfernen Sie einfach die "unzugänglichen" in der Benutzeroberfläche und doppelklicken Sie dann auf die .vbox-Datei. Fügen Sie sie unter Verwendung des neuen Speicherorts erneut hinzu.
Wenbert

Funktioniert nicht auf Linux-Hosts. Fehlermeldung: Die VM-Sitzung wurde vor dem Versuch, sie einzuschalten, geschlossen. Ergebniscode: NS_ERROR_FAILURE (0x80004005) Komponente: SessionMachine-Schnittstelle: ISession {7844aa05-b02e-4cdd-a04f-ade4a762e6b7}
Max N

1
Der Teil "Entfernen" dieser Methode scheint eine schlechte Idee zu sein, die zum Verlust Ihrer Einstellungen führt, dies jedoch nicht. Diese Methode behält alle Ihre Einstellungen bei und ist die einfachste aller Methoden, die ich ausprobiert habe. Es funktionierte auf einem Windows 10-Host mit Windows 7- und Windows Server 2016-Gästen.
Nachteule

13

Bearbeiten Sie auf einem Mac die Pfade in dieser Datei:

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

Das war einfach, Presto!


3
Er verwendet Windows und möchte VirtualBox.xml auch nicht bearbeiten.
ChrisN

4
Dies war jedoch hilfreich für mich, da diese Frage auf einem Mac immer noch unklar ist.
NReilingh

Ich bin ein Mac-Benutzer und Google hat mich hierher gebracht und diese Lösung ist die einfachste von allen, macht vollkommen Sinn und hat für mich funktioniert :)
Mohit Singh

Ich bin unter Linux und mochte den Klang dieser Antwort, aber die Warnung oben in der Datei hat mich abgeschreckt. Würden Sie trotzdem empfehlen, das XML direkt zu bearbeiten? Die Warnung lautet: ** DIESE DATEI NICHT BEARBEITEN. Wenn Sie Änderungen an dieser Datei vornehmen, während eine VirtualBox-bezogene Anwendung ausgeführt wird, werden Ihre Änderungen später überschrieben, ohne dass sie wirksam werden. Verwenden Sie VBoxManage oder die VirtualBox Manager-Benutzeroberfläche, um Änderungen vorzunehmen. **
craq

11

Nachdem ich einen ganzen Tag mit diesem Problem verbracht hatte (mit Virtualbox 5.0.12 unter Arch Linux), habe ich es endlich so gelöst, wie es in der Antwort von thomthom vorgeschlagen wird. Für diejenigen, die sich über die genaue Vorgehensweise nicht sicher sind, lautet der Befehl, mit dem eine gesamte Maschine (einschließlich Snapshots) geklont wird:

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

Beziehen Sie den Namen der VM mit

VBoxManage list vms

Geben Sie ggf. Pfad und Namen an.

Überprüfen Sie abschließend, ob alles in Ordnung ist, und entfernen Sie das Original.

Das ist wirklich alles. Keine Notwendigkeit, sich mit XML-Dateien oder einem Hex-Editor zu beschäftigen. Auch eine grafische Benutzeroberfläche ist nicht erforderlich.

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


Dies war die einzige Antwort, die für mich funktioniert hat. Sollte höher sein.
Max N

2
VM_to_cloneist die UUID oder der Name der VM. Mit dem angegebenen Befehl (unter Verwendung einer UUID) wurde ein Verzeichnis unter erstellt /new/path/_<UUID>_ Clone, und die enthaltenen Dateien wurden auch _<UUID>_ Cloneals Name verwendet. Verwenden Sie die --name "Your preferred name here"Flagge , um explizit einen schöneren Namen zu erhalten .
Rob W

... und um die ursprüngliche VM über die CLI zu entfernen VBoxManage unregistervm UUID(UUID der VM, die Sie erhalten haben VBoxManage list vms, verwenden Sie nicht den VM-Namen, denn wenn Sie --nameden ursprünglichen Namen beibehalten, haben Sie mehrere VMs mit demselben Namen)
Rob W

Warnung: Clone erstellt keine perfekte Kopie und kann dazu führen, dass Lizenzen für installierte Software aktualisiert werden müssen, wenn sich die Computer- / Festplatten-IDs ändern. Dies ist beim Verschieben einer alten Kopie von Quicken auf einer VM auf eine neue Festplatte aufgetreten.
MZB

Es scheint ohnehin einen dedizierten Befehl zu geben: virtualbox.org/manual/ch08.html#vboxmanage-movevm
Michael P

4

So machen Sie dasselbe wie bei Lucas Pottersky , aber über die Befehlszeile (unter Windows ersetzen vboxmanagedurch VBoxManage.exe):

  1. Alle virtuellen Maschinen auflisten:

    vboxmanage list vms
    

    oder nur laufen:

    vboxmanage list runningvms
    

    die für jede Maschine Namen und UUID ausgibt.

    Führen Sie für jede Maschine, die Sie bewegen, die folgenden Schritte aus.

  2. Beende es würdevoll:

    vboxmanage controlvm UUID acpipowerbutton
    
  3. Abmeldung:

    vboxmanage unregistervm UUID
    
  4. Verschieben Sie den Ordner der virtuellen Maschine an den neuen Speicherort.

  5. Registrieren Sie es zurück, indem Sie den Pfad zur .vboxDatei angeben:

    vboxmanage registervm /path/to/machine.vbox
    

2

Dies funktionierte auch mit der MacOS-Version von VirtualBox (Version 4.1.12). Ich habe vor dem Neustart 5-10 Sekunden gewartet, bis VirtualBox beendet ist. Ich habe in der Aktivitätsüberwachung nachgesehen, um sicherzustellen, dass VBoxSVC ordnungsgemäß beendet wurde.

Wenn Sie dies nicht tun, wird eine Fehlermeldung angezeigt, die ungefähr wie folgt aussieht (ich kopiere und füge die Fehlermeldung einer anderen Person ein, die von Windows stammt). Wenn dieser Fehler auftritt, haben Sie VirtualBox einfach nicht beendet oder haben lange genug gewartet, bis VBoxSVC beendet wurde.

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

In OS X mit VirtualBox v4.3.14 musste ich nur auf die .vboxDatei am neuen Speicherort doppelklicken, und VirtualBox wurde geöffnet und der Liste der verfügbaren VMs hinzugefügt.


Bitte geben Sie als Antwort nicht "Danke" an. Stimmen Sie stattdessen die Antworten ab, die Sie hilfreich finden.
Scott

Meine Antwort ist kein Dankeschön. Ich habe den Wortlaut überarbeitet, um das deutlicher zu machen. Vielen Dank.
Tyson Phalp

2

In den Einstellungen unter VirtualBox gibt es einen Standardspeicherort: http://mattvelic.com/default-vm-location/

Jetzt tot Wayback-Maschine hat den Inhalt:

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

... überprüfen Sie die Einstellungen im Menü Datei. Erblicken! Das erste Element auf der Registerkarte Allgemein ist Standard-Computerordner. http://web.archive.org/web/20131116130725im_/http://54.225.211.105/wp-content/uploads/2012/11/VB_Preferences.png Ich habe den Speicherort so bearbeitet, dass er auf mein Speicherlaufwerk verweist, und habe mein schnell neu erstellt VM. Diesmal hat VirtualBox sowohl die Maschinendateien als auch das VDI am richtigen Speicherort erstellt. Die wahre Lehre hier ist, dass die Lösung manchmal nicht technisch sein muss. Ich denke, dass wir als IT-Profis der Meinung sind, dass die Lösung eines Problems kompliziert sein wird. Halten Sie die Augen offen für die offensichtlichen Lösungen!


Dieser Link ist jetzt tot. Versuche keine Links als Antworten zu posten. Wenn sie tot sind, bleibt SU mit Cruft zurück, um aufzuräumen.
Mrtsherman

aktualisiert mit Inhalten von archive.org
Rebecca

1

Ich denke nicht, dass das möglich ist.

Sie können die VDI an den neuen Speicherort verschieben, aber ich glaube nicht, dass Sie XML-Änderungen vermeiden können. Als Alternative (aber das ist tatsächlich das Gleiche wie bei der XML-Edition) würde eine neue virtuelle Maschine mit der GUI erstellt und das verschobene Image als Festplatte für Ihre Anforderungen ausgewählt.


1
Ich habe mir das xml noch einmal angesehen und es ist eigentlich sehr einfach. Das Erstellen eines neuen Computers ist nicht gut, da ich meine Einstellungen beibehalten möchte (ich erinnere mich nicht, was ich geändert habe, es ist möglicherweise völlig unwichtig oder nicht).
Maaartinus

1

Ich habe die ursprüngliche Methode ausprobiert (VDI entfernen, neue Kopie anhängen), habe die Meldung erhalten, dass die alte noch vorhanden ist, und konnte die neue Kopie nicht anhängen, auch wenn ich das Betriebssystem neu gestartet habe (unter Mac OS X El Capitan).

Das Update war in Menü / Datei / Virtual Media Manager, entfernen Sie die vorhandene VDI. Dies funktioniert auch bei Schnappschüssen. Entfernen Sie einfach alle Snapshot-VDIs in umgekehrter Reihenfolge. VirtualBox muss nicht geschlossen und erneut geöffnet werden.


0

Ich habe virtualbox unter Windows nie verwendet, aber unter Ubuntu haben Sie das VDI verschoben und in der virtualbox-GUI mit der rechten Maustaste auf die VM geklickt und das Konfigurationsmenü -> Speicher verwendet, in dem Sie die VDI-Lokalisierung in das Verzeichnis ändern können, in das Sie die Datei verschoben haben. In Bezug auf die Definition der anderen Maschinendateien verschieben Sie diese und wechseln in der Benutzeroberfläche zu Einstellungen und ändern die Position des Standard-Maschinenverzeichnisses in das Verzeichnis, das Sie verschoben haben.


0

Ich benutze diese Methode:

  1. Wählen Sie in der VirtualBox-Benutzeroberfläche Ihre VM aus und entfernen Sie die angeschlossene Festplatte
  2. Kopieren Sie die Datei (dh vdi) an den neuen Speicherort
  3. Generieren Sie eine neue UUID für die .vdi am neuen Speicherort mit dem Befehl vboxmanage internalcommands sethduuid "my path to myhdd.vdi" 6912BF7F-13BB-4E70-A2CA-C92300FEC3DC

    (Verwenden Sie im vorherigen Beispiel Ihre eigene UUID, oder fügen Sie sie gar nicht hinzu: Der Befehl generiert automatisch eine. Wenn Sie diesen Schritt auslassen, wird beim Hinzufügen der .vdi vom neuen Speicherort eine Fehlermeldung angezeigt, dass die UUID bereits vorhanden ist ).

  4. Kehren Sie nun zur VirtualBox-GUI zurück, wählen Sie Ihre VM aus und hängen Sie unter Einstellungen / Speicher die HD (.vdi-Datei) von ihrem neuen Speicherort an.

und fertig.


-1

Fahren Sie in Oracle VM VirtualBox (getestet mit Version 6.0.4) einfach Ihre VM herunter -> klicken Sie mit der rechten Maustaste auf die VM im VirtualBox Manager -> klicken Sie auf "Verschieben ..." -> wählen Sie das neue Verzeichnis. Das ist es!


@ Moreaki: Übrigens werden "Lesbarkeit" (und "lesbar") ohne "D" geschrieben.
Scott
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.