297 votes

Quelle est la méthode recommandée pour déplacer une VM VirtualBox vers un autre ordinateur ?

J'utilise VirtualBox 4.1.x sur ma machine Ubuntu et j'ai configuré plusieurs machines virtuelles. Comme il existe plusieurs façons de déplacer une machine virtuelle dans VirtualBox vers un autre ordinateur, je me demandais quelle était la méthode recommandée :

  1. Utilisez l'"Utilitaire d'importation/exportation".
  2. Copiez l'intégralité du dossier de la machine virtuelle, contenant le .vdi y .vbox des fichiers.
  3. Clonez le VDI à l'aide de "Virtual Media Manager", puis recréez une VM sur la machine cible en utilisant le VDI cloné comme disque dur.

J'ai utilisé avec succès le 1ère méthode plusieurs fois et cela a toujours fonctionné. Le problème est qu'après l'exportation et l'importation, l'image disque est transformée en VMDK et non plus en VDI !

Le site 2ème méthode est probablement le plus simple, mais je ne suis pas sûr que la simple copie des fichiers fonctionnera ou non sur la machine cible. En faisant des recherches sur cette méthode, j'ai trouvé des personnes qui avaient des problèmes et qui ont dû modifier le fichier VirtualBox.xml pour les résoudre !

Enfin, il y a le 3ème méthode mais cela nécessite un travail supplémentaire pour créer une VM similaire à la configuration originale de la VM, ce qui n'est pas souhaitable.

Il ressort clairement de l'explication ci-dessus que la méthode que je souhaite utiliser est la deuxième, mais j'ai besoin de l'avis d'un expert pour savoir si elle fonctionne ou non. Je ne veux pas qu'une édition XML se mette en travers de mon chemin !

Quelle est la meilleure méthode pour transférer en toute sécurité mes VM sur un autre ordinateur avec VirtualBox ?

1voto

peterjtk Points 131

La 4ème voie

Dans VirtualBOX :

  1. Éteindre la VM
  2. Faites un clic droit et supprimez la VM (ne supprimez pas les fichiers).
  3. Allez dans le fichier>Virtual Media Manager et supprimez le .vdi.
  4. Allez dans Fichier>Préférences>Général et définissez le dossier par défaut de la machine au nouvel emplacement.
  5. Créez une nouvelle VM en utilisant le mode expert pour créer la VM sans disque dur.

Dans l'explorateur de fichiers :

  1. Localisez le fichier .vdi et copiez-le.
  2. Allez dans le nouveau dossier de la machine par défaut, il y aura un dossier VM à l'intérieur.
  3. Collez le fichier .vdi dans le dossier de la nouvelle VM.

Retour dans VirtualBOX :

  1. Cliquez à droite sur la VM et ouvrez les paramètres
  2. Allez dans Stockage>Contrôleur : SATA et ajoutez un disque dur, cliquez sur choisir un disque existant. 11.Choisissez le fichier .vdi dans le dossier de la nouvelle VM.

Note : Si la méthode 2 interrompt votre installation de VirtualBOX, allez à C:\Users\.VirtualBox et supprimer VirtualBox.xml et renommer VirtualBox.xml-prev en VirtualBox.xml

0voto

zar Points 1521

J'ai également utilisé la méthode 2 pour déplacer ma machine virtuelle et je n'ai pas eu à faire de changement dans un fichier XML mais j'ai eu quelques erreurs avec l'USB et le partage de fichiers et ci-dessous comment je les ai corrigées avec le processus :

  1. Copiez la machine virtuelle de l'ancien vers le nouveau PC. Les fichiers de la machine virtuelle sont différents de la machine virtuelle Oracle elle-même. Ces fichiers se trouvent généralement à c : \users\\VirtualBox VMs\ . J'ai pris l'ensemble VirtualBox VMs\ et l'a copié à un endroit similaire sur le nouveau PC. Cela copie toutes les machines virtuelles que j'avais sur le PC d'origine.

  2. Maintenant, sur le nouveau PC, lancez Virtual Box et allez dans Menu > Machine > Ajouter et sélectionnez le fichier .vbox dans le dossier copié. C'est tout.

  3. Maintenant, lorsque j'exécute la machine virtuelle sur le nouveau PC, j'ai obtenu une erreur lors du démarrage :

