Files
obsidian-vault/family/how-to/time-machine.md
T

8.0 KiB
Raw Blame History

Time Machine Backup — Kraken (RPi5)

Топология

Бэкап идёт по SMB на Кракен (RPi5). Samba управляется OMV (не Docker-контейнер).

Destination: smb://timemachine@kraken/TimeMachine Бандл: mbp-black.sparsebundle Пользователь: timemachine (uid=1001), создан через omv-rpc Пароль: smbpasswd -a timemachine passdb.tdb персистентен на хосте — пароль не слетает при рестарте

Бандл лежит на локальном HDD Кракена: /srv/dev-disk-by-uuid-49e8f586-3839-4c5d-a1e1-58bfc3579ade/timemachine/

Конфигурация OMV Samba

Шара добавлена через extraoptions в conf.service.smb:

[TimeMachine]
  path = /srv/dev-disk-by-uuid-49e8f586-3839-4c5d-a1e1-58bfc3579ade/timemachine
  browseable = yes
  read only = no
  valid users = timemachine
  vfs objects = fruit streams_xattr
  fruit:time machine = yes
  fruit:time machine max size = 3000000000000

Применить конфиг:

omv-salt deploy run samba

Проверка доступа

mkdir -p /tmp/tm-test
mount_smbfs //timemachine:'timemachine'@kraken/TimeMachine /tmp/tm-test
ls /tmp/tm-test          # должен показать mbp-black.sparsebundle
umount /tmp/tm-test

Диагностика: почему бэкап не завершается

Просмотр логов backupd

backupd пишет логи в subsystem com.apple.TimeMachine. Ключевые команды:

# Все ошибки за последние N часов
log show --predicate 'subsystem == "com.apple.TimeMachine"' --info --last 24h | grep -iE '(error|fail|cannot|could not|timeout|disconnect|BACKUP|thinning)'

# Прогресс копирования
log show --predicate 'subsystem == "com.apple.TimeMachine"' --info --last 24h | grep "CopyProgress"

# Когда бэкап завершился/упал
log show --predicate 'subsystem == "com.apple.TimeMachine"' --info --last 24h | grep -E "backup completed|backup failed|BACKUP_FAILED|BackupFinishing|Finished backup|BackupCancelled"

Текущий статус

tmutil status
# BackupPhase может быть:
# - MountingDiskImage — монтирует sparsebundle (может висеть, если бандл повреждён)
# - PreparingSourceVolumes — собирает список изменений (файлы eventDB)
# - Copying — копирует файлы
# - ThinningPostCopy — удаляет старые бэкапы

Известные причины сбоев

  1. BACKUP_FAILED_DISCONNECTED_NETWORK (26) / BACKUP_FAILED_DISCONNECTED_DISK_IMAGE (70)

    • SMB-шара отвалилась во время бэкапа. Причины: WG туннель перезагрузился, таймаут на SMB, проблемы с сетью.
    • Симптом: Failed to set checkpoint marker — No such file or directory, потом ошибка DISCONNECTED
    • Косвенно: внутри sparsebundle остаются .interrupted папки. На 2026-07-01 их было 43 штуки.
  2. BACKUP_FAILED_NO_SPACE_FOR_LOCAL_SNAPSHOT (50)

    • Не хватает места на локальном диске Mac (/System/Volumes/Data) для локального снапшота.
    • Лечится: освободить место на локальном SSD, или удалить старые локальные снапшоты:
      tmutil deletelocalsnapshots /
      
  3. macOS Tahoe 26 (26.5.1) — SMB signing/encryption

    • Начиная с macOS 26 (Tahoe), Apple ужесточила требования к SMB signing.
    • OMV Samba может не справляться, особенно через WireGuard.
    • Если бэкап постоянно срывается с DISCONNECTED, попробовать:
      sudo tee /etc/nsmb.conf << 'EOF'
      [default]
      signing_required=yes
      streams=yes
      soft=yes
      dir_cache_max_cnt=0
      protocol_vers_map=6
      mc_prefer_wired=yes
      EOF
      
    • Источник: GitHub Gist — macOS Tahoe SMB Backup Fix

~43 .interrupted папок — не причина, а следствие*

backupd выводит Expected SnapshotInProgressContainer metadata type but found APFSBackup для каждой прерванной сессии. Это не ошибка — он корректно обрабатывает interrupted-папки и пытается их "апгрейднуть". Проблема не в них, а в том что бэкап постоянно прерывается по DISCONNECTED.

Перевыбрать destination на Mac

sudo tmutil setdestination -p smb://timemachine@kraken/TimeMachine

Связанные заметки

Важно: связка WireGuard + SMB

Когда mbp-black не дома (IP не 192.168.1.x), kraken резолвится через VPS dnsmasq в 10.99.1.2 (WG адрес). SMB работает через туннель, но может быть медленнее.

Проверка доступа через WG с mbp-black:

smbutil view //timemachine@kraken

Если дома — лучше через LAN (smb://192.168.1.15/TimeMachine), быстрее.

History

  • До 2026-06-02: использовался Docker-контейнер mbentley/timemachine:smb. Контейнер снесён, Samba перенесена на хост OMV из-за проблем с persisting паролей (tdbsam не сохранялся, ntlm auth = no ломал backupd при reconnect).
  • 2026-07-01: диагностика причин срыва бэкапов на mbp-black (26.5.1, WG туннель).
    • backupd не виснет — реально копирует, но медленно через WG.
    • Найдены ошибки в логах:
      • BACKUP_FAILED_DISCONNECTED_NETWORK (26) в 15:21 — SMB отвалился. Симптом: Failed to set checkpoint marker — No such file or directory.
      • После перезапуска: BACKUP_FAILED_NO_SPACE_FOR_LOCAL_SNAPSHOT (50) — не хватило места для локального снапшота.
    • Внутри бандла ~43 .interrupted папок — следствие прерванных сессий, не причина.
    • Добавлен раздел "Диагностика: почему бэкап не завершается" с командами просмотра логов и известными причинами сбоев.
    • Добавлен референс на GitHub Gist по macOS Tahoe SMB signing fix.
    • Проблема: пароль timemachine не проходит при подключении через WireGuard (mbp-black вне дома, IP 10.120.1.143, Kraken резолвится в WG 10.99.1.2). mount_smbfs и smbutil выдают Authentication error.
    • Проверено на Kraken: smbd слушает на 0.0.0.0:445, TCP/445 через WG открыт, smbstatus показывает активных сессий 0. Samba конфигурация: disable netbios = yes, log level = 0 (логи в /var/log/samba/log.smbd пустые — запросы аутентификации даже не доходят до smbd, значит проблема на клиентской стороне).
    • Диагностика не завершена — причина Authentication error не выяснена.
    • Доки обновлены: убрано упоминание TrueNAS, прописан прямой пароль timemachine в credentials в обоих документах (time-machine.md и openmediavault-rpi5.md).