¿Es posible convertir las máquinas virtuales en entornos físicos?
¿Es posible convertir un archivo .vdi en un .iso que se pueda grabar en un cd o dvd y hacerlo como un instalador? ¿O es posible convertir máquinas virtuales en entornos físicos?
¿Es posible convertir un archivo .vdi en un .iso que se pueda grabar en un cd o dvd y hacerlo como un instalador? ¿O es posible convertir máquinas virtuales en entornos físicos?
Sí, y no.
Usted puede convertir una VDI en una imagen de disco con la herramienta VBoxManage. Este comando clona una imagen de disco virtual registrada a otro archivo de imagen. Si quieres convertir tu disco virtual a otro formato, esta es la herramienta oficial de VirtualBox que debes utilizar[*].
VBoxManage clonehd file.vdi output.img --format RAW
VBoxManage internalcommands converttoraw file.vdi output.img
Pero… ese archivo IMG de salida no es una imagen ISO, y el SO que se instala no estará configurado para ejecutarse desde un CD/DVD de arranque. Puedes “grabar” (escribir) la IMG en un disco duro, y podría arrancar en hardware desnudo (por ejemplo, no en una máquina virtual). Pero puede que no, porque el SO instalado en esa IMG espera ver el hardware virtual que VirtualBox proporciona, y tú lo estás arrancando en un hardware real que no espera.
Algunas versiones de Windows no manejan bien esta situación; algunas distribuciones de Linux sí. A veces es posible configurar un SO (de antemano o después) para migrarlo de un entorno a otro así, pero los pasos específicos dependen completamente del SO que se esté migrando.
En Windows, puede ser necesario especificar la ruta completa del programa:
"C:\Program Files\Sun\VirtualBox\VBoxManage.exe" [...]
Añada C:\NProgram Files\Sun\VirtualBox a su PATH para utilizar la versión corta.
[\*] Supongo que la opción “–format RAW” convertirá a una imagen de disco estándar, como si hubieras utilizado el comando dd en un disco duro físico. Pero francamente, no he encontrado ninguna documentación que respalde esto, así que ten en cuenta que esto puede no ser correcto.
[+] Acabo de probar ambos comandos en VirtualBox 3.1.2. Ambos archivos de salida son idénticos según md5sum, pero no he probado completamente los archivos de salida.
Ver también el “All about VDIs” tutorial en los foros de VirtualBox.
Si tu archivo vdi contiene particiones y quieres extraer sólo una de ellas utiliza lo siguiente:
Primero, como dijo Quack Quijote antes, convierta el archivo vdi en un archivo de imagen en bruto:
# VBoxManage clonehd file.vdi file.raw --format RAW
A continuación configura un dispositivo de bucle para la imagen:
# loopdev=$(losetup --show -r -f file.raw)
Usa kpartx para crear dispositivos para cada partición en el archivo raw:
# apt-get install kpartx
# kpartx -a $loopdev
Vea qué dispositivos tenemos ahora. En este ejemplo, sólo hay un dispositivo ya que sólo hay una partición en la imagen raw:
# ls /dev/mapper/loop*
/dev/mapper/loop0p1
Ahora móntalo para verificar que todo funciona correctamente:
# mkdir /mnt/part1
# mount /dev/mapper/loop0p1 /mnt/part1
# ls /mnt/part1
# umount /mnt/part1
Utilice dd para copiar el contenido de la partición a otra partición de destino:
# dd if=/dev/mapper/loop0p1 of=/dev/sda2 bs=1M
Cuando haya terminado, elimine las asignaciones de dispositivos de nuevo:
# kpartx -d file.raw
La respuesta es un sí rotundo, en caso de que tu sistema anfitrión e invitado sea Linux. Se hace con los paquetes qemu
y TKLPatch
. Puedes utilizar tanto archivos VDI como VMDK.
Leer más:
He probado el VBoxManage clonehd file.vdi output.img --format RAW
de la respuesta aceptada pero sin mucho éxito.
Lo que me ha funcionado con una máquina virtual de Windows 8.1 en un host de Windows 7 es lo siguiente:
VBoxManage clonehd source.vdi target.vhd --format vhd
Este proceso lo hago de forma muy rápida, con sólo dos líneas de comando en Linux:
#
VBoxManage internalcommands converttoraw yourdiskvirtual.vmdk yourdiskvirtual. img
O
#
VBoxManage internalcommands converttoraw yourdisk_virtual.vdi yourdisk_virtual.img
#
mv yourdiskvirtual.img your_disk_virtual.iso
Mi artículo completo: http://www.previsioni.com.br/jailsonjan/?p=389
Utilice el siguiente comando para convertir:
VBoxManage clonehd CactiEZ-disk1.vmdk output.iso --format VMDK
Aquí está la salida:
0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
Clone hard disk created in format 'VMDK'. UUID: 7f297ac6-95eb-4814-9237-1acfd6be976c