È possibile convertire macchine virtuali in ambienti fisici?
È possibile convertire un file .vdi in un .iso che può essere masterizzato su un cd o dvd e renderlo come un installer. Oppure è possibile convertire macchine virtuali in ambienti fisici?
È possibile convertire un file .vdi in un .iso che può essere masterizzato su un cd o dvd e renderlo come un installer. Oppure è possibile convertire macchine virtuali in ambienti fisici?
Sì e no.
Puoi convertire una VDI in un'immagine disco con lo strumento VBoxManage. Questo comando clona un'immagine disco virtuale registrata in un altro file immagine. Se vuoi convertire il tuo disco virtuale in un altro formato, questo è lo strumento ufficiale di VirtualBox da usare[*].
VBoxManage clonehd file.vdi output.img --format RAW
VBoxManage internalcommands converttoraw file.vdi output.img
Ma… quel file IMG di output non è un'immagine ISO, e il sistema operativo installato non sarà configurato per essere eseguito da un CD/DVD avviabile. Puoi “masterizzare” (scrivere) l'IMG su un disco rigido, e potrebbe avviarsi sull'hardware nudo (ad esempio non in una macchina virtuale). Ma potrebbe non farlo, perché il sistema operativo installato su quell'IMG si aspetta di vedere l'hardware virtuale che VirtualBox fornisce, e tu lo stai avviando su hardware reale che non si aspetta.
Alcune versioni di Windows non gestiscono bene questa situazione; alcune distribuzioni Linux sì. A volte è possibile configurare un sistema operativo (prima o dopo) per migrare da un ambiente all'altro in questo modo, ma i passi specifici dipendono completamente dal sistema operativo da migrare.
Su Windows, potrebbe essere necessario specificare il percorso completo del programma:
"C:\Program Files\Sun\VirtualBox\VBoxManage.exe" [...]
Aggiungi C:\Program Files\Sun\VirtualBox al tuo PATH per usare la versione breve.
[*] Presumo che l'opzione “–format RAW” convertirà in un'immagine disco standard, come se tu avessi usato il comando dd su un hard disk fisico. Ma francamente, non ho trovato alcuna documentazione che lo confermi, quindi siate consapevoli che questo potrebbe non essere corretto.
[+] Ho appena testato entrambi i comandi sotto VirtualBox 3.1.2. Entrambi i file di output sono identici secondo md5sum, ma non ho testato completamente i file di output.
Vedi anche il tutorial “All about VDIs” sui forum di VirtualBox.
Se il vostro file vdi contiene partizioni e volete estrarre solo una di esse, usate le seguenti:
Prima, come ha detto quack quixote prima, convertite il file vdi in un file immagine grezzo:
# VBoxManage clonehd file.vdi file.raw --format RAW
Poi impostate un dispositivo di loop per l'immagine:
# loopdev=$(losetup --show -r -f file.raw)
Usa kpartx per creare dispositivi per ogni partizione nel file raw:
# apt-get install kpartx
# kpartx -a $loopdev
Vediamo quali dispositivi abbiamo ora. In questo esempio, c'è solo un dispositivo perché c'è solo una partizione nell'immagine grezza:
# ls /dev/mapper/loop*
/dev/mapper/loop0p1
Ora montatelo per verificare che tutto funzioni correttamente:
# mkdir /mnt/part1
# mount /dev/mapper/loop0p1 /mnt/part1
# ls /mnt/part1
# umount /mnt/part1
Usate dd per copiare il contenuto della partizione in un'altra partizione di destinazione:
# dd if=/dev/mapper/loop0p1 of=/dev/sda2 bs=1M
Dopo aver finito, rimuovete nuovamente le mappature dei dispositivi:
# kpartx -d file.raw
La risposta è decisamente sì, nel caso in cui il vostro sistema host e guest sia Linux. Si fa con i pacchetti qemu
e TKLPatch
. È possibile utilizzare entrambi i file VDI o VMDK.
Leggi di più:
Ho provato lo VBoxManage clonehd file.vdi output.img --format RAW
da la risposta accettata ma senza molto successo.
Quello che ha funzionato per me con una macchina virtuale Windows 8.1 su un host Windows 7 è questo:
VBoxManage clonehd source.vdi target.vhd --format vhd
Faccio questo processo in modo molto veloce, con solo due linee di comando in Linux:
#
VBoxManage internalcommands converttoraw your_disk_virtual.vmdk your_disk_virtual. img
OR
#
VBoxManage internalcommands converttoraw yourdisk\virtual.vdi yourdisk\virtual.img
#
mv yourdisk\virtual.img yourdisk\virtual.iso
Il mio articolo completo: http://www.previsioni.com.br/jailsonjan/?p=389