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


Uso VirtualBox 4.1.x en mi máquina Ubuntu y he configurado varias máquinas virtuales. Dado que hay varias maneras en que uno puede mover una máquina virtual en VirtualBox a otra computadora, me pregunto cuál es la manera recomendada:

  1. Use la "utilidad de importación / exportación".
  2. Copie la carpeta completa de la máquina virtual, que contiene .vdi y .vbox archivos.
  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!

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

Por fin, está el 3er método, pero requiere el trabajo adicional de crear una máquina virtual similar a la configuración de máquina virtual original, lo cual no es deseable.

De la explicación anterior queda claro que mi método deseado es el segundo, pero necesito el asesoramiento de un experto 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?


197


origen


Simplemente transfiera los archivos y colóquelos en la misma ubicación. - Ramhound
@seyed 1. A a prueba de fallos solución con altas tasas de éxito / reproducibilidad puede no ser siempre la recomendado y / o mejor solución a un problema y viceversa. Sin embargo, desde entonces, preguntas sobre el recomendado solución, opcion 2) de su lista (aunque propenso a errores) sería el más rápido y, por lo tanto, ¡recomendado! Opciones (1) y (3) caer bajo el a prueba de fallos categoría, ya que será trabajar en la mayoría de las circunstancias. P.S .: después de la exportación, algunos (¿la mayoría?) Parámetros de configuración se pueden cambiar (si se usan las opciones 1/3). ... Espero que esto ayude. - Amar


Respuestas:


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

  1. (Utilice la "utilidad de importación / exportación"). Esto es lo más fácil porque combina la VM completa en un solo archivo y la transfiere sin problema prácticamente todo el tiempo. Sin embargo, en mi experiencia al crear el archivo OVA o 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 máquina virtual, 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 .vdi y .vbox archivos). Esta es mi opción preferida y aunque he tenido que editar varias veces el archivo XML, ha sido culpa mía por haber estropeado algo. Asegúrese de que cuando copie la VM, obtenga TODOS los archivos asociados a ella. Los problemas con los que me 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 en absoluto.

  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 entonces 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úrate de obtener todos los archivos necesarios cuando lo muevas de nuevo.


139



Gracias por la respuesta. Esperaré unos días más para ver si alguien más tiene otro punto. (+1) - Seyed Mohammad
Parece que nadie tiene nada que agregar ... Así que estoy marcando esto como la respuesta. - Seyed Mohammad
Solo una referencia adicional para la Opción 1, enlazarDespués de la importación, el formato es VDMK, parece estar determinado y no se puede cambiar. - simongcc
@tbenz ¿Cómo evito obtener un VMDK al exportar? - Don Rhummy
Solo para completar: si realiza 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 de VM]. Probablemente sea una buena idea colocar los nuevos archivos VM en la misma carpeta donde se almacenan todas las otras máquinas virtuales. - Donn Lee


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

  1. Detenga 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ú de la máquina ≥ Agregue y busque su carpeta anterior.

¡Eso es!

PD: Tengo VirtualBox 4.3.20 en OSX 10.10

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


34



¡No puedo creer que no se haya votado tanto como debería! Esta es la manera más fácil (¡muy fácil!) Al mover las máquinas virtuales dentro del mismo sistema operativo. Con éxito movió dos VM de la unidad C a la unidad D. La mía es Win7 de 64 bits con Virtualbox 5.x - Edwin Yip
En realidad, esto no funciona solo para mover el archivo VDI, solo la máquina virtual completa. - DustWolf
@DustWolf Correcto, pero de eso se trata la pregunta de la operación. - 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? - Nik-Lz
@RestlessCobra sí, la nueva carpeta contiene toda la máquina virtual. - David


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

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

Pero a veces ocurre una discrepancia UUID. A menudo esto sucede si simplemente copia la imagen del disco VDI de una máquina en otra máquina, pero también sucedió 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:

Error al abrir el disco duro.

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

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 asignarle un nuevo UUID al disco:

VBoxManage internalcommands sethduuid Sandbox.vdi

16





