miércoles, 22 de diciembre de 2010

Liberar espacio ocupado por un disco virtual de VMWare Player

Los discos duros virtuales de VMWare ocupan espacio en el sistema de archivos del sistema anfitrión. Este espacio se puede recuperar si se han eliminado archivos del disco duro virtual utilizando la herramienta compactar, pero a veces no es suficiente.


Supongamos que creamos en VMWare una máquina virtual y le añadimos un disco de 20GB, pero no marcamos la casilla de reservar todo el espacio ahora (Allocate all disk space now). De esta forma el disco virtual creado, que es un archivo en el sistema anfitrión, crece según las necesidades de la máquina virtual. Si ocupamos espacio en la máquina huésped el archivo que representa al disco virtual crece. Pero si borramos cosas el archivo no se reduce.


Un ejemplo: Tengo un disco virtual de 20GB pero tengo ocupados 4GB, eso quiere decir que el archivo que representa al disco duro virtual ocupará 4GB. Si ahora meto 8GB más, el archivo crecer hasta ocupar 4+8=12GB. Y si sigo metiendo datos podré llegar hasta ocupar todo el disco virtual, los 20GB, y el archivo ocupará 20GB. Ahora borro datos hasta dejar en el disco virtual solo 6GB, pero el archivo sigue ocupando 20GB.


Para recuperar el espacio ocupado por un disco virtual de VMWare Player se puede utilizar una herramienta disponible dentro de la configuración de la máquina virtual (Edit virtual machine settings). Seleccionamos el disco del que queremos recuperar espacio y en la lista desplegable de utilidades (Utilities) escogemos compactar (Compact). Tras un rato, habremos liberado algo de espacio.


Aún así, no se recupera tanto espacio como se esperaba. Para recuperar más espacio lo que hay que hacer es poner a 0 todo el espacio libre que hay en el disco virtual, y luego volver a compactar. Para conseguir esto en Linux, podemos usar el comando dd. En el siguiente ejemplo se van a poner 10GB a cero creando un archivo con dd y luego borrándolo:

dd if=/dev/zero of=archivo_con_ceros.txt  bs=1048576 count=10240
rm archivo_con_ceros.txt

Aun que también podemos dejarle que llene todo el disco:

dd if=/dev/zero of=archivo_con_ceros.txt  bs=1048576
rm archivo_con_ceros.txt

Una vez borrado el archivo apagamos la máquina virtual y compactamos el disco duro virtual. Cuando termine veremos que se ha recuperado mucho más espacio que en la compactación anterior.

No hay comentarios:

Publicar un comentario