Место на диске и обслуживание системы

Рейтинг: 71.7% · 16 голосов
Подробный курс по macOS для разработчиков и админов: архитектура и Apple Silicon, терминал и zsh, Homebrew и пакеты, launchd и автоматизация, APFS и Time Machine, безопасность (SIP, Gatekeeper, TCC, FileVault), сеть, логи и диагностика, MDM и DDM, контейнеры и виртуализация, восстановление. По официальной документации Apple, актуально на 2026 (macOS 26 Tahoe).
Ответить
Аватара пользователя
Artem_MacAdmin
Сообщения: 47
Зарегистрирован: 11 май 2026, 05:31

Место на диске и обслуживание системы

Сообщение Artem_MacAdmin »

Оглавление курса (47)
  1. Что такое macOS: Unix под капотом и место в 2026
  2. Архитектура macOS: XNU, тома и Signed System Volume
  3. Apple Silicon: ARM, Rosetta 2 и отличия от Intel
  4. Установка, обновление и восстановление macOS
  5. Finder, рабочий стол и продуктивность
  6. Системные настройки и их управление из CLI (defaults)
  7. Пользователи и группы: учётные записи и управление
  8. Терминал и zsh: командная строка macOS
  9. CLI на macOS: BSD-команды и отличия от Linux
  10. Настройка zsh: .zshrc, prompt, плагины
  11. Файловая система и права: POSIX, ACL, атрибуты, флаги
  12. Homebrew: пакетный менеджер для macOS
  13. Homebrew глубже: tap, Brewfile, services, обслуживание
  14. Другие пакеты: MacPorts, mas, Nix и App Store
  15. Установка приложений: .app, .dmg, .pkg и Gatekeeper
  16. Управление приложениями и их данные
  17. launchd и launchctl: система запуска macOS
  18. Свои службы и периодические задачи на launchd
  19. Автоматизация: Shortcuts, AppleScript и osascript
  20. Конфигурация как код: defaults, plist и профили
  21. APFS: снапшоты, клоны, контейнеры и шифрование
  22. Управление дисками: diskutil, образы и форматирование
  23. Time Machine и резервное копирование
  24. Внешние диски, форматы и сетевые тома
  25. Модель безопасности macOS: SIP и целостность системы
  26. Gatekeeper, нотаризация и защита от вредоносов
  27. Приватность и TCC: разрешения на доступ
  28. FileVault: полнодисковое шифрование
  29. Связка ключей и управление секретами
  30. Сетевой экран и защита сети
  31. Сеть в macOS: настройка и инструменты
  32. Диагностика сети на Mac
  33. Общий доступ: SSH, экран, файлы, удалённое управление
  34. Процессы и ресурсы: мониторинг производительности
  35. Логи macOS: unified logging и диагностика
  36. Производительность и энергия: powermetrics, диагностика
  37. Энергия, сон и обслуживание системы
  38. Профили конфигурации и основы MDM
  39. Управление парком Mac: MDM, DDM и zero-touch (2026)
  40. Среда разработчика на Mac: Xcode CLT, git, версии
  41. Контейнеры на Mac: Docker Desktop, OrbStack, Apple container
  42. Виртуализация: Virtualization.framework, UTM, Linux и Windows
  43. Режимы загрузки и восстановление (Apple Silicon)
  44. Сброс, NVRAM, Safe Mode и сброс настроек
  45. Траблшутинг macOS: дерево решений по симптомам
  46. Место на диске и обслуживание системы (вы здесь)
  47. Сквозной проект: настройка Mac как у профи + куда расти
Куда девается место на диске Mac и почему "свободно" врёт

Классическая боль: ты только что снёс гигов сорок, корзину очистил, а в Finder свободного места почти не прибавилось. Или наоборот - du по домашней папке насчитал 800 ГБ на диске, которого физически 512. Кажется, что система сошла с ума. На самом деле всё логично, просто APFS и macOS считают место не так, как ты привык по Linux или Windows. В этом уроке разбираем, как реально устроено хранилище mac, что такое загадочный purgeable, как честно посчитать, куда ушло место, и как почистить диск mac безопасно - без "клинеров", которые скорее навредят.

Сначала про инструмент, который Apple сама показывает пользователю. Системные настройки -> Основные -> Хранилище (на macOS 26 Tahoe это именно System Settings, не старые Preferences). Там цветная полоска по категориям (Приложения, Документы, Система, macOS, "Системные данные") и блок Рекомендаций: "Оптимизировать хранилище", "Хранить в iCloud", "Очищать корзину автоматически". Полезно как первый взгляд, но есть две ловушки. Первая - категория "Системные данные" (бывшая "Другое") это помойка, куда macOS сваливает всё, что не классифицировала: кэши, логи, снимки, образы, временные файлы. Видеть её распухшей на 100+ ГБ нормально, и сама по себе она ни о чём конкретном не говорит. Вторая - индикатор считается асинхронно и часто отстаёт от реальности на минуты. Не доверяй цифрам слепо, проверяй командами.

Изображение

Загадка purgeable: почему place на диске mac "освобождаемое"

Главный источник недопонимания - purgeable space, по-русски "освобождаемое место". Это место, которое технически занято, но macOS считает, что может отдать его в любой момент, если приложению срочно понадобится диск. Поэтому Finder в строке "доступно: 120 ГБ (из них освобождаемое: 80 ГБ)" говорит правду со своей колокольни: реально свободно меньше, но система гарантирует, что под запись освободит остальное.

Что лежит в purgeable mac:
  • локальные снимки APFS, которые создаёт Time Machine (самый жирный кусок);
  • кэши приложений и системы, которые можно пересоздать;
  • файлы, выгруженные в iCloud при включённой оптимизации (локальная копия - кандидат на удаление);
  • swap и sleepimage в /private/var/vm в некоторых состояниях.
Отсюда растёт корень всех вопросов "почему du показывает больше, чем свободно". du честно суммирует все байты, которые занимают файлы И снимки, ссылающиеся на старые версии этих файлов. Ты удалил файл - в активной файловой системе его нет, du по текущему дереву его не видит, но блоки держит снимок. Поэтому "удалил, а места не стало" - это почти всегда снимки.

Посмотрим вживую. Команда df на APFS показывает занятость контейнера:

Код: Выделить всё

df -H /
Filesystem      Size   Used  Avail Capacity  Mounted on
/dev/disk3s1s1  500G   23G   118G    84%     /
Обрати внимание: Used 23 ГБ (это том системы, read-only snapshot), Avail 118 ГБ, но Capacity 84 процента. Числа не сходятся в арифметику, потому что в одном APFS-контейнере несколько томов делят общее место, плюс там же сидит purgeable. df на APFS - грубый ориентир, не больше.

Точнее покажет diskutil:

Код: Выделить всё

diskutil apfs list
+-- Container disk3
    |   Capacity In Use By Volumes:   382.0 GB (76%)
    |   Capacity Not Allocated:       118.0 GB (24%)
    +-> Volume disk3s1 (Macintosh HD)
    |       Capacity Consumed:        12.1 GB
    +-> Volume disk3s5 (Macintosh HD - Data)
            Capacity Consumed:        361.4 GB
Вот тут видно правду: вся жизнь в томе Data, система занимает копейки. И именно в Data копятся снимки.

Снимки APFS: как найти и удалить главного пожирателя

Time Machine, даже если у тебя не подключён внешний диск для бэкапов, делает локальные снимки (local snapshots) прямо на внутреннем SSD - чтобы можно было откатиться. По умолчанию macOS держит их около 24 часов и сама подчищает, но при активной работе с большими файлами они успевают съесть десятки гигов.

Смотрим список:

Код: Выделить всё

tmutil listlocalsnapshots /
com.apple.TimeMachine.2026-06-15-091203.local
com.apple.TimeMachine.2026-06-15-031145.local
com.apple.TimeMachine.2026-06-14-194512.local
Дата и время в имени - момент создания. Теперь два пути.

Мягкий, штатный - попросить систему "утончить" снимки, освободив N байт. Это команда thinlocalsnapshots, синтаксис: точка монтирования, сколько байт освободить, уровень срочности 1-4 (выше - агрессивнее):

Код: Выделить всё

tmutil thinlocalsnapshots / 21474836480 4
Thinned local snapshots:
com.apple.TimeMachine.2026-06-14-194512.local
Здесь 21474836480 это 20 ГБ (20 * 1024 * 1024 * 1024). Система сама решает, какие снимки убить, чтобы набрать цель. Это безопаснее, потому что соблюдает внутреннюю политику Time Machine.

Жёсткий путь - удалить конкретный снимок по метке времени (нужен sudo):

Код: Выделить всё

