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 Virtualbox non è tutto così semplice, una copia FISICA di un file di immagine disco ha uno stesso identificare 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 nomefileorig.vdi nomefilecopia.vdi
Facile vero? dò per assunto che voi siate posizionati nella directory contente i file immagine dei dischi ovviamente


Giusto giusto quello che mi serviva, stasera si clona a gogo ;D
ilbat
22 Giugno 2007 alle 09:24
Asd, ero pronto a scommettere che il commento fosse il tuo
Coort
22 Giugno 2007 alle 09:36
[...] Come tutti sappiamo Virtualbox utilizza dei file che le macchine virtuali vedono come HardDisk, altrove ho già spiegato come fare a clonarli senza dare fastidio all’applicativo usando i suoi tool, [...]
Comprimere le immagini .vdi di VirtualBox « Svaried Blog, a bit of Linux, in itagliano
25 Giugno 2007 alle 14:34
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
Cristian Malatesta
27 Settembre 2007 alle 14:20
@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…
Coort
27 Settembre 2007 alle 14:39
Grazie sei stato chiarissimo ^_^!
Cristian Malatesta
2 Ottobre 2007 alle 16:43
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 = 0×80004005
[!] Full error info present: true , basic error info present: true
[!] Result Code = 0×80004005
[!] 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
Domenico
3 Ottobre 2007 alle 08:13
@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.
Coort
3 Ottobre 2007 alle 08:25
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 alle 08:58
.poi clikko su
riprovo da terminale ma ottengo lo stesso errore.
beata pazienza…:) *
* altro che !!
Domenico
Domenico
3 Ottobre 2007 alle 09:13
@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?
Coort
3 Ottobre 2007 alle 10:04
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 = 0×80004005
[!] Full error info present: true , basic error info present: true
[!] Result Code = 0×80004005
[!] 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
Domenico
3 Ottobre 2007 alle 10:22
@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
Coort
3 Ottobre 2007 alle 12:34
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
Domenico
3 Ottobre 2007 alle 19:05
@Domenico
scuse de che, mica avevamo un appuntamento
Coort
4 Ottobre 2007 alle 12:18
Ho riprovato, dopo aver reinstallato Ubuntu, questa volta è andata liscia come l’olio
Saluti
Domenico
Domenico
4 Ottobre 2007 alle 16:28
Ottimo
Coort
4 Ottobre 2007 alle 17:58
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
michele
19 Febbraio 2008 alle 17:54
@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.
Coort
19 Febbraio 2008 alle 18:28
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
daniele
16 Marzo 2008 alle 12:04
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
giovanni
16 Aprile 2008 alle 09:46
Ehm…non ho capito quel che devi fare?
Coort
23 Aprile 2008 alle 09:30
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?
NapalM
4 Giugno 2008 alle 08:32
@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.
Coort
4 Giugno 2008 alle 10:50
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
ReScorpione
11 Gennaio 2009 alle 18:29
@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
Coort
12 Gennaio 2009 alle 10:44
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
12 Gennaio 2009 alle 15:36
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 ?
reScorpione
13 Gennaio 2009 alle 16:40
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…
Paolo
13 Gennaio 2009 alle 20:40
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.
Coort
14 Gennaio 2009 alle 15:24
Bisogna specificare il path assoluto fin dalla radice sia per source che per destination, allora funziona.
thimoty
13 Novembre 2009 alle 01:00