¿Cómo mover archivos de VirtualBox?

165

Por defecto, VirtualBox almacena todos los datos en un directorio debajo del directorio de inicio. Sé cómo cambiarlo, pero ¿cómo puedo cambiar la ubicación de las imágenes existentes (sin editar VirtualBox.xml manualmente)?

Estoy trabajando en Windows y no quiero intentar usar ningún enlace NTFS .

maaartinus
fuente
44
Awww, iba a sugerir enlaces simbólicos (resuelven Everything ™), pero has bloqueado esa idea ... :(
DMA57361
2
No confío en absoluto en los enlaces de Windows. Si bien NTFS es capaz de hacerlo, Windows XP no sabe nada al respecto y ya tiene suficientes problemas. Puede que sea innecesariamente cobarde ...
maaartinus
Ah, sí, no los tocaría en XP. Pero el soporte en 7 es bastante sólido: todavía tiene que construirlos desde la línea cmd, pero eso no es realmente una tarea difícil. No estoy seguro acerca de Vista ...
DMA57361
Es aún peor, la versión XP de NTFS admite enlaces duros, pero estos no pueden abarcar volúmenes . Obviamente, quería mover los datos a una partición diferente.
maaartinus
Los enlaces duros nunca pueden abarcar volúmenes, solo los enlaces simbólicos pueden (y pueden usarse para este tipo de cosas, mis carpetas de usuario están todas enlazadas a mi segundo HDD, por ejemplo). Pero, personalmente, aún evitaría los enlaces duros en XP (incluso si fueran una opción).
DMA57361

Respuestas:

136

Si quiere MOVER toda su VM a una ubicación completamente nueva, debe seguir estas 2 respuestas:

Copiando la publicación aquí:

  1. Cierre VirtualBox, haga una copia de seguridad de su archivo .VirtualBox \ VirtualBox.xml.
  2. Busque su carpeta "Virtualbox VMs" existente y copie (no mueva) toda la carpeta con contenido a su nueva unidad E:
  3. Ejecute VirtualBox, luego para cada VM a su vez:

    3.1 Haga clic derecho en el nombre de la máquina virtual y seleccione "Eliminar" en el menú emergente. Responda no a "¿eliminar archivos físicamente?" pregunta.

    3.1b después de eliminar una VM de la interfaz de usuario, debe cerrar VirtualBox y dejarlo cerrado durante el tiempo suficiente para que la tarea de fondo VBoxSVC agote el tiempo de espera y finalice también. Luego, puede iniciar la aplicación VirtualBox nuevamente y usar Machine | Add para volver a agregar las máquinas virtuales eliminadas en el paso anterior.

    3.2 Seleccione el elemento de menú Máquina | Agregar .., navegue a la nueva ubicación de VM en la unidad E :, y seleccione el archivo .vbox.

    3.3. Repita para cualquier VM restante.

  4. En Archivo | Preferencias, configure la ruta de máquina predeterminada en "E: \ VirtualBox VMs"
  5. Pruebe cada una de las máquinas virtuales. Solo después de estar seguro de que todos funcionan, elimine la carpeta que contiene la máquina virtual anterior, es decir, elimine "C: \ VirtualBox VMs".
Lucas Pottersky
fuente
Cuando hago esto para la máquina de clones vinculados, no se inician
Nam G VU
1
Esto funcionó para mí, aunque también necesitaba actualizar las rutas a cada disco duro e imagen de instantánea editando el .VirtualBox\VirtualBox.xmlarchivo y haciendo una búsqueda / reemplazo. Además, solo moví las carpetas Machinesy HardDisk, no todos los archivos contenidos .VirtualBox, ya que esa es toda la configuración global y el registro y tal.
Dave Andersen
44
Para usuarios de Mac OS X, VirtualBox.xmlse encuentra en ~/Library/VirtualBox/VirtualBox.xml. Las máquinas virtuales se encuentran en ~/VirtualBox VMs.
Siu Ching Pong -Asuka Kenji-
2
Virtual Box 4.3.0+ ha resuelto la "última cosa importante", ni siquiera tuve que cerrarla: instrucciones .
PCaetano
Quizás también podría agregar la línea de comando "versión". 1) Lista de máquinas virtuales existentes a través de VBoxManage list vms. 2) Junto a los nombres de las máquinas virtuales, dentro de las llaves, se hace referencia a sus UUID. Copia el de interés. Los detalles al respecto, se pueden recuperar a través de VBoxManage showvminfo UUID. 3) Anule el registro de la VM de interés a través de VBoxManage unregistervm UUID. 4) Mueva el directorio de la VM de interés. 5) Finalmente, registre la máquina a través de VBoxManage register NameOfVM.vbox, obviamente, donde NameOfVM significa el nombre real del .vboxarchivo VM que se registrará.
Nikos Alexandris
58

