Máquina virtual con disco de diferenciación en VirtualBox

Una de las mejores y más recomendables técnicas para probar nuevas configuraciones, aplicación de parches o simplemente por trastear un poco, es la de tener un 'laboratorio' de máquinas virtuales, esto nos permite testear de manera segura sin necesidad de usar nuestras máquinas reales. Pero no todo pueden ser ventajas al usar máquinas virtuales ya que en mayor o menor medida consumen nuestros recursos de espacio en disco. Una solución podría ser la de borrar las máquinas virtuales que no usemos en ese momento, pero casi siempre volveremos a necesitar en alguna situación precisamente la que hemos borrado (gracias Murphy).

Una de las posibilidades que nos proporcionan la mayoría de las aplicaciones de virtualización para paliar este problema es la posibilidad de crear discos de diferenciación. El concepto básico que reside detrás de un disco de diferenciación es simple, y a grandes rasgos sería: se crea un disco base o maestro, el cual contiene el sistema operativo y las aplicaciones comunes que deseemos (cuidado con lo que se instala o se deja de instalar ya que una vez convertido en maestro no se puede modificar), y a partir de este disco se crean otros que solo contienen los datos nuevos.

Con este procedimiento podremos tener un ahorro de espacio en disco considerable, ya que por ejemplo, tenemos un disco maestro con el sistema operativo instalado que puede ocupar unos 10Gb, y a partir de ese disco se han creado varias máquinas virtuales con discos de diferenciación, estos solo guardan la diferencia con el maestro, por lo que podemos tener discos de 1Kb, 50Mb, 10Gb, etc... y todos ellos comportándose como si tuvieran el sistema operativo instalado.

Para realizar esta guía (video-tutorial aquí) usaremos como software de virtualización Oracle VM VirtualBox, que podemos descargar desde este enlace: https://www.virtualbox.org/wiki/Downloads. Partiremos de una máquina virtual ya creada y con Linux Mint 12 Lisa instalado y actualizado, aunque puede usarse cualquier máquina virtual que tengáis.

Lo primero que hay que hacer es 'liberar' el disco que nos va a servir de maestro, es decir quitarle la asociación que tiene con la máquina virtual que sea, en nuestro caso vamos a usar el disco de una máquina que se llama MintBase. Para liberar el disco tenemos que ir al Administrador de medios virtuales que se encuentra en el menú Archivo de la pantalla principal.
  
disco diferenciación VirtualBox principal

Dentro del Administrador de medios virtuales nos aparece un listado con los discos que tenemos creados, seleccionamos el que queremos usar como maestro y pulsamos sobre el botón Liberar y en el mensaje de aviso que nos lanza volvemos a pulsar Liberar.

detalles discos virtualbox

El siguiente paso es hacer Inmutable el disco que acabamos de liberar, con esto conseguimos que no guarde cambios que podrían afectar a los discos que dependan de él. 

Para conseguir esto, con el disco seleccionado pulsamos sobre Modificar y en el menú de selección que nos sale escogemos Inmutable y pulsamos en Aceptar.

detalles disco diferenciacion virtualbox

Con esto ya tenemos el disco maestro creado. Para usarlo como referencia simplemente creamos una nueva máquina virtual, en nuestro caso la llamamos MintDiferenciado (tan creativos como los guionistas de Lost!), las opciones de memoria las dejamos a vuestro criterio, pero en cuanto el asistente nos pide escoger un disco duro virtual seleccionaremos la opción de Disco duro virtual existente y en el despegable seleccionamos el disco maestro que acabamos de crear.

seleccion disco diferenciacion virtualbox

Terminamos el proceso de creación de la nueva máquina virtual y ya tenemos nuestra máquina con disco diferencial. Solo nos queda el último paso que es hacer que el disco diferenciado guarde los cambios, ya que por defecto el VirtualBox genera el disco diferenciado con una propiedad que se llama autoreset establecida en 'on'. Esto provoca que cada vez que apaguemos la máquina virtual, los cambios que hayamos realizado se borrarán.

Para solucionarlo abrimos una consola (cmd.exe) en modo administrador, nos dirigimos al directorio de instalación del VirtualBox, por defecto en windows 7, "C:\Program Files\Oracle\VirtualBox". Una vez en el directorio ejecutamos el siguiente comando "VBoxManage showvminfo ruta_máquinaVirtual_nueva\máquinaVirtual_nueva.vbox", con lo que obtendremos toda la información correspondiente a la máquina virtual. Esto lo hacemos para averiguar el UUID del disco de diferenciación, ya que lo necesitaremos en el siguiente paso.

obteniendo datos disco diferenciacion virtualbox

*Nota: Por defecto en windows 7, si no se toca nada, VirtualBox crea las máquinas virtuales en "C:\Users\nombre_usuario\VirtualBox VMs\máquina_virtual".

Ahora que tenemos el UUID del disco de diferenciación ejecutamos el siguiente comando " VBoxManage modifyhd UUID --autoreset off". Si todo va bien no saldrá ningún mensaje.

disco diferenciacion virtualbox no volatil

Para comprobar si ha salido bien nos dirigimos de nuevo al Administrador de medios virtuales y veremos como del disco que hemos creado como maestro 'cuelga' el disco de la nueva máquina virtual.

resultado disco diferenciacion virtualbox

Como se puede apreciar en la imagen, tenemos una nueva máquina virtual totalmente operativa pero solo ocupa 223Mb ahorrándonos en este caso algo más de 5Gb.

Lo has visto primero en CeroWarnings. Recuerda que puedes dejarnos tus peticiones en nuestro Buzón de Sugerencias.

Publicar un comentario

4 Comentarios

  1. Muy interesante el tuto y de gran utilidad, pero no he conseguido que funcione, con showhdinfo verifico que Auto reset esta off, pero sin embargo no me guarda los cambios en la máquina diferencial.
    Tambien me ocurre con otras máquinas que hago cambios en una maquina diferencial con auto reset en off y al arrancar la maquina al dia siguiente comprueba que autoreset ha pasado a on sin haber tocado nada.

    Es posible que se me este pasando algo pero he seguido el tuto fielmente.

    ResponderEliminar
    Respuestas
    1. Cercionate que el usuario con el que realizas el proceso tiene los permisos adecuados para trabajar sobre el disco en concreto (sobre todo en linux). En todo caso te dejo el enlace al vídeo justo en momento donde realizamos este paso.

      Un saludo y gracias por comentar.

      Eliminar
  2. Many thanks for this tutorial.

    ResponderEliminar
  3. Yo también he seguido paso a paso y al reiniciar no se me guardan los cambios...mi usuario es administrador y en linux no realizamos nada,?'?????

    ResponderEliminar