Cloner facilement un disque VirtualBox
Pour cloner un disque virtuel (.VDI) on ne peut pas se contenter de faire une simple copie de fichier.
La raison en est que le Gestionnaire de supports virtuels refuse d’enregistrer un disque virtuel existant si son UUID correspond à celui d’un disque virtuel déjà enregistré.
Pour ce faire, VirtualBox est livré avec l’utilitaire VBoxManage qui, lorsqu’il est utilisé avec l’option clonehd ou clonevdi, permet de cloner un disque virtuel en lui associant un nouvel UUID.
Un défaut dans le version 2.2.2 de VirtualBox fait que cette possibilité ne fonctionne plus correctement.
Le problème est donc de savoir comment modifier l’UUID d’un disque virtuel que l’on vient de copier pour que le Gestionnaire de supports virtuels accepte de l’enregistrer.
C’est fort heureusement possible et c’est même très simple.
Voici donc une procédure qui m’a été inspirée par la lecture de l’article How To: Properly Backup a VirtualBox Machine (.VDI)
Clonage sous Ubuntu
- lancez un terminal ;
- exécutez une commande
cdsuivie du nom du répertoire contenant le disque virtuel à cloner – par exemplecd /home/bernard/.VirtualBox/HardDisks/; - exécutez la commande
cp hd.vdi hd-clone.vdipour copier le disque virtuel hd.vdi sous le nom hd-clone.vdi ; - exécutez la commande
VBoxManage internalcommands setvdiuuid hd-clone.vdipour affecter un nouvel UUID au disque virtuel hd-clone.vdi.
Clonage sous Windows
- lancez une invite de commandes ;
- exécutez une commande
cdsuivie du nom de répertoire contenant le disque virtuel à cloner – par exemplecd "C:\Documents and Settings\Bernard\.VirtualBox\HardDisks"; - exécutez la commande
copy hd.vdi hd-clone.vdipour copier le disque virtuel hd.vdi sous le nom hd-clone.vdi ; - exécutez la commande
"C:\Program Files\Sun\xVM VirtualBox\VBoxManage" internalcommands setvdiuuid hd-clone.vdipour affecter un nouvel UUID au disque virtuel hd-clone.vdi.
Vous pouvez maintenant enregistrer le disque virtuel hd-clone.vdi en utilisant le Gestionnaire de supports virtuels.
Addendum : Suite à la rédaction de cet article, compte-tenu des commentaires reçus et des recherches complémentaires effectuées, il est apparu que l’option clonehd ou clonevdi fonctionnait bien à condition que le disque virtuel à cloner soit désigné par son chemin d’accès complet. Pour plus de détails, je vous suggère de lire les messages ci-après.