Solo tenía un par de máquinas virtuales, y descubrí que solo podía cambiar la ubicación de almacenamiento predeterminada para VirtualBox y luego clonar mis máquinas virtuales. Los clones se crearon en la nueva ubicación en el nuevo HD donde los quería. Todo intacto, instantáneas y sin necesidad de reasignar la ubicación de los HD virtuales.

Thomom
fuente
3
+1 Creo que este es el mejor método. VirtualBox mueve todo por ti en un pequeño paquete ordenado.
Dave Andersen
3
esta es la mejor manera, no requiere edición manual de cfg
Bojan Bjelic
¿¿¿Cómo haces esto???
FlipFloop
Esta realmente debería ser la respuesta aceptada
theV0ID
1
Advertencia: Clone no produce una copia perfecta y puede provocar la necesidad de actualizar las licencias para el software instalado a medida que cambian los identificadores de máquina / disco. Encontró esto al mover una copia antigua de Quicken en una máquina virtual a un nuevo disco.
MZB
36

El método más fácil no requiere eliminar sus máquinas virtuales y anular su configuración.

  1. Copie su carpeta de Virtualbox VM en una nueva unidad.

  2. Ejecute Virtual Box Machine Manager. Ejecute el archivo del Administrador de medios -> Administrador de medios virtuales

    2a. Elija la VM para mover el almacenamiento. Haga clic en el botón Liberar y luego en el botón Eliminar . En el siguiente cuadro de diálogo, puede quitar o conservar la unidad virtual. Cierre el administrador dejándolo en su Virtualbox Machine Manager.

  3. Seleccione la VM para la que acaba de eliminar los medios, haga clic en el botón Configuración , haga clic en la sección Almacenamiento . Agregue un controlador para los medios (generalmente SATA) y luego agregue un disco duro y elija el disco existente y seleccione el VD en su nueva ubicación.

  4. Repita para cada máquina que esté moviendo

Encienda su máquina virtual en la nueva ubicación para verificar. La próxima vez que visite el Virtual Media Manager , al pasar el mouse sobre la entrada de VM, se mostrará dónde está almacenado el VD.

Asegúrese de cambiar sus carpetas de instantáneas para que apunten a la nueva unidad si las está utilizando. Cada máquina tiene una configuración de carpeta de instantáneas y VM Manager tiene una configuración de carpeta de Máquina predeterminada en Archivo -> Configuración que también debe cambiarse.

Además, también tuve que modificar la ruta en el archivo xml. Después de eso funcionó a la perfección.

NOTA: Las cosas han cambiado un poco desde que esto fue escrito, vea la respuesta de Rob. Es extremadamente simple ahora.

Laboratorios Fiasco
fuente
2
Creo que esta es, con mucho, la forma más fácil de hacerlo.
Peter Perháč el
17

MUCHO, MUCHO más simple. 1) muévase a una nueva ubicación 2) Haga clic con el botón derecho en eliminar del menú de virtualbox 3) Seleccione 'agregar' del menú de la máquina 4) Busque el icono azul de 8kb que tiene un tipo de 'definición de máquina de virtualbox'. Selecciónelo y se agregará a su lista de virtualbox. haga doble clic en la máquina virtual y funciona.

Robar
fuente
Incluso más simple que esto es cuando desea agregar las máquinas virtuales a VirtualBox, simplemente haga clic en el *.vboxarchivo en su carpeta.
Joel Mellon
2
Cómo cambian las cosas en tres años ... Desearía haber sido así de fácil en aquel entonces. Se agregó una nota a mi respuesta para que vengan a ver esta.
Fiasco Labs
1
Esto realmente debería estar más arriba. Jugueteé y no pude hacerlo funcionar. Simplemente quitando los "inaccesibles" en la interfaz de usuario y luego haciendo doble clic en el archivo .vbox lo volvió a agregar usando la nueva ubicación.
wenbert
No funciona en el host de Linux. Obteniendo este error: La sesión de VM se cerró antes de intentar encenderla. Código de resultado: NS_ERROR_FAILURE (0x80004005) Componente: SessionMachine Interface: ISession {7844aa05-b02e-4cdd-a04f-ade4a762e6b7}
Max N
1
La parte "eliminar" de este método parece una mala idea que provocará la pérdida de la configuración, pero no es así. Este método mantiene todas sus configuraciones y es el más fácil de todos los métodos que probé. Funcionó en un host de Windows 10 con invitados de Windows 7 y Windows Sever 2016.
Night Owl
13

En Mac, edite las rutas en este archivo:

/Users/pleddy/Library//VirtualBox/VirtualBox.xml

Eso fue fácil, ¡listo!

