Clonare un file .vdi – aka Virtualbox Disk Image

Per duplicare una macchina vmWare è tutto semplice, si copiano i file, li si rinomina e si ha una macchina clonata (in realtà VBox e VMWare si comportano in modo identico, solo c’è qualche automatismo in più che nasconde il tutto 🙂 ). In Virtualbox non è tutto così semplice, una copia FISICA di un file di immagine disco ha uno stesso identificatore univoco (come se fosse un replica, per chi è del mondo Notes 🙂 ), che ovviamente dà parecchio fastidio a Virtualbox se tentiamo di registrare due dischi con lo stesso UUID. Per risolvere questo problema (e clonare velocemente le macchine) ci viene messo a disposizione un ottimo tool a linea di comando:

$ VBoxManage clonevdi /path/assoluto/al/file/nomefileorig.vdi /path/assoluto/alla/destinazione/nomefilecopia.vdi

Update: visti i commenti sui path relativi che sono duri a digerire, e che qualcuno ancora viene a lurkare da queste parti, modificato il comando specificando di usare i path assoluti.

Annunci
    • ilbat
    • 22 giugno 2007

    Giusto giusto quello che mi serviva, stasera si clona a gogo ;D

  1. Asd, ero pronto a scommettere che il commento fosse il tuo 😛

    • Cristian Malatesta
    • 27 settembre 2007

    Ciao bella mini mini guida ^_^ (= suggerimento)…

    Siccome faccio larghissimo uso di virtualbox (x testare OS e per prendere domestichezza prima di eseguire le kose su pc reali), mi toglieresti una curiosità? E’ possibile convertire un .vdi in disco .iso da copiare poi su CD (magari pure bootabile)…

    E’ solo x curiosità… in qnto potrebbe convertire potenzialmente un OS in una liveCD… sarebbe carina come kosa ^_^…

    Grazie della risposta

  2. @Cristian
    Eh, vado più per conoscenze che per esperienza diretta. Personalmente credo di no, almeno in parte. I liveCD sono qualcosa di molto particolare il cui funzionamento è totalmente in RAM, potenzialmente molto differente. I software di virtualizzazzione si pongono come layer tra il guest e l’host, in pratica ciò che dovrebbe essere una chiamata diretta all’HW del guest per esempio diventa un chiamata software per l’host fatta dal software di virtualizzazzione (in alcuni casi), isola in pratica le due macchine di modo che non confliggano per il controllo delle risorse. Le liveCD invece sono sistemi operativi dal comportamento modificato, con un boot tutto particolare, quindi credo si, si possa usare un disco virtuale come base per una liveCD ma come si potrebbe usare un disco fisico, credo che debbano seguire le stesse operazioni di modifica, in realtà quindi nessuna operazione diretta che non si potrebbe fare anche con partizioni fisiche. Ma la mia esperienza sulle liveCD è molto limitata, quindi prendi cone le molle le mie parole…

    • Cristian Malatesta
    • 2 ottobre 2007

    Grazie sei stato chiarissimo ^_^!

    • Domenico
    • 3 ottobre 2007

    Ciao e complimenti per la guida,
    Siccome vorrei reinstallare Ubuntu Feisty , riformattazione completa e ridistribuzione delle partizioni, mi interessava molto fare un clone dell’attuale disco vdi (windows xp pro).
    Questo è l’errore che ottengo:

    [!] FAILED calling virtualBox->OpenVirtualDiskImage(Bstr(argv[0]), vdi.asOutParam()) at line 2400!
    [!] Primary RC = 0x80004005
    [!] Full error info present: true , basic error info present: true
    [!] Result Code = 0x80004005
    [!] Text = Could not access hard disk image ‘/home/dado/.VirtualBox/VDI/xp-pro.vdi’ (VERR_FILE_NOT_FOUND)
    [!] Component = HardDisk, Interface: IHardDisk, {fd443ec1-000f-4f5b-9282-d72760a66916}
    [!] Callee = IVirtualBox, {76b25f3c-15d4-4785-a9d3-adc6a462beec}
    ****

    da profano mi sembrerebbe di capire che “dice” che il file *vdi non esiste, purtanto…

    dado@ubuntu:~/.VirtualBox/VDI$ ls
    xo-pro.vdi

    …scusa il disturbo un cordiale saluto
    Domenico

  3. @Domenico
    Per la verità ti dice che non riesce ad accederci, non che non esiste, che è diverso. Primo controlla i permessi, il gruppo vboxusers (o come si chiama) deve avere il full control su quei file, ed il tuo utente deve essere nel gruppo di quegli utenti. Una cosa che succede spesso è infatti che si usi virtualbox con sudo o l’utente root, e questo crea problemi poichè assegna ai file di immagine dei permessi non corretti. Altrsa cosa verifica di avere che il gruppo vobxusers abbia sempr ei permessi di scrittura anche nella cartella, non solo libero accesso al file di origine.

    • Domenico
    • 3 ottobre 2007

    Grazie 100 per la tempestiva risposta,
    ho controllato in *SistemaAmminiustrazioneUtenti e gruppi… ed ho verificato che “dado” faccia parte del gruppo “vboxusers”
    dal file “xp-pro.vdi” a salire fino alla cartella “,VirtualBox” ho (spero)impostato nella scheda come segue:
    Proprietario <dado
    Accesso alla cartella <Creare/eliminare file
    Accesso ai file — (non consente altro)
    *
    Gruppo < vboxusers
    Accesso alla cartella <Creare/eliminare file
    Accesso ai file — (non consente altro)
    *
    ..popi clikko su

    riprovo da t4erminale ma ottengo lo stesso errore.

    beata pazienza…:)

    Domenico

    • Domenico
    • 3 ottobre 2007

    .poi clikko su

    riprovo da terminale ma ottengo lo stesso errore.

    beata pazienza…:) *
    * altro che !!

    Domenico

  4. @Domenico
    Ho controllato meglio ciò che hai scritto, probabilmente è un errore di battitura, ma nel clonevdi nomini il file xp-prof.vdi, nel “ls” mi hai riportato xo-pro.vdi, errore di battitura nel commento o nei comandi?

    • Domenico
    • 3 ottobre 2007

    errore di battitura sul commento..
    Ho comunque riprovato ecco quello che esce:
    *
    dado@ubuntu:~$ VBoxManage clonevdi /home/dado/.VirtualBox/VDI/xp-pro.vdi /media/disk/xp-procopia.vdi
    VirtualBox Command Line Management Interface Version 1.5.0
    (C) 2005-2007 innotek GmbH
    All rights reserved.

    [!] FAILED calling virtualBox->OpenVirtualDiskImage(Bstr(argv[0]), vdi.asOutParam()) at line 2400!
    [!] Primary RC = 0x80004005
    [!] Full error info present: true , basic error info present: true
    [!] Result Code = 0x80004005
    [!] Text = Could not access hard disk image ‘/home/dado/.VirtualBox/VDI/xp-pro.vdi’ (VERR_FILE_NOT_FOUND)
    [!] Component = HardDisk, Interface: IHardDisk, {fd443ec1-000f-4f5b-9282-d72760a66916}
    [!] Callee = IVirtualBox, {76b25f3c-15d4-4785-a9d3-adc6a462beec}
    dado@ubuntu:~$
    *

    credo che faro una semplice copia della cartella ed ovviamente il suo contenuto, da ricopiare poi nel sistema reinstallato.
    Dovrebbe andare bene,

    Grazie ancora dell’attenzione
    Buona giornata
    Domenico

  5. @Domenico
    prova con sudo davanti al vboxmanage clonevdi etc…
    Sa funziona è un problema di permessi che mi sfugge, se no, non so più cosa pensare

    • Domenico
    • 3 ottobre 2007

    Ciao e scusa per il replay piuttosto tardivo, sai, sono in reinstallazione, quindi…piano piano…
    Appeno rimetto VirtualBox provo con i tuoi suggerimenti e poi posto il risultato.

    Grazie di nuovo a presto
    Domenico

  6. @Domenico
    scuse de che, mica avevamo un appuntamento 😀

    • Domenico
    • 4 ottobre 2007

    Ho riprovato, dopo aver reinstallato Ubuntu, questa volta è andata liscia come l’olio 🙂

    Saluti
    Domenico

  7. Ottimo 🙂

    • michele
    • 19 febbraio 2008

    scusate ma ho poca esperienza con le vm ho seguito passo passo le istruzioni di questo forum x clonare un .vdi e ci sono riuscito ma all’apertura di virtual box
    ho sempre solo una vm ho aggiunto il nuovo hd usando gestinone dei dischi virtuali ma nulla.
    poi andando a vedere nella cartellina dove erastato creato il clone(la stessa dove si trova il master)non erano state create tutte le catelline come x il master

    Grazie

  8. @michele
    è un pò che ho abbandonato virtualbox, cmq se non ricordo male il tutto clona la macchina nella stessa cartella, ma poi sarai tu a dover aggiungere quest’ultima al tuo inventory dall’interfaccia grafica.

    • daniele
    • 16 marzo 2008

    Per domenico e coloro che hnno problemi con l’errore VERR_FILE_NOT_FOUND: io ho risolto posizionandomi nella cartella Library/Virtualbox prima di eseguire il comando di clonazione
    🙂

    • giovanni
    • 16 aprile 2008

    il sistema che ho
    è il seguente
    ubuntu con montato virtualbox
    e 6 7 virtualizzazioni come faccio
    sto clonando win2000 server con montato su sql server 2000

    1) una volta cloanata l’immagine del mio Win2000 mi chiedevo come potevo settare la rete da ubuntu linux
    grazie
    ciao sono un neofita
    a presto

  9. Ehm…non ho capito quel che devi fare?

    • NapalM
    • 4 giugno 2008

    Ciao a tutti, il problema di Domenico sembra proprio il mio problema: vbox non ti fà clonare un’immagine in uso quindi và in errore. Infatti se si stoppa l’emulazione la copia la sì fà tranquillamente.
    Il problema sorge ora: io che devo fare BK quotidiani di queste immagine come faccio?

  10. @Napalm: allora non devi usare virtualbox. il clonevdi non è mai stato pensato per essere fatto a caldo ma a freddo (con la macchina virtuale OFF per intenderci), la funzionalità di clonare a caldo le macchine che indichi tu mi pare sia disponibile (ma non ne ho la certezza) su vmware con prodotti proprietari e a pagamento parecchio costosi di grado “enterprise”. E lo specifico, forse.

    • ReScorpione
    • 11 gennaio 2009

    HELP!
    Sto cercando di clonare un disco XP-pulito dentro a una VBOX di UBUNTU…
    Con questo commando
    “VBoxManage clonevdi Windows XP.vdi XP_base.vdi”
    ricevo che la sintassi è errata perchè manca lo UUID….
    ricavo lo UUID con VBoxManage list Hdds e faccio:
    VBoxManage clonevdi 7463d7b1-b972-4a40-873f-ba6b16e7e8bd|Windows XP.vdi XP_base.vdi
    e ricevo bash: Windows: command not found

    Dove sbaglio ? Sto imazzendo … HELP ME

  11. @ReScorpione: hai usato una “pipe” ovvero il carattere “|” a fine dell’UUID, questo ovviamente è un problema per bash.
    Mi pare strano che necessiti dell’UUID visto che tempo addietro non era necessario, direi che l’errore originale che ricvevi è più che altro perchè hai usato uno spazio nel filename di origine, prova con la sintassi:
    VBoxManage clonevdi “Windows XP.vdi” XP_base.vdi

    • reScorpione
    • 12 gennaio 2009

    Perfetto! Ha funzionato grazie. In effetti avevo anch ‘io il dubbio del nome con lo spazio ma non avevo pensato ad aggirarlo con gli apici.
    Sul discorso del pipe, non so… prova a lanciare il comando VBoxManage senza altro e vedrai che ti compare la sintassi del commando con lo UUID e un segno che io pensavo appunto il |.
    Però adesso mi viene un altro dubbio… dopo aver clonato l’ HD in questo modo, quando ne avrò bisogno, devo creare una nuova macchina che punta a quello lì , giusto ?
    Many Thanks!!

    • reScorpione
    • 13 gennaio 2009

    Forse mi sono spiegato male, ma il dubbio che avevo è corretto…
    Ho creato una nuova macchina virtuale che punta all’HD clonato,ma questa non si avvia!
    (schermo nero con cursore fermo )
    Come mai ? Dimentico qualcosa ?

    • Paolo
    • 13 gennaio 2009

    Aggiungo qualche bit di informazione al mistero del VERR_FILE_NOT_FOUND.

    Come ha scritto daniele, bisogna mettersi nella cartella giusta altrimenti il comando di clonazione dà quell’errore. Nel caso di Linux la cartella è la .VirtualBox nella home. Se si è configurato il VB in modo diverso immagino che bisognerà andare nella cartella dove ci sono VirtualBox.xml e Machines, ma non ve lo so dire per certo. Tra l’altro su questo problema è stato aperto un bug http://www.virtualbox.org/ticket/2708

    Ora però che il vdi è clonato non riesco lo stesso a caricarlo in una nuova virtual machine. Mi dice Callee RC: NS_ERROR_FAILURE. Googlerò anche questo…

  12. Sorry a tutti quanti, come già scritto Virtualbox non lo uso più da tempo essendo tornato su vmware per questioni di compatibilità d’ufficio.
    Al tempo era necessario fare una nuova macchina virtuale e inserirci il disco clonato, se male non ricordo, e funzionava. Non so se nel frattempo non siano comprasi dei bug strani, consiglio come sempre di controllare i permessi dei file clonati, che potrebbero NON essere identici a quelli dei file originali (e sarebbe meglio lo fossero).
    Il sospetto sui permessi mi viene dal fatto che è necessario usare sudo per lanciare la procedura di clone.

    • thimoty
    • 13 novembre 2009

    Bisogna specificare il path assoluto fin dalla radice sia per source che per destination, allora funziona.

      • luca
      • 21 dicembre 2010

      confermo! uso ubuntu 10.10 e il metodo descritto nell’articolo funziona, ma solo se si specificano i path assoluti fin dalla radice /home/pippo/.VirtualBox/file.vdi … non molto intuitivo!

    • nidive
    • 24 luglio 2011

    GRAZIE 3.000.000… 😀

    • F
    • 2 agosto 2011

    Ciao, premetto che ho letto alcuni dei commenti precedenti ma non tutti.

    Ho provato a seguire gli esatti passi suggeriti dalla guida, ma avevo lo stesso problema di prima: in fase di import, VirtualBox mi diceva che il file aveva lo stesso UUID di un altro, e quindi non lo accettava.
    Provando ad usare sudo i file non erano accessibili (appartenevano a root, ovviamente) e quindi in fase di import mi dava un altro errore.

    Alla fine ho fatto così:
    a) click su nuova Vm in VirtualBox;
    b) ho inserito il nome della nuova VM in quella sorta di Wizard. A questo punto viene creata in automatico una cartella per contenere la nuova VM. Questo passo è importante per il punto c)
    c) ho mollato la Wizard di VirtualBox, ho puntato il Terminal nella cartella in cui c’era il file da clonare, e ho lanciato questo comando:
    $ sudo VBoxManage clonevdi /home/nomeutente/VirtualBox\ VMs/NomeVmDaClonare/nomefile.vdi /home/nomeutente/VirtualBox\ VMs/NomeVm_Nuova/nomefile_nuovo.vdi

    La prima volta avevo fatto il clone in una cartella d’appoggio e poi l’avevo spostato manualmente: quest’operazione non era stata digerita da VirtualBox (o io non sono stato capace di fargliela digerire…) quindi ho preferito fare il clone direttamente nella cartella definitiva;
    d) ho modificato owner e gruppo con chown e chgrp
    e) poi sono tornato nella wizard di VirtualBox e l’ho portata avanti finchè mi ha chiesto di indicare il nuovo file VDI

    Mò ha funzionato 🙂

    Quindi la guida resta valida anche se è del 2007, solo che probabilmente vanno aggiunte delle operazioni successive (tipo usare il path assoluto, usare sudo e poi modificare diritti e owner).

  13. Lol, mi viene abbastanza da ridere a pensare che qualcuno ancora usi questi appunti ormai non seguiti da anni, comunque provo a correggere cominciando a specificare l’uso dei path assoluti.

    In quanto all’uso del SUDO, proverò a fare qualche prova prima, teoricamente non dovrebbe servire, è un amera questioen di permessi, se i path sono liberamente accessibili all’utenza in uso teoricamente non serve. Cmq uso nuova Virtualbox, proverò. 🙂

  14. I haven¡¦t checked in here for a while since I thought it was getting boring, but the last several posts are good quality so I guess I¡¦ll add you back to my everyday bloglist. You deserve it my friend 🙂

  15. Hi! I could have sworn I’ve visited your blog before but after looking at many of the articles I realized it’s new to me.
    Anyhow, I’m definitely delighted I found it and I’ll be book-marking it and checking back frequently!

  16. I am sure this article has touched all the internet visitors,
    its really really nice article on building up new weblog.

  17. Especially instructive, look ahead to coming back again.

Rispondi

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...

%d blogger hanno fatto clic su Mi Piace per questo: