====== [VirtualBox] Discos virtuales: Compactado ====== **Limpiar y compactar un disco de una máquina virtual**. Con el uso de la máquina virtual el fichero del disco de la máquina virtual puede ir aumentando aunque su contenido no. Eso es debido a que los ficheros que borramos dentro de ella no desaparecen. * [[https://webmaster.blogs.uva.es/2016/01/20/limpiar-un-disco-de-una-maquina-virtual-en-virtualbox/|Limpiar un disco de una máquina virtual en Virtualbox]] * [[https://vidatecno.net/como-reducir-una-virtualbox-vm-en-windows-10/|Cómo reducir una virtualbox VM en Windows 10]] ===== Máquina virtual Linux ===== - Entraremos en la máquina virtual Linux. - Haremos limpieza de ficheros que no queramos, tanto de las carpetas como de la papelera. - Llenaremos de ceros todo el espacio libre en el disco ejecutando dd if=/dev/zero of=zerofillfile bs=1M con ello crearemos un fichero ''zerofillfile'' conteniendo ceros, todos los que se puedan. - Llegará un momento que ya no se puedan añadir mas ceros a dicho fichero, con lo que nos aparecerá un mensaje que nos indica que no queda espacio en el dispositivo dd: error al escribir en ‘zerofillfile’: No queda espacio en el dispositivo - Ahora eliminaremos el fichero ''zerofillfile'' usando la utilidad ''rm'' de Linux: rm zerofillfile - Apagamos la máquina virtual. - Vamos a la carpeta de nuestro ordenador donde se encuentra el fichero ''vdi'' del disco. Si tenemos alguna duda podemos verlo en la configuración de la máquina, en el almacenamiento. - VBoxManage modifyhd –compact «RUTA AL FICHERO DEL DISCO» - Si se trata de un fichero ''vhd'' o ''vmdl'' tenemos que hacer algún paso intermedio: VBoxManage clonehd «RUTA AL FICHERO DEL DISCO» «clon.vdi» –format vdi VBoxManage modifyhd –compact «clon.vdi» VBoxManage clonehd «clon.vdi» «RUTA AL FICHERO DEL DISCO» –format vdi VBoxManage clonehd «clon.vdi» «RUTA AL FICHERO DEL DISCO» –format vmdk ==== Problemas ==== Al seguir este procedimiento me apareció en Debian el siguiente mensaje al intentar abrir de nuevo mi VirtualBox: {{ doc:tec:sis:vbox:hd_compactado:error_vbox1.png?nolink |}} El motivo fué que hice el proceso anterior desde el usuario ''root'', por lo que se alteraron algunos permisos de ficheros, quedando ''root'' como propietario y no dando acceso a ''usuario''. Lo solucioné poniendo los permisos al usuario, usando el comando ''chown'', en la ruta que indicaba el error: root@pc:/home/usuario/.config/VirtualBox# chown usuario:usuario VBoxSVC.log.* root@pc:/home/usuario/.config/VirtualBox# chown usuario:usuario VirtualBox.xml {{ doc:tec:sis:vbox:hd_compactado:error_vbox2.png?nolink |}} ===== Máquina virtual Windows ===== El proceso es idéntico: Hay que llenar con seros el espacio libre del disco. * Iniciamos la máquina virtual Windows. * Vamos a optimizar las unidades, ejecutando el defragmentador. * Descargar en la máquina virtual Windows el archivo[[https://docs.microsoft.com/en-us/sysinternals/downloads/sdelete|SDelete]] y descomprimirlo. * Deben aparecer descomprimidos tres archivos: ''sdelete.exe'', ''sdelete64.exe'' y ''sdelete64a.exe''. * Ejecutar en una consola como administrador sdelete.exe c: -z Esto llenará el espacio libre con ceros. * Cuando finalice, apagar la máquina virtual y ejecutar el paso semejante a como hicimos en Linux: VBoxManage modifyhd –compact «RUTA AL FICHERO DEL DISCO»