Ou on utilise <>
(Fonctionne avec Virtualbox 2.0.4_OSE)
De rien.
Par ILHAN le 7 mai 2009
VBoxManage clonevdi /chemin/de/l’/imagesource /chemin/de/l’/imagedesortie
Par ILHAN le 7 mai 2009
Bonjour ILHAN,
Si j’ai donné cette procédure c’est parce que l’option clonevdi ne fonctionne plus.
Voici par exemple le résultat de la commande
VBoxManage clonevdi hd.vdi hd-clone.vdi:VirtualBox Command Line Management Interface Version 2.2.2(C) 2005-2009 Sun Microsystems, Inc.
All rights reserved.
ERROR: Cannot register the hard disk '/media/disk/vb/xp/hd.vdi' with UUID {6734c650-be1f-47da-95ff-888ff21ff020} because a hard disk '/media/disk/vb/xp/hd.vdi' with UUID {6734c650-be1f-47da-95ff-888ff21ff020} already exists in the media registry ('/home/bernard/.VirtualBox/VirtualBox.xml')
Details: code NS_ERROR_INVALID_ARG (0x80070057), component VirtualBox, interface IVirtualBox, callee nsISupports
Context: "OpenHardDisk(Bstr(szFilenameAbs), AccessMode_ReadWrite, srcDisk.asOutParam())" at line 603 of file VBoxManageDisk.cpp
Par Bernard le 7 mai 2009
Ah d’accord, autant pour moi, je n’ai pas testé cette version.
(par contre le fait que cette commande ne marche plus n’est pas un bon point pour cette version, meme si c’est la seule qui peut héberger du jaunty à ce que j’ai compris)
Par ILHAN le 7 mai 2009
Juste un petit message pour vous remercier pour cette astuce qui m’a bien dépanné !
Par Luis Mariano le 7 mai 2009
Salut!
VBoxManage clonehd a.vdi b.vdi n’est-il pas plus simple? :-)
À plus.
Par Marc Millien le 7 mai 2009
Salut!
La nouvelle commande, à ma connaissance est:
VBoxManage clonehd disque_virtuel.vdi disque_virtuel_clone.vdi
À plus.
Par Marco le 7 mai 2009
Pour les amateurs de l’option clonehd, je précise que son comportement est le même que celui de l’option clonevdi, c’est à dire que cela ne fonctionne pas dans les conditions indiquées, à savoir pour cloner un disque virtuel et l’utiliser sous le même compte utilisateur que l’original.
Par Bernard le 7 mai 2009
Salut,
Je pense aussi qu’il vaut mieux utiliser clonehd/vdi.
J’utilise quotidiennement VirtualBox (en 3 versions (2.1.4 ; 2.2.0 ; 2.2.2)) , et à ce jour je n’ai jamais eu de problème avec la fonction clonevdi, que ça soit en utilisant le fichier pour le même utilisateur ou pour un autre.
A+
Par MulX le 7 mai 2009
Salut,
clonehd marche très bien. Je viens d’essayer et je peux très bien utiliser les deux images sous le même compte.
Par Gerald Rochat le 8 mai 2009
Les remarques concernant le fonctionnement correct de l’option clonehd et clonevdi sont intéressantes.
J’ai proposé une solution alternative car elles ne fonctionnaient plus sur ma machine.
Comme je suis preneur d’une solution simple et fonctionnelle, j’aimerais bien comprendre pourquoi je reçois un message m’indiquant qu’un disque virtuel ne peut pas être cloné parcequ’il est déjà enregistré dans le registre des supports de mon compte utilisateur, en l’occurence
/home/bernard/.VirtualBox/VirtualBox.xml.Qui a une explication ?
Par Bernard le 8 mai 2009
Hello, voici la commande que j’utilise pour cloner mes disques virtuels:
VBoxManage clonehd -format VDI
(avec VirtualBox 2.1.4_OSE)
Par Sam le 8 mai 2009
Raah ce blog n’encode pas le html, voici la correction du post précédent:
VBoxManage clonehd filename outputfile -format VDI
(remplacer filename et outputfile)
Par Sam le 8 mai 2009
Quelle est l’avantage de cloner VirtualBbox ?
Merci pour vos réponses
Thierry
Par Thierry le 8 mai 2009
Pour clarifier la situation, j’ai regardé ce que je pouvais trouver de concret sur le site de VirtualBox.
clonehd vs clonevdi
La documentation indique que clonevdi est supportée pour assurer la compatibilité avec d’anciennes versions, elle est maintenant redirigée vers clonehd.
clonehd documentation is incomplete
Un ticket de rapport d’incident indique que pour fonctionner correctement, l’option clonehd doit être accompagnée du chemin d’accès complet correspondant au disque virtuel à cloner – voir http://www.virtualbox.org/ticket/3888 pour plus d’informations.
Pour tester j’ai exécuté la commande
VBoxManage clonehd /media/disk/vb/xp/hd.vdi hd-clone.vdiLe disque à bien été cloné comme l’indique le rapport ci-dessous :
VirtualBox Command Line Management Interface Version 2.2.2(C) 2005-2009 Sun Microsystems, Inc.
All rights reserved.
0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
Clone hard disk created in format 'VDI'. UUID: dcb829db-7f58-4ba9-a405-bae66c1c1b53
On notera que le fichier cloné est automatiquement placé dans le répertoire de stockage par défaut des disques virtuels, dans mon cas le chemin d’accès complet au disque virtuel créé est
/home/bernard/.VirtualBox/HardDisks/hd-clone.vdi.Par Bernard le 8 mai 2009
Pour répondre à Thierry, cloner un disque virtuel permet de créer une nouvelle machine virtuelle basée sur un disque virtuel existant, sans avoir besoin de réinstaller un système complet sur un nouveau disque virtuel vierge.
Par Bernard le 8 mai 2009
Merci Bernard,
Par Thierry le 9 mai 2009
SUper ! bravo ça m’a bien dépanné ! c’est pas du tout aussi bien que dans vmware ! on peut pas cloner facilement mais avec ta méthode c’est cooooool
Par huleux le 23 mai 2009
On peu directement utiliser la commande appropriée sur windows
(testé sur seven avec virtualbox 3.0.2)
c:\program files\sun\xvm virtualbox\vboxmanage.exe clonehd
Par raphael le 25 juil 2009