Проделал только один раз, на бегу. Причем вроде как нужно делать для каждой партиции или записи в fstab, но я сделал как написано, тупо и не вникая, скорее всего в этом и была ошибка. Короче — мне не помогло, размер файла не уменьшился. В следующий раз, будет больше времени, проведу более тщательную работу.
Итак что делаем:
Отсюда: How to shrink a vmdk with ext4 or other unsupported filesystems
— inside the guest: create a wiperfile for every single partition — or in other words — do this for any entry in fstab separately
— inside the guest run
dd if=/dev/zero of=/wiperfile bs=20971520 # bs=20m
rm /wiperfile
Смысл этих двух команд в том что все неиспользуемые блоки этой партиции объединяются в один файл, и все они забиваются 0 (нулями — это важно). А затем этот файл удаляется. Т.е. все неиспользуемые блоки получаются забиты нулями.
— on Workstation power down the guest and use vmware-vdiskmanager -k disk-with-ext4.vmdk
— on ESX power down the guest and use vmkfstools -i unshrinked.vmdk shrinked.vmdk -d thin
— on ESX exchange the referenced vmdk in the vmx-file
В другом посте отсюда: Shrink VMWare Virtual Disks formatted with ext4
делается тоже самое только для VMware Workstation на ОС Windows и еще есть примечание для swap.
The complete error-free way of clearing swap partitions should be this:)
$ sudo swapoff -a
$ sudo dd if=/dev/zero of=/dev/sda6 bs=20971520 # Just fill up the space
$ sudo mkswap /dev/sda6
[Note the UUID assigned]
$ sudo nano /etc/fstab
[Update the entry for swap partition with the UUID obtained in the previous step]
$ sudo swapon -a