I'm running a Mac mini with 512 gig SSD and the latest version of MacOS and VMware fusion.
My 32-bit Windows 10 VM has a 50 gig disk, but is only using 20 gig of space. When
I try to reduce the size (see attachment), it says that the disk size has to be at least 50 gig.
What is going on?
Note; the Virtual Machines -> Settings -> General -> Clean Up Virtual Machine button has no effect.
Note: there are no snapshots
So you can't actually shrink a disk like that. Fusion will only take up as much space as it needs.
Inside the guest, there's a lot of things that can cause hidden space to be used. In the search bar, type 'disk cleanup' then right click it and run as administrator. That'll delete a whole lot of temp files (wouldn't hurt to do a backup first of course). Once that's done, then shut down and do the shrink button from the settings->general screen.
...and when you run Disk Cleanup click on Clean up system files and let it run again. This is where you recover 20GB from major Windows version upgrades. Disk Cleanup takes a lot of time to run too.
You are confusing two things. The size of the virtual disk (in that screen shot) is what cannot be shrunk - there is no way to do that.
Keep in mind that the virtual machine hard drive doesn't actually use 50GB - it only uses as much space as it needs. Now if you preallocated the disk, that'd be different. But what you're trying to do won't ever work.
I see what you're saying. Still, it was using 40gig in MacOS even when Windows 10 showed 25gig of disk space. I seemed to have gotten it down to using 20gig in MacOS now. Thanks pointing that out.
Yeah, it's confusing :-). If you suspend the VM, it'll also grow as it dumps memory to the suspend file. Shutting it down instead will free that up.
You could try punching zeroes inside the Windows VM using sdelete
https://docs.microsoft.com/en-us/sysinternals/downloads/sdelete
After punching zeroes within the VM, you can do another round of cleanup.
However, if the VM is encrypted, punching zeroes won't help as by definition the zeroes would also be encrypted (i.e. it won't be zeroes anymore); as cleanup works on the premise that are contiguous zeroes in the virtual disk. Punching zeroes might even make it bigger in an encrypted VM.
Anyway, from Local C Properties screenshot you attached, it looks like guest OS already uses compression so that might be as small as it gets.