[2026-07-03] taiga-vault: family/how-to/htpc-system.md family/projects/media-toolbox-kraken.md
This commit is contained in:
@@ -426,7 +426,9 @@ XwaylandEisNoPrompt=true
|
||||
|
||||
## Диски (2026-07-03)
|
||||
|
||||
После переноса HDD с Kraken на HTPC:
|
||||
**⚠️ htpc-sleep-guard уничтожен** — сервис слетел при манипуляциях с rsync (systemd-inhibit процесс был убит). `rsync-active` файл остался, но без сервиса он не блокирует сон. Для долгих операций использовать `systemd-inhibit` напрямую.
|
||||
|
||||
После переноса HDD с Kraken на HTPC (2026-07-03, сессия отката rsync отменена пользователем):
|
||||
|
||||
| Диск | Модель | Размер | Интерфейс | Статус |
|
||||
|------|--------|--------|-----------|--------|
|
||||
@@ -449,20 +451,18 @@ XwaylandEisNoPrompt=true
|
||||
- Источник: `/run/media/system/storage/` (Seagate 12TB, ext4, sdb)
|
||||
- Цель: `/run/media/bazzite/Backup/` (Toshiba 1.8TB, ext4, sdc)
|
||||
- Исключить: `timemachine/`
|
||||
- Режим: `rsync -aHAX --delete` (архив, хардлинки, ACL, xattr, зеркало)
|
||||
- Режим: `rsync -aHAX` (архив, хардлинки, ACL, xattr)
|
||||
- Защита сна: `touch /tmp/rsync-active` (HTPC не уйдёт в сон)
|
||||
|
||||
**Исполнение (текущий прогресс, rsync запущен удалённо через nohup):**
|
||||
**Исполнение (выполненные команды на HTPC):**
|
||||
```bash
|
||||
# Предварительно: исправить владельца Backup (был root)
|
||||
echo bazzite | sudo -S chown bazzite:bazzite /run/media/bazzite/Backup/
|
||||
|
||||
# Запуск rsync на HTPC через nohup (чтобы не зависеть от SSH таймаута)
|
||||
ssh htpc 'touch /tmp/rsync-active && nohup rsync -aHAX --info=progress2 --exclude=timemachine --delete /run/media/system/storage/ /run/media/bazzite/Backup/ > /tmp/rsync-storage-to-backup2.log 2>&1 &'
|
||||
|
||||
# Проверка
|
||||
ssh htpc 'tail -3 /tmp/rsync-storage-to-backup2.log'
|
||||
ssh htpc 'df -h /run/media/bazzite/Backup/'
|
||||
# Запуск rsync с systemd-inhibit (чтобы HTPC не уснул)
|
||||
systemd-inhibit --what=sleep:idle --who=rsync-storage-backup --why="Data transfer" --mode=block \
|
||||
rsync -aHAX --info=progress2 --exclude=timemachine /run/media/system/storage/ /run/media/bazzite/Backup/ \
|
||||
> /tmp/rsync-storage-to-backup4.log 2>&1 &
|
||||
```
|
||||
|
||||
**Содержимое storage (Seagate 12TB, всего ~4.1T):**
|
||||
@@ -475,13 +475,33 @@ ssh htpc 'df -h /run/media/bazzite/Backup/'
|
||||
| `apt-cache/` | 374M |
|
||||
| остальное (obsidian, watchlist-sync, var-log, tmp, docker-data) | ~100M |
|
||||
|
||||
**Текущий прогресс на Toshiba (1.8T целевой):** ~550G скопировано (~35%). rsync активен, скорость ~85 MB/s (USB-ограничение).
|
||||
**Прогресс на Toshiba (конец сессии):** ~1.2TB скопировано (67%). Не хватает ~200GB. **rsync остановлен пользователем (стоп).**
|
||||
|
||||
**Проблемы и решения:**
|
||||
1. **Permission denied на lost+found, rclone.conf и др.** — не критично, rsync пропускает файлы с ошибками `Permission denied (13)` и продолжает (exit code 23).
|
||||
2. **rsync-active остался после падения процесса** — при перезапуске удалить старый inhibit: `rm -f /tmp/rsync-active && kill <pid>`.
|
||||
3. **SSH таймаут при долгом rsync (>2ч)** — не использовать Python-обёртку с `subprocess.run(timeout=...)`. Запускать напрямую через `nohup` на HTPC.
|
||||
4. **Владелец Backup — root** — ext4-диск, примонтированный через fstab/Gnome Disks, может иметь владельца `root`. Перед rsync исправить: `chown bazzite:bazzite /run/media/bazzite/Backup/`.
|
||||
**Проблемы и решения (накопленные за сессию):**
|
||||
|
||||
1. **Permission denied на lost+found, rclone.conf и др.** — не критично, rsync пропускает файлы с ошибками `Permission denied (13)` и продолжает (exit code 23). Это не останавливает rsync.
|
||||
|
||||
2. **SSH таймаут при долгом rsync (>2ч)** — нельзя использовать Python `subprocess.run(timeout=...)` для запуска долгого rsync. SSH-сессия таймаутит. Решение: запускать через `nohup` напрямую на HTPC:
|
||||
```bash
|
||||
ssh htpc 'nohup rsync ... > /tmp/log 2>&1 &'
|
||||
```
|
||||
|
||||
3. **Владелец Backup — root** — ext4-диск, примонтированный через fstab/Gnome Disks, может иметь владельца `root`. Перед rsync исправить:
|
||||
```bash
|
||||
chown bazzite:bazzite /run/media/bazzite/Backup/
|
||||
```
|
||||
|
||||
4. **htpc-sleep-guard слетел** — при убийстве `systemd-inhibit` процесса был также разрушен сервис `htpc-sleep-guard.service`. `rsync-active` как файл без сервиса не блокирует сон. HTPC уходит в S3 и убивает все процессы. **Решение:** использовать `systemd-inhibit` напрямую при запуске rsync, а не полагаться на htpc-sleep-guard:
|
||||
```bash
|
||||
systemd-inhibit --what=sleep:idle --who=rsync-storage-backup --why="Data transfer" --mode=block \
|
||||
rsync -aHAX ... &
|
||||
```
|
||||
|
||||
5. **Проверка жив ли rsync** — `ps aux | grep rsync` может не показывать процесс в состоянии `D` (uninterruptible sleep). **Правильная проверка:** смотреть `/proc/diskstats` на рост секторов записи целевого диска. Если counters растут за 2 секунды — rsync жив.
|
||||
|
||||
6. **--delete опасен при повторных запусках** — при перезапуске rsync с `--delete` на частично скопированную цель, rsync проверяет все файлы сначала и может удалить то, что ещё не успел скопировать при первой попытке. Лучше запускать без `--delete` на догонку, а финальный проход с `--delete` — отдельно.
|
||||
|
||||
7. **nohup vs screen/tmux** — `nohup` работает, но при убийстве родительского SSH процесса (например, при таймауте) дочерний процесс может получить SIGHUP. `systemd-inhibit` + `nohup` вместе решают проблему: inhibit держит процесс в отдельной cgroup.
|
||||
|
||||
### Агентские блокеры для администрирования HTPC
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
---
|
||||
created: '2026-05-13'
|
||||
updated: '2026-07-03'
|
||||
status: in-progress
|
||||
|updated: '2026-07-03'
|
||||
status: cancelled
|
||||
tags:
|
||||
- kraken
|
||||
- media
|
||||
|
||||
Reference in New Issue
Block a user