¿Es posible convertir máquinas virtuales en entornos físicos?

78

Es posible convertir un archivo .vdi en un .iso que se puede grabar en un CD o DVD y convertirlo en un instalador. ¿O es posible convertir máquinas virtuales en entornos físicos?

Wern Ancheta
fuente
1
Esta respuesta en AskUbuntu.com probablemente se aplica a muchos entornos que se ejecutan en máquinas host Linux: askubuntu.com/a/32506/31592
blong

Respuestas:

64

Si y no.

Usted puede convertir un VDI una imagen de disco con el en VBoxManage herramienta. Este comando clona una imagen de disco virtual registrada en otro archivo de imagen. Si desea convertir su disco virtual a otro formato, esta es la herramienta oficial de VirtualBox para usar [*].

VBoxManage clonehd file.vdi output.img --format RAW
  • Si está utilizando un VDI dinámico y tiene una versión anterior de VirtualBox, clonehd puede no funcionar correctamente. La herramienta de comandos internos de VBoxManage incluye converttoraw , que puede convertir un VDI dinámico en una imagen de disco sin formato ( fuente ) [+].

VBoxManage internalcommands converttoraw file.vdi output.img

Pero ... ese archivo IMG de salida no es una imagen ISO, y el sistema operativo que está instalado no se configurará para ejecutarse desde un CD / DVD de arranque. Puede "grabar" (escribir) el 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 sistema operativo instalado en ese IMG espera ver el hardware virtual que proporciona VirtualBox, y lo está iniciando en un hardware real que no está esperando.

Algunas versiones de Windows no manejan bien esta situación; algunas distribuciones de Linux lo hacen. A veces es posible configurar un sistema operativo (de antemano o después) para migrarlo de un entorno a otro de esta manera, pero los pasos específicos dependen completamente del sistema operativo que se migra.


En Windows, es posible que deba especificar la ruta completa al programa:

"C:\Program Files\Sun\VirtualBox\VBoxManage.exe" [...]

Agregue C: \ Archivos de programa \ Sun \ VirtualBox a su RUTA para usar la versión corta.


[*] Supongo que la opción "--format RAW" se convertirá en una imagen de disco estándar, como si hubiera utilizado el comando dd en un disco duro físico. Pero, francamente, no he encontrado ninguna documentación que respalde esto, así que tenga 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.

Consulte también el tutorial "Todo sobre VDI" en los foros de VirtualBox.

quijote curandero
fuente
3
¿Qué pasa con el tamaño de la VDI? ¿Eso importa? Digamos que el tamaño de VDI es de 20 GB y el tamaño real del disco duro es de 200 GB ... ¿Qué pasaría?
Pwnna
Ese primer método "clonehd" parece terriblemente lento. Pero el segundo funcionó de maravilla.
Matt H
1
También tenga en cuenta que si logra obtener un sistema operativo Windows para arrancar, deberá reactivarlo en la mayoría de los casos.
Kimmax
¿Qué pasaría si sysprep /generalizeprimero fuera a la instalación virtual? Esto seguramente prepararía la instalación para instalarse en un nuevo hardware (o hardware físico en este caso)
Robula
1
@Pwnna Estás copiando una imagen de un disco duro (no solo una partición sino un mapa de partición completo con particiones). He hecho esto en el pasado y recuerdo haber visto lo que describe esta respuesta, espacio no utilizado / sin particiones
sudo
21

Si su archivo vdi contiene particiones y desea extraer solo una de ellas, use lo siguiente:

Primero, como dijo quack quixote antes, convierta el archivo vdi a un archivo de imagen sin formato:

# VBoxManage clonehd file.vdi file.raw --format RAW

Luego configure un dispositivo de bucle para la imagen:

# loopdev=$(losetup --show -r -f file.raw)

Use kpartx para crear dispositivos para cada partición en el archivo sin formato:

# apt-get install kpartx
# kpartx -a $loopdev

Vea qué dispositivos tenemos ahora. En este ejemplo, solo hay un dispositivo, ya que solo hay una partición en la imagen sin formato:

# ls /dev/mapper/loop*
/dev/mapper/loop0p1

Ahora móntelo para verificar que todo funcione correctamente:

# mkdir /mnt/part1
# mount /dev/mapper/loop0p1 /mnt/part1
# ls /mnt/part1
# umount /mnt/part1

Use 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

Una vez que haya terminado, elimine las asignaciones de dispositivos nuevamente:

# kpartx -d file.raw
dmoebius
fuente
¿Es eso posible con Windows?
Ehsan
13

La respuesta es un sí definitivo, en caso de que su sistema host e invitado sea Linux. Se hace con los paquetes qemuy TKLPatch. Puede usar archivos VDI o VMDK.

Lee mas:

Alon Swartz
fuente
3
+1 "definitivo" con la advertencia "... siempre y cuando tu invitado sea Linux" . y su solución (¿su?) se basa en algunas herramientas Linux TurnKey. pero el procedimiento se ve bien. (¡bienvenido a Super User!)
quack quixote
5

Probé la VBoxManage clonehd file.vdi output.img --format RAWde la respuesta aceptada , pero sin mucho éxito.

Lo que funcionó para mí con una máquina virtual Windows 8.1 en un host de Windows 7 es esto:

  1. Haga una máquina con Windows 8.1 en VirtualBox, instálela y úsela como lo haría normalmente con una VM.
  2. Convierta el disco duro Virtual Box .vdi a Windows VHD conVBoxManage clonehd source.vdi target.vhd --format vhd
  3. Monte el VHD en la máquina host de Windows como una unidad (puede montar un VHD en el administrador de discos en Administración de computadoras.
  4. Clone el VHD (montado como una unidad) en otro disco duro nuevo (una computadora portátil con USB conectado HD en mi caso) DriveImage XML o una herramienta de clonación de disco similar. Básicamente, ahora ha clonado el disco duro virtual .vdi a metal desnudo.
  5. Instale el nuevo disco duro en una máquina. (en mi caso, cambie el disco duro del portátil)
  6. Inserte un USB / CD de instalación de Windows 8.1, inicie desde él, elija Opciones avanzadas y Reparación automática. La reparación automática hará que el nuevo disco duro sea arrancable.
  7. Arranque desde el nuevo disco duro con Windows 8.1 clonado y ejecute Windows Update. Esto descargará controladores para el hardware de su computadora que no se conocían cuando ejecutó Windows en VirtualBox. Tendrá que instalar los controladores que faltan manualmente si los hay.
  8. Desinstale VirtualBox Guest Additions. Opcionalmente instale VirtualBox para que Windows 8.1 pueda ser un host VirtualBox.
Jan H
fuente
1
Desde @sum: puede probar BootICE para reemplazar el sexto paso y asegúrese de instalar el MBR correcto.
Fixer1234
Gracias. ¿BootICE es más confiable en algunos wat que la instalación de Windows 8.1? ¿El paso 6 que describí posiblemente estropeará el MBR?
Jan H
1
Esto fue publicado como respuesta por un nuevo usuario (creo que superuser.com/users/523958/sum ). Se iba a eliminar porque no calificaba como respuesta, así que copié la publicación y la guardé como comentario para que no se perdiera. No estoy personalmente familiarizado con eso.
Fixer1234
3

Hago este proceso de manera muy rápida, con solo dos líneas de comando en Linux:

#Los comandos internos de VBoxManage conviertentoraw your_disk_virtual.vmdk your_disk_virtual.img

O

#Comandos internos de VBoxManage converttoraw your_disk_virtual.vdi your_disk_virtual.img

# mv your_disk_virtual.img your_disk_virtual.iso

Mi artículo completo: http://www.previsioni.com.br/jailsonjan/?p=389

JailsonJan
fuente
¿Sería el .img en este caso arrancable?
Pumphouse
Creo que no. He visto una respuesta similar del usuario de 0 representantes, que parecía fácil, sin embargo, resultó inútil.
T.Todua
0

Use 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
Anupam
fuente