117 lines
3.6 KiB
Bash
Executable File
117 lines
3.6 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
# Fix OS Update Snapshot Issue (351GB System Data)
|
|
# The OS update snapshot is preventing space from being freed
|
|
|
|
set -e
|
|
|
|
echo "=== Fix OS Update Snapshot Issue ==="
|
|
echo ""
|
|
echo "Your disk layout shows:"
|
|
echo " - Container: 494.4 GB"
|
|
echo " - Data volume: 472.5 GB"
|
|
echo " - System volume: 12.2 GB"
|
|
echo " - OS Update Snapshot: 12.2 GB (NOT purgeable)"
|
|
echo ""
|
|
echo "The 351GB in System Data is likely snapshot overhead"
|
|
echo "that can't be freed until the snapshot is cleared."
|
|
echo ""
|
|
|
|
FREE_SPACE_BEFORE=$(df / | tail -1 | awk '{print $4}')
|
|
FREE_SPACE_GB_BEFORE=$(echo "scale=2; $FREE_SPACE_BEFORE / 1024 / 1024" | bc)
|
|
echo "Current free space: ${FREE_SPACE_GB_BEFORE}GB"
|
|
echo ""
|
|
|
|
echo "🔍 Checking for macOS updates..."
|
|
UPDATES=$(softwareupdate --list 2>/dev/null | grep -i "update" | head -5)
|
|
if [ -n "$UPDATES" ]; then
|
|
echo " Found available updates:"
|
|
echo "$UPDATES" | sed 's/^/ /'
|
|
echo ""
|
|
echo " ✅ SOLUTION: Install macOS updates"
|
|
echo " This will create a new snapshot and clear the old one"
|
|
echo " System Settings → General → Software Update"
|
|
else
|
|
echo " No updates found (or check failed)"
|
|
fi
|
|
echo ""
|
|
|
|
echo "🔧 Immediate Space Savings:"
|
|
echo ""
|
|
|
|
# Check macOS Install Data
|
|
INSTALL_DATA="/System/Volumes/Data/macOS Install Data"
|
|
if [ -d "$INSTALL_DATA" ]; then
|
|
SIZE=$(sudo du -sh "$INSTALL_DATA" 2>/dev/null | awk '{print $1}')
|
|
echo " 1. Delete macOS Install Data: $SIZE"
|
|
echo " sudo rm -rf \"$INSTALL_DATA\""
|
|
echo " (Safe to delete after installation completes)"
|
|
echo ""
|
|
read -p " Delete macOS Install Data now? (y/n) " -n 1 -r
|
|
echo ""
|
|
if [[ $REPLY =~ ^[Yy]$ ]]; then
|
|
echo " Deleting..."
|
|
sudo rm -rf "$INSTALL_DATA" 2>/dev/null && \
|
|
echo " ✅ Deleted ($SIZE freed)" || \
|
|
echo " ⚠️ Could not delete (may be in use)"
|
|
fi
|
|
else
|
|
echo " 1. macOS Install Data: Not found"
|
|
fi
|
|
echo ""
|
|
|
|
echo "📊 Understanding the Problem:"
|
|
echo ""
|
|
echo "The OS update snapshot (12.2GB visible) is holding much more"
|
|
echo "space as 'overhead' or 'purgeable' that shows up in System Data."
|
|
echo ""
|
|
echo "APFS snapshots work by:"
|
|
echo " - Preserving deleted files"
|
|
echo " - Taking up space until cleared"
|
|
echo " - The OS update snapshot can't be deleted manually"
|
|
echo ""
|
|
echo "The 351GB in System Data includes:"
|
|
echo " - Snapshot overhead (space held by the snapshot)"
|
|
echo " - Purgeable space (that can't be purged due to snapshot)"
|
|
echo " - System reserved space"
|
|
echo ""
|
|
|
|
echo "=== Solutions ==="
|
|
echo ""
|
|
echo "Option 1: Install macOS Updates (Recommended)"
|
|
echo " - System Settings → General → Software Update"
|
|
echo " - Install any available updates"
|
|
echo " - This will clear the old snapshot"
|
|
echo " - Should free the 351GB"
|
|
echo ""
|
|
|
|
echo "Option 2: Wait for Automatic Cleanup"
|
|
echo " - macOS may clear old snapshots automatically"
|
|
echo " - But this can take weeks or months"
|
|
echo ""
|
|
|
|
echo "Option 3: Free Other Space First"
|
|
echo " - Clean Downloads: 8.7GB"
|
|
echo " - Clean Caches: ~6GB"
|
|
echo " - Review Documents: 40GB"
|
|
echo " - This gives you ~55GB to work with"
|
|
echo ""
|
|
|
|
echo "Option 4: Check Storage Management Details"
|
|
echo " - Apple Menu → About This Mac → Storage"
|
|
echo " - Hover over 'System Data' for breakdown"
|
|
echo " - May show 'Purgeable' or 'Snapshots'"
|
|
echo ""
|
|
|
|
# Check final space
|
|
sleep 2
|
|
FREE_SPACE_AFTER=$(df / | tail -1 | awk '{print $4}')
|
|
FREE_SPACE_GB_AFTER=$(echo "scale=2; $FREE_SPACE_AFTER / 1024 / 1024" | bc)
|
|
FREED_GB=$(echo "scale=2; $FREE_SPACE_GB_AFTER - $FREE_SPACE_GB_BEFORE" | bc)
|
|
|
|
if (( $(echo "$FREED_GB > 0" | bc -l) )); then
|
|
echo "✅ Freed: ${FREED_GB}GB"
|
|
fi
|
|
|
|
echo ""
|