¿Cuál es la forma recomendada de mover una VM VirtualBox a otra computadora?

234

Uso VirtualBox 4.1.x en mi máquina Ubuntu y he configurado varias máquinas virtuales. Dado que hay varias formas de mover una máquina virtual en VirtualBox a otra computadora, me preguntaba cuál es la forma recomendada:

  1. Utilice la "utilidad Importar / Exportar".
  2. Copie toda la carpeta de la máquina virtual, que contiene los archivos .vdiy .vbox.
  3. Clone el VDI usando "Virtual Media Manager" y luego vuelva a crear una VM en la máquina de destino pero usando el VDI clonado como el disco duro.

He utilizado con éxito el primer método varias veces y siempre ha funcionado. ¡El problema es que después de exportar e importar, la imagen del disco se transforma en VMDK y ya no en VDI!

El segundo método es probablemente el más fácil, pero no estoy seguro de que simplemente copiar los archivos funcione o no en la máquina de destino. ¡Al buscar sobre este método, descubrí que algunas personas tenían problemas en los que tenían que editar el archivo VirtualBox.xml para resolverlo!

Por último, está el tercer método , pero requiere el trabajo adicional de crear una VM similar a la configuración original de la VM, lo cual no es deseable.

De la explicación anterior queda claro que mi método deseado es el segundo, pero necesito asesoramiento experto sobre esto si funciona o no. ¡No quiero que ninguna edición XML se interponga en mi camino!

¿Cuál es el mejor método para transferir de manera segura mis máquinas virtuales a otra computadora con VirtualBox?

Seyed Mohammad
fuente
2
Simplemente transfiera los archivos y colóquelos en la misma ubicación.
Ramhound
2
@seyed 1. Una prueba de fallos solución con altas tasas de éxito / reproducibilidad no siempre puede ser la recomendada y / o mejor solución a un problema y vice-versa . Sin embargo, dado que usted pregunta por la solución recomendada , la opción (2) de su lista (aunque propensa a errores) sería la más rápida y, por lo tanto, recomendada. Opciones (1) y (3) entran en la prueba de fallos categoría, ya que van a trabajar en la mayoría de las circunstancias. PD: después de la exportación, algunas opciones de configuración (¿la mayoría?) Se pueden cambiar (si se usan las opciones 1/3). ... Espero que esto ayude.
Amar

Respuestas:

165

Bien hecho por hacer tu investigación. Regularmente uso las tres opciones.

  1. (Utilice la "utilidad Importar / Exportar") . Esto es lo más fácil porque combina toda la máquina virtual en un solo archivo y la transfiere sin problemas casi todo el tiempo. Sin embargo, en mi experiencia al crear el archivo OVA u OVF para exportar, descarta todas las instantáneas y, si se hace incorrectamente, puede dar como resultado un archivo VMDK. Cuando vuelva a importar la VM, debería poder seleccionar qué tipo de archivo HDD desea crear, VDI o VMDK.

  2. (Copie toda la carpeta de la máquina virtual, que contiene los archivos .vdiy .vbox) . Esta es mi opción preferida y, aunque he tenido que editar el archivo XML varias veces, ha sido mi culpa por haber estropeado algo. Asegúrese de que cuando copie la VM, obtenga TODOS los archivos asociados con ella. Los problemas que encontré fueron cuando ciertas instantáneas y archivos VDI secundarios estaban en el directorio incorrecto y no se copiaron correctamente. Si copia todos los archivos (y permisos) no debería tener ningún problema.

  3. (Clone el VDI usando "Virtual Media Manager" y luego vuelva a crear una VM en la máquina de destino pero usando el VDI clonado como el disco duro). Esto es menos deseable porque tiene 2 copias de una VM y puede causar problemas de licencia, problemas de red, etc., dependiendo de cómo clone el archivo VDI.

En resumen, definitivamente recomendaría la opción 2, solo asegúrese de obtener todos los archivos necesarios cuando lo mueva.