enter image description here

  1. Je ne sais pas pourquoi le contrôleur USB ne fonctionnait pas car il fonctionnait aussi sur l'ordinateur d'origine. Je me suis lancé et j'ai installé Pack d'extension pour VirtualBox

  2. Cette installation était un peu bizarre car le téléchargement de l'installation n'était pas un fichier exécutable. J'ai cliqué sur Oracle_VM_VirtualBox_Extension_Pack-5.1.4-110228.vbox-extpack et sélectionné 'Select a program from a list of Installed programs' et ensuite sélectionné Oracel virtualbox et cela a installé l'extension. Cela a réglé le problème, mais une autre solution moins souhaitable est de désactiver l'usb.

  3. Si vous aviez des dossiers partagés dans la VM d'origine, ils peuvent être différents et vous obtiendrez une erreur. Vérifiez-les dans Paramètres >> Dossier partagé et supprimez ceux qui sont cassés. Un message d'erreur ressemblera à

this .

C'est tout.

-2voto

Laura Points 7

Zar, tout d'abord... ne déplacez jamais une machine qui est dans un état sauvegardé, avant de la déplacer vous devez arrêter l'invité, pas seulement sauvegarder l'état.

Assurez-vous également que vous utilisez la même version de VirtualBOX sur les deux hôtes, mais pas seulement la version de VirtualBOX, également la version du pack d'extension... ou au moins le nouvel hôte a une version plus élevée, mais jamais une version inférieure sur l'un de ces deux.

Et enfin, j'ai appris à la dure, à supprimer la configuration du dossier SHARED sur VirtualBOX avant de déplacer la machine, puis à la recréer de manière correcte... très important lorsque les hôtes sont des OS différents (hôtes Windows / Linux).

