Comment déplacer des fichiers VirtualBox?

165

Par défaut, VirtualBox stocke toutes les données dans un répertoire situé sous le répertoire de base. Je sais comment le changer, mais comment puis-je changer l'emplacement des images existantes (sans éditer manuellement VirtualBox.xml)?

Je travaille sur Windows et je ne souhaite pas utiliser de liens NTFS .

maaartinus
la source
4
Awww, j'allais suggérer des liens symboliques (ils résolvent tout ™), mais vous avez bloqué cette idée ... :(
DMA57361
2
Je ne fais pas du tout confiance aux liens sur Windows. Bien que NTFS en soit capable, Windows XP n'en sait rien et il y a déjà suffisamment de problèmes avec. Je suis peut-être inutilement lâche ...
mardi 24
Ah, oui, je ne les toucherais pas sous XP. Mais le support sur 7 est assez solide - vous devez toujours les construire à partir de la ligne cmd, mais ce n’est pas vraiment une corvée. Je ne suis pas sûr de Vista ...
DMA57361
Pire encore, la version XP de NTFS prend en charge les liens en dur, mais ceux-ci ne peuvent pas couvrir des volumes . De toute évidence, je voulais déplacer les données vers une autre partition.
Maaartinus
Les liens durs ne peuvent jamais s'étendre sur des volumes, seuls les liens symboliques peuvent (et peuvent être utilisés pour ce genre de choses, mes dossiers d'utilisateurs sont tous liés par un lien symbolique à mon deuxième disque dur, par exemple). Mais personnellement, j'éviterais toujours les liens durs dans XP (même s'ils étaient une option).
DMA57361

Réponses:

138

Si vous voulez déplacer toute votre machine virtuelle vers un nouvel emplacement, il vous suffit de suivre ces 2 réponses:

Copier le message ici:

  1. Arrêtez VirtualBox, sauvegardez votre fichier .VirtualBox \ VirtualBox.xml.
  2. Recherchez votre dossier "Virtualbox" existant et copiez (sans le déplacer) l'intégralité du dossier avec le contenu sur votre nouveau lecteur E:
  3. Exécutez VirtualBox, puis pour chaque machine virtuelle:

    3.1 Cliquez avec le bouton droit sur le nom de la machine virtuelle et sélectionnez "Supprimer" dans le menu contextuel. Répondez non à la "suppression physique des fichiers?" question.

    3.1b après avoir supprimé une machine virtuelle de l'interface utilisateur, vous devez fermer VirtualBox et le laisser fermé suffisamment longtemps pour que la tâche VBoxSVC en arrière-plan expire et se termine également. Ensuite, vous pouvez redémarrer l'application VirtualBox et utiliser Machine | Ajouter pour rajouter les ordinateurs virtuels supprimés à l'étape précédente.

    3.2 Sélectionnez l'élément de menu Machine | Add .., naviguez jusqu'au nouvel emplacement des machines virtuelles sur le lecteur E: et sélectionnez le fichier .vbox.

    3.3. Répétez l'opération pour toutes les machines virtuelles restantes.

  4. Dans Fichier | Préférences, définissez le chemin d'accès par défaut à "E: \ VirtualBox VMs".
  5. Testez chacune des VM. Supprimez l’ancien dossier contenant les ordinateurs virtuels, c’est-à-dire, supprimez les "ordinateurs virtuels C: \ VirtualBox" uniquement après avoir vérifié leur bon fonctionnement.