En caso de que alguien más esté buscando una respuesta, moví con éxito 5 máquinas virtuales de Virtual Box a otra instalación de Win7 en un disco duro nuevo en la misma máquina (esencialmente un paso de un sistema operativo 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 la mudanza, pero he documentado el proceso a continuación con la esperanza de que pueda ayudar a alguien.

  • No hubo ningún requisito para clonar VM o 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 / disco compartido para conservar las máquinas virtuales existentes / antiguas intactas. Todavía puedo arrancar desde el viejo disco duro que he conservado para la resolución de redundancia / problema hasta que estoy 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 Old Win7 Host:

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

En el nuevo host Win7:

  1. Crear una nueva carpeta llamada X: \ NewVMs \ VirtualBox VMs (desde la nueva máquina Win7 para asegurar que los permisos estén en orden)
  2. Copie / Pegue (no arrastre) todas las máquinas virtuales y los contenidos de las carpetas relacionadas de la carpeta anterior a esta carpeta (utiliza nuevos permisos)
  3. Desinstalar VirtualBox (si está instalado)
  4. Eliminar la carpeta .virtualbox y todos los contenidos (si existen)
  5. REINICIAR para confirmar que no quedan archivos de programa o entradas de registro (si se desinstala VirtualBox anterior).
  6. Instalar / Volver a instalar VirtualBox (asegúrese de estar utilizando la misma versión que VirtualBox en la que se crearon VM en el host / máquina anterior (en mi caso versión 4.3.12r93773))
    IMPORTANTE: (No seleccione tickbox para abrir / ejecutar VirtualBox al final de la instalación)
  7. Copie / pegue (no arrastre) la carpeta .virtualbox y el contenido del host Old Win7 (normalmente C: \ Users [username] .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 VirtualBox VMs recién creada: X: \ NewVMs \ VirtualBox VMs
  10. Estado de prueba de las máquinas virtuales

Buena suerte.


9



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 uno anfitrión OS a otro ... "? - pythonlarry


Para el caso especial donde:

  • solo tienes un VM única (o quieres mover todas tus VM),
  • y el anfitrión es el mismo hardware con la misma versión del sistema operativo (o reinstalar el mismo sistema operativo en la misma máquina)

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

  1. Cierre VirtualBox en ambos hosts.
  2. Copia el .config/VirtualBox y VirtualBox VMs carpetas del host de origen.
  3. Copie estas carpetas en el host de destino.
  4. Inicie VirtualBox en el host de destino

2





Utilicé el método 2 también para mover mi máquina virtual y no tuve que hacer ningún cambio en ningún archivo XML, pero obtuve algunos errores con USB y el uso compartido de archivos. A continuación, se muestra cómo los solucioné junto con el proceso:

  1. Copie la máquina virtual de la PC vieja a la nueva. Los archivos de la máquina virtual son diferentes de la máquina virtual de Oracle. Estos archivos generalmente están en c: \ users \\ VirtualBox VMs \. Recogí todo VirtualBox VMs \ parte y lo copió a 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 el cuadro virtual 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 la nueva PC, recibí un error cuando se iniciaba:

enter image description here

  1. No sé por qué el controlador USB no funcionaba porque el mismo funcionaba en la computadora original. Seguí adelante e instalé Paquete de extensión VirtualBox

  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 puedes desactivar el usb.

  3. Si compartió carpetas en la máquina virtual original, pueden diferir y obtendrá un error. Revíselos en Configuración >> Carpeta compartida y elimine los que están rotos. Un mensaje de error se verá

this.

Eso es todo.


0





El cuarto camino

En VirtualBOX:

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

En el Explorador de archivos:

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

Atrás 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 la instalación de VirtualBOX, vaya a C: \ Users \ .VirtualBox, elimine VirtualBox.xml y cambie el nombre de VirtualBox.xml-prev a VirtualBox.xml.


0





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

También asegúrese de usar la misma versión de VirtualBOX en ambos host, pero no solo la versión de VirtualBOX, también la versión de 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, eliminé la configuración de carpetas COMPARTIDAS en VirtualBOX antes de mover la máquina, luego la recreé de la manera correcta ... muy importante cuando el host es un sistema operativo diferente (hosts de Windows / Linux).

Y como nota al margen ... siempre, siempre utilizo archivos VDI de disco duro inmutables para OS así como para VDI de datos (de esa manera el mismo DATA VDI puede usarse para más que para invitados), especialmente el truco para 4GiB pagefile.sys

Esa última parte, reutilizar un archivo VDI inmutable hace que las cosas vayan 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)
  • Crear dos o tres VM en VirtualBOX
  • Mueva uno de ellos a la parte superior de la lista (solo para evitar dañar alguno de los suyos)
  • Haga una copia de seguridad de los archivos .vbox de cada una de las máquinas que haya creado (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 está en la parte superior de la lista)
  • Ahora vea el .vbox de la máquina que se encuentra en la parte superior de la lista

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

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

¿Por qué diablos vuelvo a usar el mismo 4GiB VDI en todas las máquinas con Windows? Fácil, es un disco MBR con una partición FAT32 donde puse pagfile.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 se pierden en el próximo inicio, así que lo hago no necesita 4GiB para cada invitado almacenado en el disco host, solo uno ... así guardo un montón de GiB ya que tengo más de 20 ventanas diferentes para probar aplicaciones que desarrollo para mí, 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 mucho, muchos invitados ... todos ellos comparto el VDI 4GiB inmutable para el ram virtual (pagefile.sys).

Y si permite que el BUG vaya más allá, intente mover una de estas máquinas a otro host de VirtualBOX (recuerde que solo son máquinas virtuales con una configuración y que aún no hay invitados instalados), 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 VDIs en caso de estar en la máquina correcta).

Ahora compare los archivos .VBOX de todos ellos con la copia de seguridad anterior ... observe cómo se modifica erróneamente uno ... sí, es el que se encuentra en la parte superior de la lista.

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

Además, si mueve el superior de las máquinas virtuales a una posición inferior, cierre VirtualBox y reinícielo ... le dirá 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 quiere tener muchos problemas.

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

Lo había superado teniendo una máquina que había llamado:

  • Common Inmutable Disks

Tiene una configuración vacía y solo un VDI, sí, tienes razón, lo has adivinado, el VDI inmóvil lo comparto para el resto de las máquinas virtuales.

Bueno, cuando abro el archivo .VBOX veo dentro de él un montón de líneas en el <MediaRegistry>  <HardDisks> sección, uno 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 esas máquinas ... debe editar manualmente los archivos .VBOX, poner todas las 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 faltantes (faltantes causados ​​por el gran BUG).

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

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

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

Falla:

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

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

  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. Recrear todas las máquinas (y tener una especial en la parte superior de la lista) dentro de VirtualBox en el nuevo host
  6. Cierre VirtualBox en el nuevo host
  7. Diff compara el antiguo .txt con los nuevos archivos .vbox y copia de .txt a .vbox algunas partes de una manera humana, no solo Copiar y Pegar
  8. Abra VirtualBox y conecte todas las VDI en el orden correcto
  9. De nuevo, cierre VirtualBox en el nuevo host
  10. Diff compara el viejo .txt con los nuevos archivos .vbox y 'fix' 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 (File System Copy & Paste).

Todo ese duro trabajo manual es causado por Big BUG VirtualBox: 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 (después de arreglar rutas de carpetas compartidas, etc.).


-1





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.


-2