Fix “Your disk is almost full” on a Mac

A diagnose-fix-verify walkthrough for a full macOS disk: measure real free space, map APFS volumes, clear local Time Machine snapshots, and confirm the space came back.

macOSdfvolumesdiskapfsdisk-spacediskutilMedium risk
Run df -h /System/Volumes/Data to see exactly how much free space you have before deleting anything.

What this covers

macOS warns you when the startup disk runs out of room, but the warning doesn't tell you what's eating the space — and APFS volumes and hidden snapshots often make the numbers confusing. This guide walks through measuring the problem accurately, clearing the most common hidden cause (local Time Machine snapshots), and verifying the space actually came back.

Symptom

?macOS shows a “Your disk is almost full” or “startup disk is full” warning, apps crash or refuse to save files, downloads fail, or the system feels sluggish — and deleted files don't seem to free any space.

Measure how full the disk really is

Before deleting anything, get an accurate number. df -h shows capacity, used, and available space per volume; on modern macOS your files actually live on the Data volume, so check that one too. If available space is a few gigabytes or less, you've confirmed the problem. Run it again after cleanup later to see the difference.

df -h reports capacity, used space, and available space per volume in human-readable units, and on modern macOS it also exposes the APFS Data volume where your real user space lives.

Command
$ df -h
df -h /
df -h /System/Volumes/Data

See the full APFS container layout

APFS shares one pool of space across multiple volumes, so a volume can look full even when the container has room (or vice versa). diskutil apfs list maps every volume, its capacity, used space, and mounted snapshots, which tells you where the pressure actually is before you start deleting.

See the full APFS container layout: every volume, its capacity, used space, and mounted snapshots.

Command
$ diskutil apfs list

Check for local Time Machine snapshots

Local APFS snapshots are one of the most common hidden space hogs on macOS — they can quietly hold tens of gigabytes and make deleted files not actually free space. List every snapshot on the startup disk; a long recent list is a strong clue. Snapshots you no longer need can be deleted with the matching date.

See every local APFS Time Machine snapshot on your startup disk and delete ones you no longer need.

Command
$ tmutil listlocalsnapshots /
▾ Undo
Undo
$ tmutil deletelocalsnapshots <snapshot-date>

Check where Time Machine is backing up

If the snapshots above keep coming back, check the Time Machine destination. When the destination is missing or unreachable, macOS keeps local snapshots on the startup disk instead — fixing the destination (for example, re-pointing it at an external drive) stops the local buildup at the source.

Find out which disk or network share Time Machine is using as its backup destination, straight from the terminal.

Command
$ tmutil destinationinfo

Eject disk images and drives you're done with

Mounted DMGs, installers, and USB drives count toward mounted clutter and can hold large cached data. If you're done with them, eject everything ejectable in one step — a quick, zero-risk way to reclaim space and rule out external volumes as the culprit.

macOSEject all external disks at once on MacLow riskStep 5Optional

Safely unmount every ejectable volume — USB drives, SD cards, DMGs — in one step.

Command
$ osascript -e 'tell application "Finder" to eject (every disk whose ejectable is true)'

Verify the freed space shows up

Run the same space check you did at the start, focusing on the Data volume. The available number should have grown by roughly the amount you reclaimed. Note that APFS may take a minute or two to reconcile space after snapshot deletion — if the number looks unchanged, wait briefly and re-run.

df -h reports capacity, used space, and available space per volume in human-readable units, and on modern macOS it also exposes the APFS Data volume where your real user space lives.

Command
$ df -h
df -h /
df -h /System/Volumes/Data
!Only delete Time Machine snapshots you no longer need — they are rollback points. Before deleting files or snapshots, make sure you have a working backup destination.

How to confirm it worked

Re-run the free-space check on the Data volume: available space should have grown by roughly what you reclaimed.

Undo everything

Every command above can be reverted. Run these in order to undo all of it.

Undo everything
$ tmutil deletelocalsnapshots <snapshot-date>

Review before running — some steps may not be independent.

Sources

Last verified: 2026-09-21

Related guides