Lucas Pottersky
la source
Lorsque je fais cela pour une machine à clone lié, ils ne parviennent pas à démarrer
Nam G VU
1
Cela a fonctionné pour moi, même si je devais également mettre à jour les chemins d'accès à chaque image de disque dur et disque dur en modifiant le .VirtualBox\VirtualBox.xmlfichier et en effectuant une recherche / remplacement. De plus, je n'ai déplacé que les dossiers Machineset HardDisk, pas tous les fichiers contenus sous .VirtualBox, car c'est toute la configuration globale, la journalisation, etc.
Dave Andersen
4
Pour les utilisateurs de Mac OS X, VirtualBox.xmlse trouve à ~/Library/VirtualBox/VirtualBox.xml. Les machines virtuelles sont situées à ~/VirtualBox VMs.
Siu Ching Pong -Asuka Kenji -
2
Virtual Box 4.3.0+ a résolu la "Dernière chose importante", je n'avais même pas besoin de la fermer - instructions .
PCaetano
Vous pourriez peut-être ajouter la ligne de commande "version" aussi. 1) Lister les VM existantes via VBoxManage list vms. 2) À côté des noms des VM, entre accolades, leurs UUID sont référencés. Copiez celui qui vous intéresse. Les détails à ce sujet peuvent être récupérés via VBoxManage showvminfo UUID. 3) Annuler l'enregistrement de la VM d'intérêt via VBoxManage unregistervm UUID. 4) Déplacez le répertoire de la VM d'intérêt. 5) Enfin, enregistrez la machine via VBoxManage register NameOfVM.vbox- évidemment, où NameOfVM désigne le nom réel du .vboxfichier de machines virtuelles à enregistrer.
Nikos Alexandris
58

Je n'avais que deux machines virtuelles et j'ai découvert que je pouvais simplement changer l'emplacement de stockage par défaut de VirtualBox, puis cloner mes machines virtuelles. Les clones ont été créés dans le nouvel emplacement sur le nouveau HD où je les voulais. Tout est intact, instantanés et pas besoin de remapper l'emplacement des disques virtuels virtuels.

thomthom
la source
3
+1 Je pense que c'est la meilleure méthode. VirtualBox déplace tout pour vous dans un petit paquet bien rangé.
Dave Andersen
3
c'est la meilleure façon, aucune édition manuelle de cfg n'est requise
Bojan Bjelic Le
comment est-ce que tu fais ça???
FlipFloop
Cela devrait vraiment être la réponse acceptée
theV0ID
1
Avertissement: Le clonage ne produit pas une copie parfaite et peut entraîner le besoin de mettre à jour les licences des logiciels installés lorsque les identifiants d'ordinateur / de disque changent. Cela s'est produit lors du déplacement d'une ancienne copie de Quicken sur une machine virtuelle vers un nouveau disque.
MZB
36

La méthode la plus simple ne nécessite pas de supprimer vos machines virtuelles et de modifier leurs paramètres.

  1. Copiez le dossier de vos machines virtuelles Virtualbox sur un nouveau lecteur.

  2. Exécutez le gestionnaire de machines Virtual Box. Exécuter le fichier Media Manager -> Gestionnaire de média virtuel

    2a. Choisissez la VM pour déplacer le stockage. Cliquez sur le bouton Libérer , puis sur le bouton Supprimer . Dans la boîte de dialogue suivante, vous pouvez supprimer ou conserver le lecteur virtuel. Fermez le gestionnaire en vous laissant dans votre gestionnaire d’ordinateur Virtualbox.

  3. Sélectionnez la machine virtuelle pour laquelle vous venez de supprimer un support, cliquez sur le bouton Paramètres , cliquez sur la section Stockage . Ajoutez un contrôleur pour le support (SATA généralement), puis ajoutez un disque dur, choisissez un disque existant et sélectionnez le disque virtuel à votre nouvel emplacement.

  4. Répétez l'opération pour chaque machine que vous déplacez

Déclenchez votre machine virtuelle au nouvel emplacement pour vérification. Lors de votre prochaine visite dans Virtual Media Manager , survolez l'entrée de la machine virtuelle pour indiquer l'emplacement de stockage du disque virtuel .

Assurez-vous de changer vos dossiers d'instantanés pour qu'ils pointent vers le nouveau lecteur si vous les utilisez. Chaque machine a un paramètre de dossier de capture instantanée et VM Manager a un paramètre de dossier de machine par défaut dans Fichier -> Paramètres qui doit également être modifié.

En outre, je devais également modifier le chemin d'accès au fichier XML. Après cela, cela a fonctionné parfaitement.