pcharlesleddy
fuente
3
Está usando Windows y tampoco quiere editar VirtualBox.xml.
ChrisN
44
Sin embargo, esto fue útil para mí, ya que esta pregunta aún se puede buscar en Google si estás en Mac.
NReilingh
Soy un usuario de Mac y Google me trajo aquí y esta solución es la más simple de todas, tiene mucho sentido y funcionó para mí :)
Mohit Singh
Estoy en Linux y me gustó el sonido de esta respuesta, pero la advertencia en la parte superior del archivo me desanimó. ¿Seguiría recomendando editar el XML directamente? La advertencia dice: ** NO EDITE ESTE ARCHIVO. Si realiza cambios en este archivo mientras se está ejecutando cualquier aplicación relacionada con VirtualBox, sus cambios se sobrescribirán más tarde, sin que surtan efecto. Use VBoxManage o la GUI de VirtualBox Manager para hacer cambios. **
craq
11

Después de perder todo un día en este problema (usando Virtualbox 5.0.12 en Arch Linux), finalmente lo resolví de la manera que sugiere la respuesta de thomthom. Para aquellos que no están seguros sobre el procedimiento exacto, el comando que clona una máquina completa (incluidas las instantáneas) es:

VBoxManage clonevm --mode all --basefolder </new/path/> --register <VM_to_clone>

Obtenga el nombre de la VM con

VBoxManage list vms

Si es necesario, indique la ruta y el nombre.

Finalmente, verifique si todo está bien y elimine el original.

Eso es todo, de verdad. No es necesario molestarse con archivos xml o un editor hexadecimal. Tampoco es necesario usar una GUI.

http://www.virtualbox.org/manual/ch08.html#vboxmanage-clonevm

Michael P
fuente
Esta fue la única respuesta que funcionó para mí. Debería estar más arriba.
Max N
2
VM_to_clonees el UUID o nombre de la VM. Con el comando dado (usando un UUID), se creó un directorio en /new/path/_<UUID>_ Cloney los archivos que lo contenían también se usaron _<UUID>_ Clonecomo nombre. Para tener un nombre más explícito, use la --name "Your preferred name here"bandera.
Rob W
... y para eliminar la VM original a través de la CLI, VBoxManage unregistervm UUID(UUID de VM que obtuvo VBoxManage list vms, no use el nombre de la VM porque si usa --namepara preservar el nombre original, entonces tiene varias VM con el mismo nombre)
Rob W
Advertencia: Clone no produce una copia perfecta y puede provocar la necesidad de actualizar las licencias para el software instalado a medida que cambian los identificadores de máquina / disco. Encontró esto al mover una copia antigua de Quicken en una máquina virtual a un nuevo disco.
MZB
Parece que hay un comando dedicado ahora, de todos modos: virtualbox.org/manual/ch08.html#vboxmanage-movevm
Michael P
4

Para hacer lo mismo que en la respuesta de Lucas Pottersky pero a través de la línea de comando (en Windows reemplace vboxmanagecon VBoxManage.exe):

  1. Listar todas las máquinas virtuales:

    vboxmanage list vms
    

    o solo corriendo:

    vboxmanage list runningvms
    

    que para cada máquina emite el nombre y el UUID.

    Realice los siguientes pasos para cada máquina que moverá.

  2. Con gracia, apáguelo:

    vboxmanage controlvm UUID acpipowerbutton
    
  3. Anular registro:

    vboxmanage unregistervm UUID
    
  4. Mueva la carpeta de la máquina virtual a la nueva ubicación.

  5. Regístrese de nuevo proporcionando la ruta al .vboxarchivo:

    vboxmanage registervm /path/to/machine.vbox
    
Mixel
fuente
2

Esto funcionó para mí con la versión para MacOS de VirtualBox también (versión 4.1.12). Esperé 5-10 segundos para que VirtualBox se cerrara antes de reiniciar. Miré en el Monitor de actividad para asegurarme de que VBoxSVC había salido correctamente.

Si no hace esto, recibirá un error similar al siguiente (estoy copiando y pegando el mensaje de error de otra persona que proviene de Windows). Si obtiene este error, es simplemente porque no abandonó VirtualBox o no esperó lo suficiente para que VBoxSVC se cierre.

Failed to open virtual machine located in E:/<path>/<machine_name>/<machine_name>.vbox.

Cannot register the hard disk 'E:\<path>\<machine_name>\Snapshots/{0ece4bff-9185-4cff-9069-b3d1f4536394}.vdi' {0ece4bff-9185-4cff-9069-b3d1f4536394} 
because a hard disk 'C:\<path>\<machine_name>\Snapshots/{0ece4bff-9185-4cff-9069-b3d1f4536394}.vdi' with UUID {0ece4bff-9185-4cff-9069-b3d1f4536394} already exists.

