В этом уроке разберём резервное копирование Mac по-взрослому: как Time Machine устроен изнутри на APFS, как им рулить из терминала через tmutil, как восстанавливать отдельные файлы и систему целиком, и где Time Machine не хватает - там подключим restic, borg и Carbon Copy Cloner. И обязательно сведём всё в стратегию 3-2-1, без которой любой бэкап mac - это лотерея.
Как Time Machine устроен на APFS
Современный Time Machine - это не "копирование файлов раз в час" в наивном смысле. С macOS 11 и на всех версиях вплоть до macOS 26 Tahoe он работает поверх APFS и его снапшотов. Снапшот APFS - это мгновенный слепок состояния тома на уровне файловой системы. Он почти не занимает места в момент создания: фиксируются только метаданные, а реальные блоки данных начинают расходоваться лишь по мере того, как ты меняешь или удаляешь файлы (механика copy-on-write). Старая версия блока остаётся "привязана" к снапшоту, пока снапшот жив.
Отсюда две сущности, которые путают почти все:
- Локальные снапшоты - живут на твоём системном диске. Time Machine делает их примерно раз в час и держит до 24 часов, плюс один снапшот последнего удачного бэкапа и снапшот перед установкой обновления macOS. Это твоя страховка, когда внешний диск не подключён.
- Бэкапы на диске назначения - то, что Time Machine копирует на внешний диск или сетевой том. С APFS это тоже снапшоты, но на целевом томе, и они хранятся долго (часовые за сутки, суточные за месяц, недельные пока есть место).

Настройка: диск назначения, шифрование, исключения
Базовая настройка - Системные настройки -> Основные -> Time Machine -> Добавить резервный диск. Дальше три вещи, которые надо сделать осознанно.
Шифрование. При добавлении диска macOS предложит "Шифровать резервные копии". Соглашайся всегда, если на бэкапе есть что-то личное (а оно есть). Без шифрования любой, кто унесёт твой внешний диск, читает с него всё - Time Machine не делает магии поверх FileVault системного диска, бэкап шифруется отдельным паролем. Потеряешь этот пароль - данные не восстановишь, так что клади его в приложение Пароли или в менеджер.
Что исключать. По умолчанию Time Machine бэкапит почти всё, кроме системных временных каталогов. Но часть данных бэкапить вредно или бессмысленно: гигабайтные кэши, образы виртуалок, локальные node_modules, папки облачных сервисов, которые и так синхронизируются. Исключения задаются в интерфейсе (кнопка Параметры -> список) или из CLI - об этом ниже. Грабли: если исключить каталог, который активно меняется и большой (например, ~/VirtualBox VMs), ты экономишь место и время каждого бэкапа.
Проверить, куда и как настроен бэкап:
Код: Выделить всё
$ tmutil destinationinfo
====================================================
Name : Backup-4TB
Kind : Local
Mount Point : /Volumes/Backup-4TB
ID : 9F1C2A77-3D4E-4A1B-9C2F-0E5B6A8D1234
tmutil: управление Time Machine из терминала
GUI хорош для разовых действий, но автоматизация, диагностика и работа на парке машин - это tmutil. Команда требует root для изменяющих операций, читающие работают и без него. Учти: на современных macOS терминалу нужен доступ Full Disk Access (Системные настройки -> Конфиденциальность и безопасность -> Полный доступ к диску), иначе tmutil latestbackup и подобные молча отвалятся с ошибкой прав.
Запустить бэкап прямо сейчас и дождаться завершения:
Код: Выделить всё
$ sudo tmutil startbackup --block
Backup completed successfully.
Посмотреть последний и все бэкапы:
Код: Выделить всё
$ tmutil latestbackup
/Volumes/Backup-4TB/2026-06-14-031502.backup
$ tmutil listbackups
/Volumes/Backup-4TB/2026-06-10-024417.backup
/Volumes/Backup-4TB/2026-06-12-030901.backup
/Volumes/Backup-4TB/2026-06-14-031502.backup
Статус текущей операции в реальном времени:
Код: Выделить всё
$ tmutil status
Backup session status:
{
ClientID = "com.apple.backupd";
Running = 1;
BackupPhase = Copying;
Percent = "0.42";
bytes = 4519243776;
totalBytes = 10788896768;
}
Работа с исключениями из CLI:
Код: Выделить всё
$ sudo tmutil addexclusion -p ~/Projects/bigrepo/node_modules
$ tmutil isexcluded ~/Projects/bigrepo/node_modules
[Excluded] /Users/you/Projects/bigrepo/node_modules
Локальные снапшоты и проблема purgeable
Главные грабли Time Machine: ты смотришь "Об этом Mac -> Хранилище" и видишь, что свободно 200 ГБ, а реально записать большой файл не получается - система начинает тормозить и что-то удалять. Виновник - локальные снапшоты в категории purgeable (выгружаемое пространство).
Логика macOS: блоки, занятые локальными снапшотами Time Machine, считаются "доступными", потому что система может их освободить, когда место реально понадобится. Поэтому Finder и df показывают разную картину. df -h увидит том почти полным, а Finder скажет "свободно много" - просто часть этого "много" это purgeable снапшоты, которые ещё не удалены.
Посмотреть локальные снапшоты системного тома:
Код: Выделить всё
$ tmutil listlocalsnapshots /
com.apple.TimeMachine.2026-06-15-081210.local
com.apple.TimeMachine.2026-06-15-091015.local
com.apple.TimeMachine.2026-06-15-101102.local
Код: Выделить всё
$ tmutil listlocalsnapshotdates
Snapshot dates for all disks:
2026-06-15-081210
2026-06-15-091015
2026-06-15-101102
Код: Выделить всё
$ sudo tmutil thinlocalsnapshots / 21474836480 4
Thinning local snapshots:
2026-06-15-081210 ...
Thinned local snapshots:
2026-06-15-081210
Код: Выделить всё
$ sudo tmutil deletelocalsnapshots 2026-06-15-081210
Deleted local snapshot '2026-06-15-081210'
Восстановление: файлы, миграция, Recovery
Восстановление mac бывает трёх масштабов.
Отдельные файлы. Самый частый случай. Открываешь Time Machine из строки меню (или приложение), проваливаешься в нужный момент времени по "звёздному коридору", находишь файл, нажимаешь Восстановить. Из CLI то же делает tmutil restore - копирует объект из бэкапа в указанное место:
Код: Выделить всё
$ sudo tmutil restore -v \
"/Volumes/Backup-4TB/2026-06-14-031502.backup/Macintosh HD/Users/you/work/report.key" \
~/work/report.key
Перенос на новый Mac или после переустановки. Тут работает Ассистент миграции (Migration Assistant). Запускаешь его на новой машине, выбираешь источником диск Time Machine, и он переносит учётки, приложения, настройки и данные. Это штатный путь "пересел на новый Mac за вечер".
Полное восстановление системы. Если диск пуст или система не грузится - идёшь в Recovery. На Apple Silicon это зажатая кнопка питания до появления "Параметры загрузки" (на Intel - Command-R при старте). Оттуда либо Восстановить из Time Machine на чистую систему, либо переустановить macOS и затем подтянуть данные Ассистентом миграции. Запомни различие: Apple Silicon входит в Recovery через долгое удержание питания, не через комбинацию клавиш.
Альтернативы: CCC, restic, borg и миф загрузочного клона
Time Machine - отличная база, но не серебряная пуля. Где он слаб: один бэкап без версионности offsite, нет удобного шифрованного бэкапа в облако/на сервер, restore целиком зависит от целости одного диска.
Carbon Copy Cloner и загрузочный клон. Главное, что нужно усвоить про Apple Silicon: классический "загрузочный клон системы на внешний диск" фактически умер. Системный том (Signed System Volume) криптографически подписан и запечатан, и скопировать его побайтово сторонним софтом нельзя - только через встроенную в macOS утилиту asr, и даже она капризна. CCC может сделать загрузочную копию на Apple Silicon (через asr), но Bombich прямо рекомендует не полагаться на загрузочность: при крахе ты быстрее переустановишь macOS из интернета в Recovery, а данные восстановишь из обычной (не загрузочной) копии данных. Так что современный CCC - это в первую очередь отличный инкрементальный бэкап данных с гибким расписанием, а не "клон, с которого грузимся".
restic и borg для CLI-бэкапов. Когда нужен шифрованный, дедуплицированный, версионный бэкап на удалённый сервер или в S3 - ставь из Homebrew (на Apple Silicon он живёт в /opt/homebrew):
Код: Выделить всё
$ brew install restic
$ export RESTIC_REPOSITORY="sftp:backup@nas.local:/backups/mac"
$ export RESTIC_PASSWORD_FILE=~/.config/restic/pass
$ restic init
$ restic backup ~/work ~/Documents --exclude="node_modules"
Стратегия 3-2-1
Всё выше складывается в одно правило, которое экономит нервы: 3-2-1. Три копии данных. На двух разных типах носителей. Одна копия - вне дома (offsite). Практический расклад для Mac:
- Копия 1 - сами рабочие данные на встроенном SSD.
- Копия 2 - Time Machine на внешний USB-диск (локально, быстрый restore файлов и миграция).
- Копия 3 - restic/borg в облако или на NAS вне дома (на случай пожара, кражи, шифровальщика).
Мини-лаба
Повтори руками, 15 минут:
- Подключи внешний диск, добавь его в Time Machine с шифрованием, пароль положи в приложение Пароли.
- Дай Терминалу Full Disk Access, затем запусти sudo tmutil startbackup --block и параллельно во втором окне следи через watch-петлю на tmutil status.
- Исключи тестовую папку: sudo tmutil addexclusion -p ~/tmp_excl и проверь tmutil isexcluded ~/tmp_excl.
- Посмотри локальные снапшоты: tmutil listlocalsnapshots / и tmutil listlocalsnapshotdates.
- Создай файл, измени его, восстанови предыдущую версию через интерфейс Time Machine. Сравни df -h / и "свободно" в Finder - найди разницу за счёт purgeable.
- Поставь brew install restic, инициализируй локальный репозиторий restic init -r ~/restic-test и сделай restic backup ~/Documents.
- Почему df показывает диск почти полным, а Finder говорит "свободно много"? Что это за пространство и как его освободить?
- Чем отличается tmutil deletelocalsnapshots от thinlocalsnapshots и когда какой использовать?
- Почему на Apple Silicon "загрузочный клон" системы практически не работает и что делать вместо него при полном крахе диска?
- Как разложить твою личную схему бэкапа по правилу 3-2-1, какие инструменты на какую цифру ложатся?
Time Machine - это твоя ежечасная страховка: снапшоты APFS локально, полноценные бэкапы на внешний диск, шифрование одним кликом и восстановление от одного файла до всей системы через Ассистент миграции и Recovery. tmutil даёт над этим полный контроль из терминала и автоматизацию. Локальные снапшоты в purgeable - не баг, а фича, но её надо понимать, чтобы не пугаться цифр хранилища. А чтобы бэкап mac был настоящим, а не самоуспокоением - добей картину offsite-копией через restic или borg и живи по 3-2-1. Проверяй восстановление до того, как оно понадобится по-настоящему.