tbenz9
fuente
Gracias por la respuesta. Esperaré unos días más para ver si alguien más tiene otro punto. (+1)
Seyed Mohammad el
Parece que nadie tiene nada que agregar ... Así que estoy marcando esto como la respuesta.
Seyed Mohammad el
Solo una referencia adicional para la Opción 1, enlace , después de importar, el formato es VDMK, parece estar determinado y no se puede cambiar.
simongcc
1
@tbenz ¿Cómo evito obtener un VMDK al exportar?
Don Rhummy
13
Solo para completar: Si hace la Opción 2, haga esto en la máquina de destino: Virtualbox> Máquina> Agregar> [navegue a la carpeta donde están todos los archivos VM]. Probablemente sea una buena idea colocar los nuevos archivos de VM en la misma carpeta donde se almacenan todas sus otras VM.
Donn Lee
47

El método 2 funciona bien ahora (con VirtualBox 4.0 y superior) , sin ninguna modificación XML requerida:

  1. Pare su máquina virtual
  2. Salga de VirtualBox
  3. Copie la carpeta VM a la nueva ubicación
  4. Reinicie VirtualBox y elimine la VM anterior.
  5. Vaya al menú Máquina ≥ Agregar y busque su carpeta anterior.

¡Eso es!

ps: tengo VirtualBox 4.3.20 en OSX 10.10

Vea esta publicación en el foro de VirtualBox para más detalles.

David
fuente
44
¡No puedo creer que no se haya votado demasiado como debería ser! Esta es la forma más fácil (¡demasiado fácil!) Al mover las máquinas virtuales dentro del mismo sistema operativo. Se movieron con éxito dos máquinas virtuales de la unidad C a la unidad D. El mío es Win7 de 64 bits con Virtualbox 5.x
Edwin Yip
1
En realidad, esto no funciona solo para mover el archivo VDI, solo la máquina virtual completa.
DustWolf
1
@DustWolf Correcto, pero de eso se trata la pregunta del operador.
David
@DustWolf Esto es lo que dijo David. "Copie la carpeta VM a la nueva ubicación". En lo que a mí respecta, esta carpeta contiene toda la máquina virtual. ¿Me estoy perdiendo de algo?
Nikos
@RestlessCobra sí, la nueva carpeta contiene toda la VM.
David
18

Mi opción preferida es la opción 2 también:

  1. Copie la carpeta VM completa, que contiene los archivos .vdi y .vbox.

Pero a veces sucederá una falta de coincidencia UUID. A menudo esto sucede si solo copia la imagen de disco VDI de una máquina en otra máquina, pero también me ha sucedido durante copias directas de directorios completos.

Entonces, si este es el mensaje que recibe después de mover la máquina virtual e intentar iniciarla en la nueva configuración:

No se pudo abrir el disco duro.

No se puede registrar el disco duro porque ya existe un disco duro con UUID.

Simplemente vaya al directorio de su máquina virtual; por supuesto, cambie la ruta real para que coincida con la ruta real en la que se encuentra:

cd /full/path/to/virtualbox/virtualmachine/Sandbox

Y ejecute este comando para asignar al disco un nuevo UUID:

VBoxManage internalcommands sethduuid Sandbox.vdi
JakeGould
fuente
9

En caso de que alguien más esté buscando una respuesta a esto, moví con éxito 5 máquinas virtuales de Virtual Box a otra instalación de Win7 en un nuevo disco duro en la misma máquina (esencialmente un cambio de un SO invitado a otro en la misma PC). Me doy cuenta de que los controladores en una máquina completamente nueva probablemente variarían y podrían tener un efecto negativo en el movimiento, pero he documentado el proceso a continuación con la esperanza de que pueda ayudar a alguien.

  • No se requería clonar máquinas virtuales ni alterar el archivo xml. La versión VB era bastante actual: 4.3.12r93773.
  • Se crearon nuevas copias de máquinas virtuales en una nueva carpeta / unidad compartida para mantener intactas las máquinas virtuales existentes / antiguas. Todavía puedo arrancar desde el viejo disco duro que he retenido para redundancia / resolución de problemas hasta que esté satisfecho con mi nueva configuración; para que pueda acceder a las máquinas virtuales antiguas en su estado anterior si es necesario.
  • Las letras de unidad variarán / pueden no ser necesarias dependiendo de su configuración.