Et juste en passant... j'utilise toujours, toujours, des fichiers VDI de disque dur inmutables pour l'OS ainsi que pour les VDI de données (de cette façon, le même VDI de données peut être utilisé pour plus d'un invité), spécialement pour les 4GiB pagefile.sys.

Cette dernière partie, réutiliser un fichier VDI inmutable rend les choses un peu plus difficiles, VirtualBOX a un BIG BUG.

Pour voir le Bug en action :

  • Créez un VDI inmutable (comme celui que j'utilise pour pagefile.sys).
  • Créer deux ou trois VM's sur VirtualBOX
  • Déplacez l'un d'entre eux en haut de la liste (pour éviter d'endommager l'un des vôtres).
  • Sauvegardez les fichiers .vbox de chacune des machines que vous avez créées (pour les comparer après l'apparition du BUG).
  • Attachez cette VDI inmutable à plusieurs de ces machines (sauf celle en haut de la liste).
  • Maintenant, voyez le .vbox de la machine qui est en haut de la liste.

Cette machine a été éditée, elle a des références aux autres machines VDI inmutables.

Donc le BUG est : Editer une machine en ajoutant un VDI inmutable qui est utilisé par une autre affecte la machine en haut de la liste.

Pourquoi diable je réutilise le même VDI de 4GiB sur toutes les machines Windows ? Facile, c'est un disque MBR avec une partition FAT32 où je place pagefile.sys, puisqu'il est inmutable, toutes les machines virtuelles vont créer un fichier dans leur dossier snapshot où elles stockent les changements, et qui sera perdu au prochain démarrage, donc je n'ai pas besoin de 4GiB pour chaque invité stocké sur le disque hôte, juste un seul... de cette façon, j'économise beaucoup de Go puisque j'ai plus de 20 Windows différents pour tester les applications que je développe pour mon propre compte, toutes les combinaisons de (XP, Vista, 7, 8, 8.1, 10)*(32Bits, 64Bits) * (tel quel lors de la première installation, après chaque ServicePack, après la mise à jour complète de Windows), j'ai beaucoup, beaucoup d'invités... donc sur chacun d'eux je partage le VDI inmutable de 4GiB pour la ram virtuelle (pagefile.sys).

Et si vous laissez le BUG aller plus loin, essayez de déplacer une de ces machines vers un autre hôte VirtualBOX (rappelez-vous qu'elles ne sont que des machines virtuelles avec une configuration sur elles et aucun invité encore installé sur elles), vous verrez que VirtualBox ne vous permet pas de les ajouter car certaines VDI sont manquantes (c'est FAUX et VRAI, c'est que cette première machine détient les références à ces VDI au lieu d'être sur la bonne machine).

Maintenant, comparez les fichiers .VBOX de chacun d'entre eux avec le BackUp précédent... remarquez comment l'un d'entre eux est modifié de manière incorrecte... oui, c'est celui qui se trouve en haut de la liste.

Eh bien, ce problème a été signalé à VirtualBOX il y a quelques années, et ils n'ont toujours pas réussi à le résoudre... et il cause beaucoup, beaucoup de problèmes.

De plus, si vous déplacez le premier de la liste des machines virtuelles vers une position plus basse, fermez VirtualBox et relancez-le... il vous dira que certaines machines sont endommagées et ne peuvent pas être démarrées... oui le premier de la liste doit être traité sous une forme différente si vous ne voulez pas avoir beaucoup d'ennuis.

C'est un très mauvais BUG qui m'a pris beaucoup de temps pour le découvrir (il y a quelques années) et je l'ai appris à la dure !

Je l'avais surmonté en ayant une machine que j'avais appelée :

  • Common Inmutable Disks

Il a une configuration vide et un seul VDI, oui, vous avez raison, vous l'avez deviné, le VDI inmutable que je partage pour toutes les autres machines virtuelles.

Eh bien, lorsque j'ouvre le fichier .VBOX, je vois à l'intérieur de celui-ci beaucoup de lignes sur l'écran d'accueil. <MediaRegistry> <HardDisks> une pour chaque machine où j'utilise cette VDI inmutable... juste à titre d'exemple (je supprime les données privées) :

<MediaRegistry>
  <HardDisks>
    <HardDisk uuid="...UUID..." location="D:\VDIs\_Virtual_Memory_.vdi" format="VDI" type="Immutable">
      <HardDisk uuid="{...UUID...}" location="Snapshots\{...UUID...}.vdi" format="VDI" autoReset="true"/>
      <HardDisk uuid="{...UUID...}" location="D:\VMs\Windows001 ... // This belongs to other virtual Machine
      <HardDisk uuid="{...UUID...}" location="D:\VMs\Windows002 ... // This belongs to other virtual Machine
      <HardDisk uuid="{...UUID...}" location="D:\VMs\Windows003 ... // This belongs to other virtual Machine
      <HardDisk uuid="{...UUID...}" location="D:\VMs\Windows004 ... // This belongs to other virtual Machine
      <HardDisk uuid="{...UUID...}" location="D:\VMs\Windows005 ... // This belongs to other virtual Machine
      <HardDisk uuid="{...UUID...}" location="D:\VMs\Windows006 ... // This belongs to other virtual Machine
      <HardDisk uuid="{...UUID...}" location="D:\VMs\Windows007 ... // This belongs to other virtual Machine
      <HardDisk uuid="{...UUID...}" location="D:\VMs\Windows008 ... // This belongs to other virtual Machine
      <HardDisk uuid="{...UUID...}" location="D:\VMs\Windows009 ... // This belongs to other virtual Machine
      <HardDisk uuid="{...UUID...}" location="D:\VMs\Windows010 ... // This belongs to other virtual Machine
      <HardDisk uuid="{...UUID...}" location="D:\VMs\Windows011 ... // This belongs to other virtual Machine
      <HardDisk uuid="{...UUID...}" location="D:\VMs\Windows012 ... // This belongs to other virtual Machine
      <HardDisk uuid="{...UUID...}" location="D:\VMs\Windows013 ... // This belongs to other virtual Machine
      ... and so on ...  // This belongs to other virtual Machine
    </HardDisk>
  </HardDisks>
</MediaRegistry>

Joli BUG, non résolu depuis des années.

Eh bien, pour déplacer de telles machines ... vous devez éditer manuellement les fichiers .VBOX, pour mettre toutes les références de ces disques sur le nouvel hôte sur la première machine (celle qui est en haut de la liste) avant d'ajouter les fichiers .VBOX à la liste, de sorte que lors de leur ajout VirtualBOX a les références aux VDI manquants (manques causés par le grand BUG).

Le problème se produit parce que chaque fois que vous connectez un VDI qui est utilisé sur une autre machine, VirtualBOX met à jour les fichiers .VBOX des deux machines (celui qui appartient à la machine que vous utilisez) et le premier de la liste.

Je ne suis pas totalement sûr de ce qui se passerait lorsque sur la liste, la première n'a pas de VDI aussi commune attachée à elle... mieux vaut ne pas essayer, vu ce que je vois.

La migration vers un autre HOST est donc beaucoup plus compliquée qu'il n'y paraît à cause d'une très mauvaise implémentation de la structure interne des fichiers .VBOX et à cause de très gros BUG lorsque VirtualBOX les édite.

Échec :

  • La structure interne (XML) dépend de l'HÔTE (Windows ou Linux).
  • Editer une machine peut en modifier une autre, et pas seulement celle qui est éditée.
  • ... quoi d'autre ?

J'ai toujours migré les machines de cette manière (et je n'ai eu aucun problème, jamais) :

  1. Prendre note de la liste de toutes les machines (ordre, regroupement, etc.)
  2. Prenez note du premier de la liste (toute sa configuration)
  3. Prenez note de toutes les propriétés des machines que je veux déplacer vers un autre hôte.
  4. Copier les fichiers .vbox en fichiers .txt (celui en haut de la liste + toutes les machines que je veux migrer).
  5. Recréer toutes les machines (et en avoir une spéciale en haut de la liste) dans VirtualBox sur le nouvel hôte.
  6. Fermer VirtualBox sur le nouvel hôte
  7. Diff compare l'ancien fichier .txt avec le nouveau fichier .vbox et copie de .txt à .vbox certaines parties de manière humaine, pas seulement par copier/coller.
  8. Ouvrez VirtualBox et attachez tous les VDIs dans le bon ordre.
  9. Fermer à nouveau VirtualBox sur le nouvel hôte
  10. Comparer en différé les anciens fichiers .txt avec les nouveaux fichiers .vbox et 'corriger' de .txt à .vbox certaines parties de manière humaine, pas seulement par copier/coller.

Tout le reste (le dossier des instantanés et les fichiers VDI), je les copie de la manière normale (copier/coller du système de fichiers).

Tout ce dur travail manuel est causé par le gros BUG VirtualBox : Il édite / modifie une machine qui n'a pas été modifiée lorsque vous attachez un VDI inmutable qui est utilisé sur plus d'une machine, sinon un simple copier/coller du fichier .VBOX serait suffisant (après avoir fixé les chemins des dossiers partagés, etc).

-2voto

Thia Zol Points 1

Copier le dossier contenant la machine vers la destination, puis à partir du menu : "Machine" ---> "Ajouter", et ensuite choisissez le fichier vbox, PAS le fichier vdi. Pour moi, cela s'est passé sans problème. Je ne sais pas si j'ai eu de la chance, ou si c'est censé fonctionner de cette façon.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X