# Time Machine Backup — Kraken (RPi5) ## Топология Бэкап идёт по SMB на Кракен (RPi5). Samba на хосте, smb.conf управляется вручную (не Docker-контейнер, не OMV-плагин). 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/` ## Текущий статус (2026-09-24) - Бэкап работает (LAN): бандл 470 ГБ, последняя сессия 2026-09-24 13:20 — инкремент 1.73 ГБ, успешно. - Квота 800 ГБ (745 Gi): занято 470 Gi, до потолка ~275 Gi — дальше TM чистит старые снапшоты. - Диск Кракена: 1.8 ТБ, свободно 757 ГБ. - Не решено: SMB через WG вне дома — `mount_smbfs` Authentication error (см. History 2026-07-01). ## Конфигурация Samba (вручную, не OMV) Шара в `/etc/samba/smb.conf`, правится вручную: плагин openmediavault-samba НЕ установлен, `omv-salt deploy` этот файл не перезаписывает. В `config.xml` остался инертный остаток extraoptions (`fruit:time machine max size = 0`) — не применяется, не трогать. Порядок правки: scp-копия локально → правка → заливка → `sudo testparm -s` → `sudo systemctl restart smbd`. ``` [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 = 800000000000 ``` Квота **800 ГБ** (`800000000000` байт, macOS видит 745 Gi) — установлена 2026-09-24. При заполнении квоты TM удаляет старые снапшоты. Бэкапы конфига: `/etc/samba/smb.conf.bak-20260922`, `/etc/samba/smb.conf.bak-20260924`. ## Проверка доступа ```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.14/TimeMachine`), быстрее. ## Plan: квота TM 800 ГБ (2026-09-24) Состояние: квота ОТКЛЮЧЕНА (закомментирована 2026-09-22), macOS видит весь диск 1.8 ТБ. Новый полный бэкап 470 ГБ завершён 2026-09-24, на диске свободно 757 ГБ. 1. Бэкап `/etc/samba/smb.conf` → `smb.conf.bak-20260924` (правка через локальную копию, не sed по SSH) 2. Строка 48: раскомментировать, значение `800000000000` (800 ГБ) 3. `testparm -s` — синтаксис + эффективный конфиг 4. `systemctl restart smbd` 5. Проверка с Mac: mount → df (ожидание ~800 ГБ) 6. Обновить доки: time-machine.md, openmediavault-rpi5.md Примечание: плагин openmediavault-samba НЕ установлен — smb.conf управляется вручную. В config.xml остался инертный остаток extraoptions (`max size = 0`) — не применяется, не трогаем. **✅ Выполнено 2026-09-24.** testparm ок, smbd active, проверка с Mac (mount + df): `745Gi total / 470Gi used / 275Gi avail` — квота 800 ГБ видна. Раздел «Конфигурация» переписан под реальное состояние. ## History - **2026-09-24**: квота `fruit:time machine max size = 800000000000` (800 ГБ, macOS видит 745 Gi). 2026-09-22 при чистке диска старый sparsebundle (2.2 ТБ) был удалён и квота 3 ТБ закомментирована — macOS видел весь диск 1.8 ТБ без потолка. Новый бандл (пересоздан 2026-09-22) — 470 ГБ; последняя проверенная сессия 2026-09-24 13:20 — инкремент 1.73 ГБ, `Successfully completed`. Правка: scp-копия → patch → заливка, бэкап `smb.conf.bak-20260924`. Уточнено, что smb.conf управляется вручную (раздел «Конфигурация» переписан). - **До 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`).