[2026-07-01] eagle: family/how-to/time-machine.md

This commit is contained in:
Alexey Martemyanov
2026-07-01 16:03:35 +06:00
parent fe90969960
commit 0a9a8fc3a0
+71 -1
View File
@@ -40,6 +40,69 @@ 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
@@ -68,7 +131,14 @@ smbutil view //timemachine@kraken
- **До 2026-06-02**: использовался Docker-контейнер `mbentley/timemachine:smb`.
Контейнер снесён, Samba перенесена на хост OMV из-за проблем с persisting паролей
(tdbsam не сохранялся, `ntlm auth = no` ломал backupd при reconnect).
- **2026-06-24**: проверена доступность smbd и бандла.
- **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`.