Skip to content

A virtual machine keeps growing even when the guest is empty

VM disk files expand as the guest writes and rarely shrink back. Where each app stores them, how to reclaim the space, and what snapshots cost.

6 min read

A virtual machine is usually the largest single item on a Mac that has one, and it behaves in a way that surprises people: the disk file grows as the guest writes data and does not shrink when the guest deletes it. Freeing 30 GB inside Windows changes nothing on the Mac until you take a second step.

Where each one keeps its images

du -sh ~/Parallels/* ~/Virtual\ Machines.localized/* \
  ~/Library/Containers/com.utmapp.UTM/Data/Documents/* \
  ~/VirtualBox\ VMs/* 2>/dev/null | sort -h

Whichever of those exists on your Mac, the file inside the bundle is the virtual disk. It is worth checking the folder even if you think you deleted the VM, because removing an application does not remove the machines it created.

Reclaiming space the guest has freed

  1. Delete files inside the guest, and empty its recycle bin or trash.
  2. In the guest, zero the free space, or run the guest's own disk cleanup tool.
  3. Shut the VM down completely rather than suspending it.
  4. Run the host application's compact or reclaim command.

Every virtualisation app has that last step under a slightly different name: Parallels has a reclaim option in the machine's configuration, VMware has Clean Up Disks, and UTM and VirtualBox have compaction commands. Skipping the shutdown is the usual reason the operation reports success and frees nothing.

Snapshots are a second copy

A snapshot records the state of the disk at a point in time, and every change after that is stored on top. Two or three snapshots of a Windows machine can double the space it uses, and they are easy to forget because they are inside the bundle rather than beside it.

Delete the snapshots you do not need through the app's snapshot manager, not by removing files inside the bundle. Removing them by hand is the reliable way to make a virtual machine unbootable.

The suspended state file

A suspended VM writes its memory to disk, exactly like the sleepimage macOS keeps. A machine given 8 GB of memory writes an 8 GB file when you suspend it. Shutting the guest down properly instead of suspending it removes that file, which is often several gigabytes for nothing.

When to keep it at all

A VM you have not booted in a year is a large amount of disk for an option you are not exercising. Exporting it to an external drive keeps the option and returns the space, and what moves safely to an external drive covers doing that without breaking anything.

Common questions

Why does my virtual machine file keep growing?

Because a virtual disk expands as the guest writes and does not shrink when the guest deletes. Reclaiming the space needs a compact or reclaim step in the host application, run with the guest fully shut down.

How do I shrink a Parallels or VMware disk?

Delete files inside the guest, empty its trash, shut the machine down completely, then run the host application's reclaim or clean up disks command. Suspending rather than shutting down is the usual reason the operation frees nothing.

Do VM snapshots use extra disk space?

Yes, substantially. Each snapshot preserves the disk as it was, and subsequent changes are stored on top, so a few snapshots can double the space a machine uses. Remove them through the app's snapshot manager rather than by deleting files.

Why is there a large file when my VM is suspended?

Because suspending writes the guest's memory to disk, so a machine with 8 GB of memory produces an 8 GB file. Shutting the guest down properly instead of suspending it removes that file.

Read next