[2026-07-03] eagle: family/how-to/htpc-system.md family/projects/media-toolbox-kraken.md

This commit is contained in:
Alexey Martemyanov
2026-07-03 20:34:46 +06:00
parent c5a56fee21
commit 9f010a64b2
2 changed files with 37 additions and 17 deletions
+35 -15
View File
@@ -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
+2 -2
View File
@@ -1,7 +1,7 @@
---
created: '2026-05-13'
updated: '2026-07-03'
status: in-progress
|updated: '2026-07-03'
status: cancelled
tags:
- kraken
- media