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

  1. lancez un terminal ;
  2. exécutez une commande cd suivie du nom du répertoire contenant le disque virtuel à cloner – par exemple cd /home/bernard/.VirtualBox/HardDisks/ ;
  3. exécutez la commande cp hd.vdi hd-clone.vdi pour copier le disque virtuel hd.vdi sous le nom hd-clone.vdi ;
  4. exécutez la commande VBoxManage internalcommands setvdiuuid hd-clone.vdi pour affecter un nouvel UUID au disque virtuel hd-clone.vdi.

Clonage sous Windows

  1. lancez une invite de commandes ;
  2. exécutez une commande cd suivie du nom de répertoire contenant le disque virtuel à cloner – par exemple cd "C:\Documents and Settings\Bernard\.VirtualBox\HardDisks" ;
  3. exécutez la commande copy hd.vdi hd-clone.vdi pour copier le disque virtuel hd.vdi sous le nom hd-clone.vdi ;
  4. exécutez la commande "C:\Program Files\Sun\xVM VirtualBox\VBoxManage" internalcommands setvdiuuid hd-clone.vdi pour 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.

À lire également...

  1.  Lire les 19 commentaires

  2. Ou on utilise <>
    (Fonctionne avec Virtualbox 2.0.4_OSE)
    De rien.

    Par ILHAN le 7 mai 2009

  3. VBoxManage clonevdi /chemin/de/l’/imagesource /chemin/de/l’/imagedesortie

    Par ILHAN le 7 mai 2009

  4. 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

  5. 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

  6. Juste un petit message pour vous remercier pour cette astuce qui m’a bien dépanné !

    Par Luis Mariano le 7 mai 2009

  7. Salut!
    VBoxManage clonehd a.vdi b.vdi n’est-il pas plus simple? :-)
    À plus.

    Par Marc Millien le 7 mai 2009

  8. Salut!

    La nouvelle commande, à ma connaissance est:
    VBoxManage clonehd disque_virtuel.vdi disque_virtuel_clone.vdi

    À plus.

    Par Marco le 7 mai 2009

  9. 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

  10. 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

  11. 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

  12. 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

  13. 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

  14. 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

  15. Quelle est l’avantage de cloner VirtualBbox ?
    Merci pour vos réponses
    Thierry

    Par Thierry le 8 mai 2009

  16. 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.vdi

    Le 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

  17. 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

  18. Merci Bernard,

    Par Thierry le 9 mai 2009

  19. 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

  20. 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

 Poster un commentaire