Clonar discos vdi para VirtualBox desde la terminal

Para los que probamos muchas cosas con diferentes
sistemas operativos, es muy frecuente que usemos máquinas virtuales para
nuestros ensayos. También es muy frecuente que necesitemos partir de
una instalación completamente limpia, para asegurarnos de que los
resultados que obtenemos no se producen por los efectos colaterales de
algún otro programa o configuración.

En este caso, tenemos dos opciones:

  • Crear una máquina virtual nueva, desde cero, con todo el trabajo que ello conlleva.
  • Disponer de una máquina virtual completamente limpia e ir haciendo copias de su disco duro según lo vayamos necesitando.

Como puedes imaginar, esta segunda opción es mucho más rápida y,
por ese motivo, es la que voy a explicar a continuación. Además, vamos a
estudiar dos soluciones diferentes para el mismo problema.

Primera solución: Hacer una copia manual del disco.

La primera solución que se nos puede ocurrir consiste en hacer una copia del disco virtual, como si se tratara de un archivo cualquiera.

Para nuestro ejemplo, partiremos de una máquina virtual que tiene instalado el sistema operativo Ubuntu Server. Si observamos la ventana principal de VirtualBox, comprobamos que el archivo que contiene el disco duro virtual se llama Ubuntu.vdi.

1

El archivo que la máquina virtual utiliza como disco duro

Recuerda que, en realidad, Carpeta personal hace referencia a la ubicación /home/usuario (donde usuario es el nombre de la cuenta con la que estás trabajando.

Sin embargo, necesitamos saber dónde guarda VirtualBox, de forma predeterminada, sus discos virtuales. Y la respuesta es muy sencilla: Dentro de la carpeta principal del usuario encontraremos una subcarpeta llamada Virtualbox VMs y, en su interior, una nueva subcarpeta por cada máquina virtual que vayamos creando y cuyo nombre coincide con el de la propia máquina.

Es decir, en nuestro caso, encontraremos los archivos de la máquina virtual anterior dentro de Carpeta personal > VirtualBox VMs > Ubuntu.

2

Dentro de la carpeta encontramos el archivo Ubuntu.vdi.

Para copiar el archivo, bastaría con hacer clic, con el botón derecho del ratón, sobre el icono que lo representa.

3

… Y en el menú de contexto que aparece, elegir la opción Copiar.

A continuación, podríamos desplazarnos hasta el lugar donde queremos guardar la copia pero, para simplificar las cosas, en este ejemplo la crearemos en el mismo lugar donde se encuentra el original.

Por lo tanto, volvemos a hacer clic con el botón derecho del ratón sobre un espacio libre del área de trabajo de la ventana.

4

… Pero ahora, en el menú de contexto, elegimos la poción Pegar.

En principio, podemos pensar que el objetivo está conseguido, por lo que iniciaremos la creación de una nueva máquina virtual y, al definir la Unidad de disco duro, seleccionamos la opción Usar un archivo de disco duro virtual existente.

5

… Y hacemos clic en el botón para buscar archivos

En la ventana que aparece, nos desplazamos hasta la ubicación de la copia que creamos anteriormente y hacemos clic sobre él.

6

Para seleccionarlo, hacemos clic sobre el botón Abrir.

Cada disco duro, real o virtual, dispone de un UUID (Universally Unique Identifier) que permite crear sistemas de archivos únicos.

Sin embargo, recibimos un mensaje de error porque VirtualBox detecta que ya existe otro disco duro virtual con el mismo UUID del que estamos intentando utilizar ahora (el archivo Ubuntu.vdi del que hemos partido).

7

Una vez que hemos leído el mensaje de error, hacemos clic sobre el botón Aceptar.

Para resolverlo, abrimos una ventana de terminal (Alt + Ctrl + T) y nos desplazamos hasta el directorio donde se encuentra el archivo copiado:

cd "/home/usuario/VirtualBox VMs/Ubuntu"

(Como probablemente sepas, usamos comillas cuando la ruta a la que nos queremos desplazar contiene espacios en blanco)

A continuación, utilizamos VBoxManage, que es la línea de comandos de VirtualBox. Desde ella, podemos controlar por completo VirtualBox. Nó sólo las características que tenemos a nuestro alcance desde la interfaz gráfica, sino también un gran número de opciones complementarias. La sintaxis concreta para cambiar el UUID del disco duro virtual es la siguiente:

VBoxManage internalcommands sethduuid "Ubuntu (copia).vdi"

8

El comando nos responde con el nuevo valor de UUID asignado al disco duro virtual.

Ahora sólo queda repetir el paso 6 (de hecho, yo he hecho el cambio de UUID en un escritorio diferente y sólo he tenido que volver al escritorio anterior para repetir el proceso).

9

Elegimos el archivo y hacemos clic sobre el botón Abrir.

Al final, comprobaremos que la nueva máquina virtual se ha creado satisfactoriamente.

10

… Y que el disco duro virtual asignado es el correcto.

Segunda solución: clonar el disco.

La línea de comandos de VirtualBox es muy potente. De hecho, además de asignar un nuevo UUID a cualquier disco existente, también tenemos la posibilidad de hacer una clonación completa de dicho disco. Así, en un solo paso, duplicamos el disco y cambiamos su UUID.

El comando necesario para hacerlo es este:

VBoxManage clonehd Ubuntu.vdi Ubuntu3.vdi

Por supuesto, damos por hecho que ya nos encontramos en la carpeta que contiene al archivo Ubuntu.vdi. Si no fuese así, deberíamos utilizar el comando cd, como hicimos en el apartado anterior. Observa también que, en este caso, no hemos utilizado comillas para el nombre de los archivos, ya que ninguno de ellos contiene espacios en blanco.

Al ejecutar el comando, se nos va mostrando en pantalla el porcentaje de la operación que ya se ha completado, para que podamos seguir el avance de la operación.

1

Al final, también nos muestra el UUID que se ha asignado al nuevo disco.

Ya sólo quedará ejecutar el asistente para la creación de una nueva máquina virtual y, al definir la Unidad de disco duro, seleccionamos la opción Usar un archivo de disco duro virtual existente.

En la ventana que aparece, nos desplazamos hasta el lugar donde se encuentra el disco clonado y hacemos clic sobre él.

2

Para seleccionarlo, hacemos clic sobre el botón Abrir.

Al final, comprobaremos de nuevo que la nueva máquina virtual se ha creado satisfactoriamente.

3

… Y que está usando el disco que hemos clonado.

Una cuestión importante, que debes tener en cuenta, es que todo lo que hemos explicado en este artículo es directamente aplicable en instalaciones de VirtualBox instaladas sobre un ordenador anfitrión equipado con un sistema operativo Windows de Microsoft.

One more thing…

Si necesitas conocer más detalles sobre el modo en el que se guarda
la información dentro de un archivo vdi, puedes echarle un vistazo al
artículo Estructura interna de un archivo vdi.

También vimos hace un tiempo cómo Montar un disco vdi en un ordenador anfitrión con Ubuntu 14.04.