NOTE: Les choses ont un peu changé depuis que cela a été écrit, voir la réponse de Rob. C'est extrêmement simple maintenant.

Fiasco Labs
la source
2
Je pense que c'est de loin le moyen le plus simple de le faire.
Peter Perháč
17

BEAUCOUP, BEAUCOUP plus simple. 1) déplacez vers le nouvel emplacement 2) Cliquez avec le bouton droit de la souris sur Supprimer du menu de la virtualbox. 3) Sélectionnez "Ajouter" dans le menu de la machine. 4) Recherchez l’icône bleue de 8 Ko qui comporte un type de "définition de la machine virtuelle". Sélectionnez-le et il sera ajouté à votre liste de virtualbox. double-cliquez sur la machine virtuelle et cela fonctionne.

Rob
la source
Plus simple encore, lorsque vous souhaitez ajouter les machines virtuelles à VirtualBox, cliquez simplement sur le *.vboxfichier dans son dossier.
Joel Mellon
2
Comment les choses ont changé en trois ans ... Le souhait avait été aussi facile à l'époque. Ajout d'une note à ma réponse pour qu'ils viennent voir celui-ci.
Fiasco Labs
1
Cela devrait vraiment être plus haut. J'ai tripoté et je ne pouvais pas le faire fonctionner. Supprimez simplement les éléments "inaccessibles" dans l'interface utilisateur, puis double-cliquez sur le fichier .vbox pour le ré-ajouter en utilisant le nouvel emplacement.
Wenbert
Ne fonctionne pas sur l'hôte Linux. Obtention de cette erreur: La session de la machine virtuelle a été fermée avant toute tentative de mise sous tension. Code de résultat: NS_ERROR_FAILURE (0x80004005) Composant: SessionMachine Interface: ISession {7844aa05-b02e-4cdd-a04f-ade4a762e6b7}
Max N
1
La partie "supprimer" de cette méthode est une mauvaise idée qui entraînera la perte de vos paramètres, mais ce n’est pas le cas. Cette méthode conserve tous vos paramètres et est la plus simple de toutes les méthodes que j'ai essayées. Cela fonctionnait sur un hôte Windows 10 avec des invités Windows 7 et Windows Sever 2016.
Night Owl
13

Sur Mac, éditez les chemins dans ce fichier:

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

C'était facile, hop!

pcharlesleddy
la source
3
Il utilise Windows et ne veut pas non plus éditer VirtualBox.xml.
ChrisN
4
Cela m'a été utile, cependant, puisque cette question est toujours acceptable si vous êtes sur mac.
NReilingh
Je suis un utilisateur de Mac et Google m'a atterri ici et cette solution est la plus simple qui soit, parfaitement logique et qui fonctionne pour moi :)
Mohit Singh
Je suis sur Linux et j'apprécie le son de cette réponse, mais l'avertissement qui se trouve en haut du fichier m'a déplu. Recommanderiez-vous toujours de modifier le XML directement? L’avertissement dit: ** NE MODIFIEZ PAS CE FICHIER. Si vous apportez des modifications à ce fichier alors qu'une application liée à VirtualBox est en cours d'exécution, vos modifications seront écrasées ultérieurement, sans prendre effet. Utilisez VBoxManage ou l'interface graphique de VirtualBox Manager pour apporter des modifications. **
craq
11

Après avoir passé toute une journée sur ce problème (en utilisant Virtualbox 5.0.12 sur Arch Linux), je l’ai finalement résolu comme le suggère la réponse de thomthom. Pour ceux qui ne sont pas sûrs de la procédure exacte, la commande qui clone une machine entière (y compris les instantanés) est la suivante:

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

Obtenir le nom de la machine virtuelle avec

VBoxManage list vms

Si nécessaire, indiquez chemin et nom.

Enfin, vérifiez si tout va bien et retirez l'original.

C'est tout, vraiment. Pas besoin de s'embêter avec des fichiers XML ou un éditeur hexadécimal. Pas besoin d'utiliser une interface graphique, non plus.

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