En el antiguo host Win7:

  1. Asegúrese de que todas las máquinas virtuales estén apagadas.

En el nuevo host Win7:

  1. Cree una nueva carpeta llamada X: \ NewVMs \ VirtualBox VMs (desde la nueva máquina Win7 para garantizar los permisos)
  2. Copie / pegue (no arrastre) todas las máquinas virtuales y el contenido de la carpeta relacionada de la carpeta anterior a esta carpeta (utiliza nuevos permisos)
  3. Desinstale VirtualBox (si está instalado)
  4. Eliminar la carpeta .virtualbox y todo el contenido (si existe)
  5. REINICIAR para confirmar que no quedan archivos de programa ni entradas de registro (si desinstala VirtualBox antiguo).
  6. Instalar / reinstalar VirtualBox (asegúrese de estar usando la misma versión que VirtualBox en la que se crearon las máquinas virtuales en el host / máquina anterior (en mi caso, ver. 4.3.12r93773))
    IMPORTANTE: (No seleccione la casilla de verificación para abrir / ejecutar VirtualBox al final de la instalación)
  7. Copie / pegue (no arrastre) la carpeta .virtualbox y el contenido del antiguo host Win7 (generalmente C: \ Users [nombre de usuario] .VirtualBox
  8. Ahora abra VirtualBox
  9. Establezca las preferencias para la nueva carpeta de creación de VM predeterminada en la misma ruta de archivo que la carpeta de VM de VirtualBox recién creada: X: \ NewVMs \ VirtualBox VMs
  10. Estado de prueba de máquinas virtuales

Buena suerte.

Steven Kelly
fuente
Si bien esta es una respuesta informativa, no se trata de lo que se preguntó. Otra pregunta podría ser un lugar más apropiado para su respuesta.
akTed
@ Steven, "... esencialmente un movimiento de un sistema operativo host a otro ..."?
pythonlarry
2

Para el caso especial donde:

  • solo tiene una única VM (o desea mover todas sus VM),
  • y el host es el mismo hardware con la misma versión del sistema operativo (o reinstalando el mismo sistema operativo en la misma máquina)

Si estás en este caso, entonces las cosas son fáciles:

  1. Cierre VirtualBox en ambos hosts.
  2. Copie las carpetas .config/VirtualBoxy VirtualBox VMsdel host de origen.
  3. Copie estas carpetas al host de destino.
  4. Inicie VirtualBox en el host de destino.
Nicolas Raoul
fuente
1

La 4ta manera

En VirtualBOX:

  1. Apague la VM
  2. Haga clic derecho y elimine la VM (no elimine archivos)
  3. Vaya a archivo> Virtual Media Manager y elimine el .vdi
  4. Vaya a Archivo> Preferencias> General y configure la carpeta de máquina predeterminada en la nueva ubicación
  5. Cree una nueva VM use el modo experto para crear la VM sin un disco duro

En el Explorador de archivos:

  1. Localice el archivo .vdi y cópielo
  2. Vaya a la nueva carpeta de máquina predeterminada, habrá una carpeta VM dentro
  3. Pegue el archivo .vdi en la nueva carpeta de VM

De vuelta en VirtualBOX:

  1. Haga clic derecho en la máquina virtual y abra la configuración
  2. Vaya a Almacenamiento> Controlador: SATA y agregue un disco duro, haga clic en elegir un disco existente 11. elija el archivo .vdi en la nueva carpeta VM

Nota: Si el método 2 interrumpe su instalación de VirtualBOX, vaya a C: \ Users \ .VirtualBox y elimine VirtualBox.xml y cambie el nombre de VirtualBox.xml-prev a VirtualBox.xml

Peterjtk
fuente
0

También utilicé el método 2 para mover mi máquina virtual y no tuve que hacer ningún cambio en ningún archivo XML, pero obtuve un par de errores con USB y el uso compartido de archivos y a continuación es cómo los arreglé junto con el proceso:

  1. Copie la máquina virtual de la vieja a la nueva PC. Los archivos de la máquina virtual son diferentes de la propia máquina virtual de Oracle. Estos archivos suelen estar en c: \ users \\ VirtualBox VMs \ . Recogí toda la parte de VirtualBox VMs \ y la copié en una ubicación similar en la nueva PC. Esto copia todas las máquinas virtuales que tenía en la PC original.

  2. Ahora en una PC nueva, ejecute virtual box y vaya a Menú> Máquina> Agregar y seleccione el archivo .vbox de la carpeta copiada. Eso es.

  3. Ahora, cuando ejecuto la máquina virtual en una PC nueva, recibí un error cuando se iniciaba:

ingrese la descripción de la imagen aquí

  1. No sé por qué el controlador USB no funcionaba porque lo mismo funcionaba en la computadora original. Seguí adelante e instalé VirtualBox Extension Pack

  2. Esta instalación fue un poco extraña porque la descarga de instalación no era un archivo ejecutable. Hice clic en Oracle_VM_VirtualBox_Extension_Pack-5.1.4-110228.vbox-extpack y seleccioné 'Seleccionar un programa de una lista de programas instalados' y luego seleccioné Oracel virtualbox e instaló la extensión. Eso solucionó el problema, pero otra solución menos deseable es que puede deshabilitar el usb.

  3. Si ha compartido carpetas en la VM original, pueden diferir y obtendrá un error. Revíselos en Configuración >> Carpeta compartida y elimine los que están rotos. Aparecerá un mensaje de error

esta.

Eso es todo.

zar
fuente
-1

zar, lo primero es lo primero ... nunca mueva una máquina que está en estado guardado, antes de mover debe cerrar el invitado, no solo guardar el estado.

También asegúrese de usar la misma versión de VirtualBOX en ambos hosts, pero no solo la versión de VirtualBOX, también la versión del paquete de extensión ... o al menos el nuevo host tiene una versión más alta, pero nunca una versión más baja en ninguno de los dos.

Y finalmente, lo aprendí de la manera difícil, elimine la configuración de la carpeta COMPARTIDA en VirtualBOX antes de mover la máquina, luego vuelva a crearla de la manera correcta ... muy importante cuando los hosts son sistemas operativos diferentes (hosts Windows / Linux).

Y solo como nota al margen ... siempre, siempre uso archivos VDI de disco duro inmutable para el sistema operativo, así como para los VDI de datos (de esa manera, se puede usar el mismo DATA VDI para más que un invitado), truco especial para 4GiB pagefile.sys

Esa última parte, reutilizar un archivo VDI inmutable hace las cosas un poco más difíciles, VirtualBOX tiene un GRAN ERROR.

Para ver el error en acción:

  • Cree un VDI inmutable (como el que uso para pagefile.sys)
  • Cree dos o tres máquinas virtuales en VirtualBOX
  • Mueva uno de ellos a la parte superior de la lista (solo para evitar dañar cualquiera de los suyos)
  • Haga una copia de seguridad de los archivos .vbox de cada una de las máquinas que creó (para compararlas después de que ocurra el ERROR)
  • Adjunte ese VDI inmutable a más de una de esas máquinas (excepto la que se encuentra en la parte superior de la lista)
  • Ahora vea el .vbox de la máquina que está en la parte superior de la lista

Esa máquina ha sido editada, tiene referencias a las otras máquinas en VDI inmutable.

Entonces, el ERROR es: Editar una máquina agregando un VDI inmutable que es usado por otra afecta la máquina en la parte superior de la lista.

¿Por qué demonios reutilizo el mismo 4GiB VDI en todas las máquinas con Windows? Fácil, es un disco MBR con una partición FAT32 donde pongo pagefile.sys, ya que es inmutable, todas las máquinas virtuales crearán un archivo en su carpeta de instantáneas donde almacenan los cambios, y eso se pierde en el próximo arranque, así que lo hago. no necesito 4GiB para cada invitado almacenado en el disco host, solo uno ... de esa manera ahorro una gran cantidad de GiB ya que tengo más de 20 ventanas diferentes para probar aplicaciones que desarrollo para el mío, todas las combinaciones de (XP, Vista , 7, 8, 8.1, 10) * (32Bits, 64Bits) * (Al igual que en la primera instalación, después de cada ServicePack, después de la actualización completa de Windows), recibo muchos, muchos invitados ... así que en todos Comparto el VDI 4GiB inmutable para el RAM virtual (pagefile.sys).

Y si deja que el ERROR vaya más allá, intente mover una de esas máquinas a otro host VirtualBOX (recuerde que solo son máquinas virtuales con una configuración y aún no hay ningún invitado instalado en ellas), verá que VirtualBox no le permite agréguelos ya que faltan algunos VDI (es FALSO y VERDADERO, es que esa primera máquina contiene las referencias a tales VDI en lugar de estar en la máquina correcta).

Ahora compare los archivos .VBOX de todos ellos con versiones anteriores de BackUp ... ¿nota cómo se modifica uno incorrectamente? ... sí, es el que está en la parte superior de la lista.

Bueno, este ERROR fue informado a VirtualBOX hace algunos años, todavía no pueden solucionarlo ... y está causando muchos, muchos problemas.

Además, si mueve la máquina superior de las máquinas virtuales a una posición inferior, cierre VirtualBox y vuelva a iniciarla ... le indicará que algunas máquinas están dañadas y no se pueden iniciar ... sí, la primera de la lista debe tratarse de una forma diferente si no desea tener muchos problemas.

Es un ERROR realmente malo que me llevó muchos días descubrir (hace algunos años). ¡Lo aprendo de la manera difícil!

Lo superé con una máquina que llamé:

  • Common Inmutable Disks

Tiene una configuración vacía y solo un VDI, sí, tiene razón, lo adivina, el VDI inmutable que comparto para todas las demás máquinas virtuales.

Bueno, cuando abro el archivo .VBOX veo en su interior muchas líneas en la <MediaRegistry> <HardDisks>sección, una por cada máquina donde uso ese VDI inmutable ... solo como muestra (elimino datos privados):

<MediaRegistry>
  <HardDisks>
    <HardDisk uuid="...UUID..." location="D:\VDIs\_Virtual_Memory_.vdi" format="VDI" type="Immutable">
      <HardDisk uuid="{...UUID...}" location="Snapshots\{...UUID...}.vdi" format="VDI" autoReset="true"/>
      <HardDisk uuid="{...UUID...}" location="D:\VMs\Windows001 ... // This belongs to other virtual Machine
      <HardDisk uuid="{...UUID...}" location="D:\VMs\Windows002 ... // This belongs to other virtual Machine
      <HardDisk uuid="{...UUID...}" location="D:\VMs\Windows003 ... // This belongs to other virtual Machine
      <HardDisk uuid="{...UUID...}" location="D:\VMs\Windows004 ... // This belongs to other virtual Machine
      <HardDisk uuid="{...UUID...}" location="D:\VMs\Windows005 ... // This belongs to other virtual Machine
      <HardDisk uuid="{...UUID...}" location="D:\VMs\Windows006 ... // This belongs to other virtual Machine
      <HardDisk uuid="{...UUID...}" location="D:\VMs\Windows007 ... // This belongs to other virtual Machine
      <HardDisk uuid="{...UUID...}" location="D:\VMs\Windows008 ... // This belongs to other virtual Machine
      <HardDisk uuid="{...UUID...}" location="D:\VMs\Windows009 ... // This belongs to other virtual Machine
      <HardDisk uuid="{...UUID...}" location="D:\VMs\Windows010 ... // This belongs to other virtual Machine
      <HardDisk uuid="{...UUID...}" location="D:\VMs\Windows011 ... // This belongs to other virtual Machine
      <HardDisk uuid="{...UUID...}" location="D:\VMs\Windows012 ... // This belongs to other virtual Machine
      <HardDisk uuid="{...UUID...}" location="D:\VMs\Windows013 ... // This belongs to other virtual Machine
      ... and so on ...  // This belongs to other virtual Machine
    </HardDisk>
  </HardDisks>
</MediaRegistry>

Pretty BUG, ​​no resuelto desde hace años.

Bueno, para mover tales máquinas ... debe editar manualmente los archivos .VBOX, para poner todas esas referencias de discos en el nuevo host en la primera máquina (la que está en la parte superior de la lista) antes de agregar el .VBOX archivos a la lista, por lo que al agregarlos VirtualBOX tiene las referencias a los VDI que faltan (faltante causado por el gran ERROR).

El problema ocurre porque cada vez que conecta un VDI que se usa en otra máquina, VirtualBOX actualiza dos archivos .VBOX de máquinas (el que pertenece a la máquina que está usando) y el primero de la lista.

No estoy totalmente seguro de lo que sucederá cuando esté en la lista, el primero no tiene un VDI común asociado ... mejor no intentarlo, visto lo que veo.

Por lo tanto, migrar a otro HOST es mucho más complicado de lo que parece ser debido a una muy mala implementación en la estructura interna de los archivos .VBOX y debido a errores realmente grandes cuando VirtualBOX los edita.

Falla:

  • La estructura interna (XML) depende del HOST (Windows o Linux)
  • Editar una máquina puede alterar otra, no solo la que se está editando
  • ... qué más ?

Necesito más ... siempre migro máquinas haciendo esto (y nunca tuve ningún problema):

  1. Tome nota de la lista de todas las máquinas (orden, agrupación, etc.)
  2. Tome nota del primero en la lista (toda su configuración)
  3. Tome nota de todas las propiedades de las máquinas que quiero mover a otro host
  4. Copie los archivos .vbox como archivos .txt (el que está en la parte superior de la lista + todas las máquinas que quiero migrar)
  5. Recree todas las máquinas (y tenga una especial en la parte superior de la lista) dentro de VirtualBox en el nuevo host
  6. Cerrar VirtualBox en el nuevo host
  7. Diferencia comparar el antiguo .txt con los nuevos archivos .vbox y copiar de .txt a .vbox algunas partes de forma humana, no solo copiar y pegar
  8. Abra VirtualBox y conecte todos los VDI en el orden correcto
  9. Nuevamente, cierre VirtualBox en el nuevo host
  10. Diferencia comparar el viejo .txt con los nuevos archivos .vbox y 'arreglar' de .txt a .vbox algunas partes en forma humana, no solo copiar y pegar

Todo lo demás (carpeta de instantáneas y archivos VDI) los copio de la manera normal (Sistema de archivos Copiar y pegar).

Big BUG VirtualBox causa todo ese arduo trabajo manual: edita / altera una máquina que no ha sido modificada cuando conecta un VDI inmutable que se usa en más de una máquina, de lo contrario, basta con copiar y pegar el archivo .VBOX. arreglando rutas de carpetas compartidas, etc.).

Laura
fuente
-2

Copie la carpeta que contiene la máquina al destino, luego desde el menú: "Máquina" ---> "Agregar", y luego elija el archivo vbox, NO el archivo vdi. Para mí esto fue perfecto. No estoy seguro si tuve suerte o si se supone que funciona de esta manera.

Thia Zol
fuente