60 lines
3.3 KiB
Markdown
60 lines
3.3 KiB
Markdown
# Time Machine Backup — Kraken (RPi5)
|
||
|
||
## Топология
|
||
|
||
Бэкап идёт по SMB на контейнер `mbentley/timemachine:smb`, запущенный на Кракене (RPi5, OMV).
|
||
|
||
Destination: `smb://timemachine@kraken/TimeMachine`
|
||
Бандл: `mbp-black.sparsebundle`
|
||
Контейнер: `mbentley/timemachine:smb` на Кракене (`restart: unless-stopped`)
|
||
Пароль: `timemachine` (samba user в контейнере)
|
||
|
||
Бандл лежит на TrueNAS, смонтирован в контейнер:
|
||
`/srv/dev-disk-by-uuid-49e8f586-3839-4c5d-a1e1-58bfc3579ade/timemachine/`
|
||
|
||
## Важно при перезапуске контейнера
|
||
|
||
После `docker compose up` образ устанавливает пароль через smbpasswd автоматически (из `PASSWORD` в `.env`). Если монтирование не работает после рестарта — запустить вручную:
|
||
```bash
|
||
ssh kraken 'echo -e "timemachine\ntimemachine" | docker exec -i timemachine smbpasswd -s timemachine'
|
||
```
|
||
|
||
## Сбой аутентификации (2026-06-02)
|
||
|
||
Симптом: Time Machine показывает «The network backup disk could not be accessed because there was a problem with the network username or password». Ping `kraken` работает, SMB-шар смонтировать через `mount_smbfs` — тоже.
|
||
|
||
Причины (все три были одновременно):
|
||
1. **`PASSWORD=` пустая в docker-compose** — `.env` имел `TM_PASSWORD` вместо `PASSWORD`, volumes path был вписан в `environment` секцию. Контейнер стартовал с пустым паролем.
|
||
2. **`ntlm auth = no` в smb.conf** — Samba отклоняла NTLM при реаутентификации backupd (`error 57 Socket is not connected`, `Authentication error 80`). Finder mount работал (первичное подключение), backupd падал при reconnect.
|
||
3. **`/run/samba` не персистентный** — tdbsam с паролями не сохранялся между перезапусками контейнера.
|
||
4. **System.keychain** — backupd хранит credentials в System.keychain, не в login keychain. Finder использует login keychain — поэтому Finder mount работал а TM нет.
|
||
|
||
### Восстановление
|
||
|
||
1. Переустановить пароль samba-пользователя в контейнере:
|
||
```
|
||
ssh kraken 'docker exec -i timemachine sh -c "echo -e \"timemachine\\ntimemachine\" | smbpasswd -a -s timemachine"'
|
||
```
|
||
|
||
2. Удалить все старые записи `timemachine@kraken` из Keychain (login + system)
|
||
|
||
3. Cmd+K в Finder → `smb://kraken/TimeMachine` → Connect As → Registered User → `timemachine` / `timemachine`
|
||
|
||
4. Перевыбрать destination:
|
||
```
|
||
sudo tmutil setdestination -p smb://timemachine@kraken/TimeMachine
|
||
```
|
||
|
||
### Проверка доступа из консоли
|
||
|
||
```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
|
||
```
|
||
|
||
## Связанные заметки
|
||
|
||
- [[family/how-to/wireguard-vpn|WireGuard VPN]] — туннель для бэкапа вне дома
|