Michael P
la source
C'était la seule réponse qui a fonctionné pour moi. Devrait être plus haut.
Max N
2
VM_to_cloneest l'UUID ou le nom de la machine virtuelle. Avec la commande donnée (en utilisant un UUID), un répertoire a été créé dans /new/path/_<UUID>_ Cloneet les fichiers qui le contiennent sont également utilisés _<UUID>_ Clonecomme nom. Pour avoir explicitement un nom plus sympathique, utilisez le --name "Your preferred name here"drapeau.
Rob W
... et pour supprimer la machine virtuelle d'origine via la CLI, VBoxManage unregistervm UUID(UUID de la machine virtuelle que vous avez obtenu VBoxManage list vms, n'utilisez pas le nom de la machine virtuelle, car si vous --nameconservez le nom d'origine, vous disposez de plusieurs machines virtuelles portant le même nom)
Rob W
Avertissement: Le clonage ne produit pas une copie parfaite et peut entraîner le besoin de mettre à jour les licences des logiciels installés lorsque les identifiants d'ordinateur / de disque changent. Cela s'est produit lors du déplacement d'une ancienne copie de Quicken sur une machine virtuelle vers un nouveau disque.
MZB
Il semble y avoir une commande dédiée maintenant, de toute façon: virtualbox.org/manual/ch08.html#vboxmanage-movevm
Michael P
4

Pour faire la même chose que dans Lucas Pottersky, répondez par la ligne de commande (sous Windows, remplacez vboxmanagepar VBoxManage.exe):

  1. Répertoriez toutes les machines virtuelles:

    vboxmanage list vms
    

    ou seulement en cours d'exécution:

    vboxmanage list runningvms
    

    qui, pour chaque machine, affiche le nom et l’UUID.

    Suivez les étapes ci-dessous pour chaque machine à déplacer.

  2. Arrête gracieusement le:

    vboxmanage controlvm UUID acpipowerbutton
    
  3. Se désinscrire:

    vboxmanage unregistervm UUID
    
  4. Déplacez le dossier de la machine virtuelle vers le nouvel emplacement.

  5. Enregistrez-le en indiquant le chemin d'accès au .vboxfichier:

    vboxmanage registervm /path/to/machine.vbox
    
mixel
la source
2

Cela a également fonctionné pour moi avec la version MacOS de VirtualBox (version 4.1.12). J'ai attendu 5 à 10 secondes que VirtualBox se ferme avant de le relancer. J'ai regardé dans Activity Monitor pour m'assurer que VBoxSVC s'était arrêté correctement.

Si vous ne le faites pas, vous obtiendrez une erreur ressemblant à quelque chose comme ceci (je copie et colle le message d'erreur de quelqu'un d'autre qui provient de Windows). Si vous obtenez cette erreur, c'est simplement parce que vous n'avez pas quitté VirtualBox ou attendu assez longtemps pour que VBoxSVC se ferme.

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}
avec frites2
la source
2

Sous OS X avec VirtualBox v4.3.14, il me suffisait de double-cliquer sur le .vboxfichier à partir du nouvel emplacement pour ouvrir VirtualBox et l'ajouter à la liste des machines virtuelles disponibles.

Tyson Phalp
la source
S'il vous plaît ne pas ajouter "merci" comme une réponse. Au lieu de cela, votez les réponses que vous trouvez utiles.
Scott
Ma réponse n'est pas un "merci". J'ai modifié le libellé pour rendre cela plus évident. Merci.
Tyson Phalp
2

Il existe un emplacement de stockage par défaut dans les paramètres sous VirtualBox: http://mattvelic.com/default-vm-location/

Maintenant mort. Wayback Machine a le contenu:

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

... consultez les préférences dans le menu Fichier. Voir! Le premier élément de l'onglet Général est Dossier par défaut. http://web.archive.org/web/20131116130725im_/http://54.225.211.105/wp-content/uploads/2012/11/VB_Preferences.png J'ai modifié l'emplacement pour qu'il pointe vers mon disque de stockage et remanais rapidement mon VM. Cette fois, VirtualBox a créé les fichiers de la machine et le VDI au bon emplacement. La vraie leçon ici est que parfois la solution n’est pas forcément technique. Je pense qu'en tant que professionnels de l'informatique, nous avons tendance à penser que la solution d'un problème sera compliquée. Gardez les yeux ouverts pour les solutions évidentes!