Result Code: E_INVALIDARG (0x80070057)
Component: VirtualBox
Interface: IVirtualBox {c28be65f-1a8f-43b4-81f1-eb60cb516e66}
withfries2
fuente
2

En OS X con VirtualBox v4.3.14, todo lo que tuve que hacer fue hacer doble clic en el .vboxarchivo desde la nueva ubicación, y abrió VirtualBox y lo agregó a la lista de máquinas virtuales disponibles.

Tyson Phalp
fuente
Por favor no agregue "gracias" como respuesta. En su lugar, vote las respuestas que encuentre útiles.
Scott
Mi respuesta no es un 'gracias'. Edité la redacción para hacerlo más obvio. Gracias.
Tyson Phalp
2

Hay una ubicación de almacenamiento predeterminada en la configuración en VirtualBox: http://mattvelic.com/default-vm-location/

Ahora muerto La máquina Wayback tiene el contenido:

http://web.archive.org/web/20131116130725/http://mattvelic.com/default-vm-location

... mira las Preferencias en el menú Archivo. ¡Mirad! El primer elemento en la pestaña General es Carpeta de máquina predeterminada. http://web.archive.org/web/20131116130725im_/http://54.225.211.105/wp-content/uploads/2012/11/VB_Preferences.png Edité la ubicación para apuntar a mi unidad de almacenamiento, y rápidamente rehice mi VM. Esta vez, VirtualBox creó los archivos de la máquina y el VDI en la ubicación correcta. La verdadera lección aquí es que a veces la solución no necesita ser técnica. Creo que, como profesionales de TI, tendemos a pensar que la respuesta a un problema será complicada. ¡Mantenga sus ojos abiertos para las soluciones obvias!

Rebecca
fuente
Este enlace ahora está muerto. Intenta no publicar enlaces como respuestas. Cuando mueren, SU se queda con la ruina para limpiar.
mrtsherman
actualizado con contenido de archive.org
Rebecca
1

No creo que esto sea posible.

Puede mover el VDI a la nueva ubicación, pero no creo que pueda evitar la modificación de XML. Como alternativa (pero eso es lo mismo que la edición XML), ¿crearía una nueva máquina virtual con la GUI y elegir la imagen movida como disco satisfaría sus necesidades?

M'vy
fuente
1
Eché un segundo vistazo al xml y en realidad es muy simple. Crear una nueva máquina no es bueno ya que me gustaría preservar mi configuración (no recuerdo lo que he cambiado, puede ser completamente irrelevante o no).
maaartinus
1

Probé el método original (elimine el VDI, adjunte la nueva copia), recibí el mensaje de que el anterior todavía existe y no pude adjuntar la nueva copia incluso cuando reinicié el sistema operativo (en Mac OS X El Capitan).

La solución estaba en el menú / Archivo / Virtual Media Manager, elimine el VDI existente. Esto funciona incluso si hay instantáneas; simplemente elimine todas las instantáneas VDI en orden inverso. No es necesario cerrar y volver a abrir VirtualBox.

marty39
fuente
0

Nunca utilicé virtualbox en Windows, pero en ubuntu mueves el VDI y en la GUI de virtualbox haces clic derecho en la VM y usas Menú de configuración -> almacenamiento donde puedes cambiar la localización de VDI a donde moviste el archivo. Con respecto a la definición de otros archivos de máquina, los mueve y en la GUI va a Preferencias y cambia la posición del directorio de máquinas predeterminado al directorio que movió.

Laurent
fuente
0

Yo uso este método:

  1. Desde VirtualBox GUI, elija su VM y retire el HDD adjunto
  2. Copie el archivo (es decir, vdi) a la nueva ubicación
  3. Genere un nuevo UUID para .vdi en la nueva ubicación con el comando vboxmanage internalcommands sethduuid "my path to myhdd.vdi" 6912BF7F-13BB-4E70-A2CA-C92300FEC3DC

    (En el ejemplo anterior, use su propio UUID, o no lo agregue en absoluto: el comando generará uno automáticamente. Además, si omite este paso, al agregar el .vdi desde la nueva ubicación obtendrá un error de que el UUID ya existe )

  4. Ahora, de vuelta a la GUI de VirtualBox, elija su VM y en Configuración / Almacenamiento adjunte el HD (archivo .vdi) desde su nueva ubicación.

y hecho.

Fernando Gonzalez Sanchez
fuente
-1

En Oracle VM VirtualBox (probado con la versión 6.0.4), simplemente apague su VM -> haga clic derecho en la VM en VirtualBox Manager -> haga clic en "Mover ..." -> elija el nuevo directorio. ¡Eso es!

Silvio Jäger
fuente
@Moreaki: Por cierto, "legibilidad" (y "legible") se escriben sin una "D".
Scott