El problema aquí es que aunque haya eliminado los archivos en su imagen de CentOS VM, VMware no intenta reclamar ese espacio hasta que se lo solicite explícitamente. Incluso entonces, si los bloques de disco utilizados por los archivos no se han puesto a cero, seguirán ocupando espacio en los archivos vmdk. Si está acostumbrado a reducir las VM de Windows, puede que no le resulte familiar.
El procedimiento básico para la recuperación del espacio es:
- Elimine los archivos innecesarios
- cero todo el espacio libre (no es necesario para Windows VM)
- uso de VMware Player o estación de trabajo para reducir el tamaño de los discos virtuales.
El procedimiento específico que utiliza para reducir mi imagen CentOS era hacer lo siguiente:
df -h
su
yum clean all
cd/; cat /dev/zero > zero.fill ; sync ; sleep 1 ; sync ; rm -f zero.fill
exit
luego cerrar mi CentOS máquina virtual y utiliza el compacto utilidad en la hardware página de el Disco duro dispositivo en Configuración de máquina virtual.
Después de la contracción, vmdk para el sistema de archivos raíz era aproximadamente del mismo tamaño que el tamaño del sistema de archivos raíz en uso, y la vmdk comenzó a expandirse de nuevo según sea necesario desde aquí.
Nota que mi máquina virtual sólo tenía una única partición raíz, si hubiera tenido otras particiones o discos, habría reemplazado la parte cd /
del llenar línea con el punto de montaje en las otras particiones y ejecute la utilidad de reducción en cada disco virtual.
Para obtener más opciones, consulte Shrinking VM Disk Images.
Si necesita instrucciones para hacer lo mismo con un Linux basado en Debian, o desea utilizar la utilidad de línea de comandos vmware-vdiskmanager
en lugar de la GUI de VMware para reducir los discos, consulte el artículo How To Shrink VMware Virtual Disk Files (.vmdk).
Si ha estado utilizando la máquina virtual por algún tiempo, también puede beneficiarse de poner a cero el archivo de intercambio. En mi sistema CentOS, hice lo siguiente:
$ su
Password:
# cat /proc/swaps
Filename Type Size Used Priority
/dev/sda3 partition 2064376 0 -1
# swapoff -a
# cat /proc/swaps
Filename Type Size Used Priority
# dd if=/dev/zero of=/dev/sda3 bs=1M
dd: writing `/dev/sda3': No space left on device
2017+0 records in
2016+0 records out
2113929216 bytes (2.1 GB) copied, 24.6894 s, 85.6 MB/s
- Nota: Debido a que estamos limpiando una partición entera aquí, asegúrese de que el dispositivo que especifica para el comando
dd
es el mismo que se muestra por el comando cat /proc/swaps
. Para estar seguro, haga una copia de seguridad de su VM antes de intentar esto.
Después de encoger el disco virtual, deberá volver a habilitar el archivo de intercambio. Por ejemplo:
$ su
Password:
# free -o
total used free shared buffers cached
Mem: 1030684 344552 686132 0 20956 175912
Swap: 0 0 0
# mkswap /dev/sda3
Setting up swapspace version 1, size = 2064380 KiB
no label, UUID=80276a48-3581-4f7a-8b05-1f2a97169e22
# gedit /etc/fstab
# swapon -a
# free -o
total used free shared buffers cached
Mem: 1030684 346132 684552 0 20968 175912
Swap: 2064376 0 2064376
El gedit/etc/fstab
fue reemplazar el antiguo UUID de intercambio con el nuevo creado por mkswap
.
Tenga en cuenta que esta pregunta sería realmente más adecuada en Superuser o Serverfault que aquí en Stack Overflow, que está destinado a las preguntas de programación.
Gracias por la ayuda. Echa un vistazo a la caja virtual también – Thomas