Rebecca
la source
Ce lien est maintenant mort. Essayez de ne pas poster de liens comme réponses. Quand ils disparaissent morts, SU se retrouve avec un fouillis à nettoyer.
mrtsherman
mis à jour avec le contenu de archive.org
Rebecca
1

Je ne pense pas que ce soit possible.

Vous pouvez déplacer le VDI vers le nouvel emplacement, mais je ne pense pas que vous puissiez éviter les modifications XML. Alternativement (mais c'est en fait la même chose que l'édition XML), créer une nouvelle machine virtuelle avec l'interface graphique et choisir l'image déplacée en tant que disque conviendrait-il à vos besoins?

M'vy
la source
1
J'ai jeté un deuxième coup d'oeil au XML et c'est en fait très simple. Créer une nouvelle machine n’est pas une bonne chose car je voudrais conserver mes paramètres (je ne me souviens pas de ce que j’ai changé, cela peut être complètement sans importance ou pas).
Maaartinus
1

J'ai essayé la méthode d'origine (supprimer le VDI, joindre la nouvelle copie), j'ai reçu le message que l'ancienne existe toujours et je ne pouvais pas joindre la nouvelle copie même lorsque j'ai redémarré le système d'exploitation (sur Mac OS X El Capitan).

Le correctif était dans menu / Fichier / Gestionnaire de média virtuel, supprimez le VDI existant. Cela fonctionne même s'il y a des instantanés. supprimez simplement tous les VDI de capture instantanée dans l’ordre inverse. Pas besoin de fermer et de rouvrir VirtualBox.

marty39
la source
0

Je n'ai jamais utilisé virtualbox sur Windows, mais sous Ubuntu, vous déplacez le VDI et dans l'interface graphique de Virtualbox, cliquez avec le bouton droit de la souris sur la VM et utilisez le menu de configuration -> Stockage où vous pouvez modifier la localisation de VDI en fonction du déplacement du fichier. En ce qui concerne la définition des autres fichiers machine, vous les déplacez et, dans l'interface graphique, allez dans Préférences et modifiez la position du répertoire machines par défaut dans le répertoire que vous avez déplacé.

laurent
la source
0

J'utilise cette méthode:

  1. Dans l’interface graphique de VirtualBox, sélectionnez votre machine virtuelle et retirez le disque dur connecté.
  2. Copiez le fichier (c.-à-d. Vdi) dans le nouvel emplacement.
  3. Générez un nouvel UUID pour le .vdi dans le nouvel emplacement à l'aide de la commande vboxmanage internalcommands sethduuid "mon chemin vers myhdd.vdi" 6912BF7F-13BB-4E70-A2CA-C92300FEC3DC

    (Dans l'exemple précédent, utilisez votre propre UUID ou ne l'ajoutez pas du tout: la commande en générera un automatiquement. De plus, si vous omettez cette étape, lors de l'ajout du fichier .vdi à partir du nouvel emplacement, vous obtiendrez une erreur indiquant que l'UUID existe déjà. ).

  4. Revenons maintenant à l'interface graphique de VirtualBox, sélectionnez votre machine virtuelle et dans Setttings / Storage, connectez le disque dur HD (fichier .vdi) à partir de son nouvel emplacement.

et fait.

Fernando Gonzalez Sanchez
la source
-1

Dans Oracle VM VirtualBox (testé avec la version 6.0.4), arrêtez simplement votre VM -> cliquez avec le bouton droit de la souris sur la VM dans VirtualBox Manager -> cliquez sur "Déplacer ..." -> choisissez le nouveau répertoire. C'est ça!

Silvio Jäger
la source
@ Moreaki: Au fait, “lisibilité” (et “lisible”) est orthographié sans “D”.
Scott