sudo tmutil deletelocalsnapshots 2026-06-14-194512
Deleted local snapshot '2026-06-14-194512'
Передаёшь именно дату-время из имени, без префикса com.apple.TimeMachine и без .local. После удаления покажи listlocalsnapshots снова - убедись, что пусто, и проверь Finder. Учти нюанс из практики: индикатор purgeable в инфопанели может не сразу уменьшиться, хотя реально свободное место уже выросло - подожди или перелогинься.

Если снимки лезут постоянно и мешают, временно можно остановить автобэкап Time Machine через Системные настройки -> Основные -> Time Machine, но не отключай его навсегда без причины: локальные снимки реально спасали данные не раз.

Честный анализ: чем посчитать, куда ушло место

Чтобы понять, что чистить, нужно увидеть тяжёлые папки. Помни: на macOS это BSD-userland, флаги du/find отличаются от GNU.

du с человекочитаемыми размерами, верхний уровень домашней папки:

Код: Выделить всё

du -sh ~/* ~/Library/* 2>/dev/null | sort -rh | head -n 12
 47G    /Users/you/Library/Developer
 22G    /Users/you/Downloads
 14G    /Users/you/Library/Caches
  9G    /Users/you/Library/Containers
  6G    /Users/you/Movies
Флаг -h на BSD du есть, -s суммирует, sort -rh сортирует по размеру по убыванию. 2>/dev/null глушит "Permission denied". Сразу видно подозреваемых: Developer (Xcode), Downloads, Caches.

Поиск отдельных тяжёлых файлов. На BSD find ключ -size принимает суффикс, а вывод размеров удобно гнать через ls:

Код: Выделить всё

find ~ -type f -size +1G 2>/dev/null -exec ls -lh {} \; | awk '{print $5, $NF}'
4.2G /Users/you/Downloads/ubuntu-24.04.iso
3.1G /Users/you/Movies/render_final.mov
Для интерактивного разбора удобнее ncdu (ставится из Homebrew: brew install ncdu) - текстовый навигатор по дереву с размерами, ходишь стрелками и удаляешь клавишей d. Из графических - GrandPerspective (бесплатный, рисует карту блоков) или DaisyDisk. Все три честно ходят по файловой системе, в отличие от индикатора "Системные данные".

Что чистить руками и где грабли

Теперь конкретика, по убыванию пользы и риска.

Xcode - чемпион по мусору. У разработчика тут легко 30-50 ГБ.
  • DerivedData - продукты сборки, индексы, кэши. Удаляются полностью без потерь, проект пересоберётся: rm -rf ~/Library/Developer/Xcode/DerivedData/* . Можно прицельно снести только старое: find ~/Library/Developer/Xcode/DerivedData -maxdepth 1 -type d -mtime +14 -exec rm -rf {} + (BSD find: -mtime +14 это старше 14 дней).
  • Симуляторы недоступных рантаймов: xcrun simctl delete unavailable - убирает симуляторы под версии iOS, которых уже нет. Безопасно.
  • Архивы и кэш устройств: ~/Library/Developer/Xcode/Archives и ~/Library/Developer/Xcode/iOS DeviceSupport (последний пересоздаётся при подключении устройства).
Кэши приложений - ~/Library/Caches. Здесь нужна аккуратность. Снести всю папку целиком можно, мир не рухнет (кэши на то и кэши), но некоторые приложения после этого тупят при первом запуске или теряют состояние. Правило: чисти точечно по подпапкам конкретных приложений, которые ты опознал, и не трогай ~/Library/Caches на бегу при открытых приложениях. Системный /Library/Caches и кэши под SIP не трогай вовсе.

Логи - ~/Library/Logs и /Library/Logs. Обычно мелочь, но иногда какое-то приложение зацикливается и пишет гигабайтный лог. Найти: du -sh ~/Library/Logs/* | sort -rh | head .

Старые бэкапы iPhone/iPad - частый забытый монстр на десятки гигов: ~/Library/Application Support/MobileSync/Backup/ . Удалять лучше через приложение Apple Devices (бывший Finder/iTunes-бэкап) -> Управление бэкапами, но можно и снести папку конкретного устройства вручную, если знаешь, что бэкап неактуален.

Загрузки и корзина. Банально, но Downloads и ~/.Trash набирают вес незаметно. Корзина на внешних дисках лежит в /Volumes/ИМЯ/.Trashes.

Почему "клинеры" не нужны и почему они вредны

Вокруг запроса "очистить mac" крутится индустрия платных "ускорителей". Коротко: тебе они не нужны, а часто опасны. Причины по делу:
  • Всё, что они делают полезного, ты только что сделал штатными командами: thinlocalsnapshots, чистка DerivedData, кэшей, корзины. Это не магия.
  • Они любят чистить "кэши" агрессивно и не разбираясь - ломают состояние приложений, удаляют нужное, провоцируют те самые тормоза при следующем запуске.
  • Многие живут в фоне резидентом, едят CPU и батарею, просят полный доступ к диску (Full Disk Access) и right на Accessibility - это огромная поверхность атаки.
  • "Удаление системного мусора" под SIP невозможно в принципе, так что обещания почистить /System - либо обман, либо запрос на отключение защиты.
Обслуживание macOS и так автоматическое: launchd-задачи periodic (daily/weekly/monthly) крутят ротацию логов, APFS сама дефрагментацию не требует (SSD + copy-on-write), снимки подчищаются по таймеру. Твоя задача - не мешать и иногда прицельно вмешаться. Если совсем хочется ручной триггер обслуживания: sudo periodic daily weekly monthly прогонит штатные скрипты, но эффект на современной системе минимальный.

Мини-лаба: почистить диск mac за десять минут

Повтори руками, по шагам:
  • Открой Системные настройки -> Основные -> Хранилище, запомни число свободного и размер "Системных данных".
  • В терминале: df -H / и diskutil apfs list - сравни, где реально занято.
  • tmutil listlocalsnapshots / - посчитай снимки. Освободи 10 ГБ мягко: tmutil thinlocalsnapshots / 10737418240 4 .
  • Найди тяжёлые папки: du -sh ~/Library/* 2>/dev/null | sort -rh | head .
  • Если есть Xcode: du -sh ~/Library/Developer/Xcode/* , затем rm -rf ~/Library/Developer/Xcode/DerivedData/* и xcrun simctl delete unavailable .
  • Найди файлы больше гигабайта: find ~ -type f -size +1G 2>/dev/null -exec ls -lh {} \; .
  • Вернись в Хранилище и сравни свободное место с пунктом 1.
Зафиксируй для себя, что дало больше всего эффекта - почти наверняка снимки или DerivedData.

Контрольные вопросы
  • Почему du по домашней папке может показать больше байт, чем физический объём диска, и при чём тут снимки APFS?
  • Что такое purgeable mac и почему Finder пишет "доступно" больше, чем реально свободно прямо сейчас?
  • Чем отличается tmutil thinlocalsnapshots от tmutil deletelocalsnapshots и когда какой выбрать?
  • Какие папки Xcode можно безопасно снести без потери исходников и почему?
Итог
Место на диске mac теряется предсказуемо: локальные снимки Time Machine, DerivedData и кэши - три кита. "Свободно" в Finder включает освобождаемое (purgeable), поэтому верь не индикатору, а df, diskutil apfs list и du. Чистить диск mac надо штатными командами и точечно, понимая, что удаляешь. Снимки - через tmutil, мусор Xcode - через rm и simctl, кэши - аккуратно по подпапкам. "Клинеры" не нужны: они дублируют эти действия, но с риском сломать систему и отдать ей полный доступ к диску.
👍5 ❤️4 🔥1 😄 🤔
Аватара пользователя
blunty
Сообщения: 1
Зарегистрирован: 23 май 2026, 02:09

Re: Место на диске и обслуживание системы

Сообщение blunty »

Вопрос: если снести весь ~/Library/Caches при открытых приложениях - что-то фатально сломается или просто потупят при следующем старте? Хочу понять границу безопасного.
👍 ❤️ 🔥 😄 🤔
Аватара пользователя
ping123
Сообщения: 1
Зарегистрирован: 18 май 2026, 02:46

Re: Место на диске и обслуживание системы

Сообщение ping123 »

А я думал у меня винт сдох - du насчитал 700 гигов на 512 SSD. Оказались снимки тайм машины, thinlocalsnapshots вынес 60 гигов. Спасибо, реально магия исчезла когда понял механику.
👍 ❤️1 🔥 😄 🤔1
Ответить
← Предыдущая глава
Траблшутинг macOS: дерево решений по симптомам
Следующая глава →
Сквозной проект: настройка Mac как у профи + куда расти

Все главы курса «macOS для профи: администрирование, терминал и Homebrew»

Поделиться темой: ✈ Telegram VK
Похожие запросы: Траблшутинг и обслуживание MacФайловая система APFSУправление дисками на MacРезервное копирование Mac (Time Machine)

Вернуться в «macOS для профи: администрирование, терминал и Homebrew»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость