# 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 ``` Применить конфиг: ```bash omv-salt deploy run samba ``` ## Проверка доступа ```bash 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`. Ключевые команды: ```bash # Все ошибки за последние 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" ``` ### Текущий статус ```bash 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, или удалить старые локальные снапшоты: ```bash tmutil deletelocalsnapshots / ``` 3. **macOS Tahoe 26 (26.5.1) — SMB signing/encryption** - Начиная с macOS 26 (Tahoe), Apple ужесточила требования к SMB signing. - OMV Samba может не справляться, особенно через WireGuard. - Если бэкап постоянно срывается с DISCONNECTED, попробовать: ```bash 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](https://gist.github.com/Zahorone/6915be6f5088edb2f64018ce9e4dfe97) ### ~43 .interrupted папок — не причина, а следствие* backupd выводит `Expected SnapshotInProgressContainer metadata type but found APFSBackup` для каждой прерванной сессии. Это не ошибка — он корректно обрабатывает interrupted-папки и пытается их "апгрейднуть". Проблема не в них, а в том что бэкап постоянно прерывается по DISCONNECTED. ## Перевыбрать destination на Mac ```bash sudo tmutil setdestination -p smb://timemachine@kraken/TimeMachine ``` ## Связанные заметки - [[family/how-to/wireguard-vpn|WireGuard VPN]] — туннель для бэкапа вне дома - [[family/how-to/kraken-network|Kraken Network]] — ssh, сетевые адреса ## Важно: связка WireGuard + SMB Когда mbp-black не дома (IP не `192.168.1.x`), `kraken` резолвится через VPS dnsmasq в `10.99.1.2` (WG адрес). SMB работает через туннель, но может быть медленнее. Проверка доступа через WG с mbp-black: ```bash 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`).