[2026-09-20] eagle: family/how-to/router-bishkek-asus.md personal/tech/jellyfin-db-schema-mismatch.md
This commit is contained in:
1 parent
92a637ccf9
commit
fe19897908
2 files changed
+55
-2
No files matched your search
@@ -64,6 +64,15 @@ address=/tv/192.168.1.75
|
||||
## Полезные команды
|
||||
|
||||
```bash
|
||||
# Скорость/состояние портов коммутатора (Broadcom, robocfg)
|
||||
ssh admin@192.168.1.1 'robocfg show'
|
||||
# → Port 0: 1000FD (CPU/аплинк), Port 3/4: LAN, Port 5: WAN
|
||||
# Формат: <speed><FD|HD>, DOWN = порт не подключён, mac = устройство на порту
|
||||
|
||||
# Версия бинарника / модель
|
||||
ssh admin@192.168.1.1 'nvram get productid' # RT-AC68U
|
||||
# ⚠️ /sys/class/net/eth0/speed даёт 10Mb — это внутренний CPU-порт, НЕ показатель
|
||||
|
||||
# Проверить DNS резолвинг локальных имён
|
||||
dig @192.168.1.1 htpc +short
|
||||
dig @192.168.1.1 tv +short
|
||||
@@ -78,6 +87,39 @@ ssh -i ~/.ssh/id_rsa admin@192.168.1.1 "service restart_dnsmasq"
|
||||
ssh -i ~/.ssh/id_rsa admin@192.168.1.1 "nvram show | grep -E '^(dhcp_dns|wan_dns|wan0_dns)'"
|
||||
```
|
||||
|
||||
## Диагностика скорости линка портов (2026-09-20)
|
||||
|
||||
**Метод: сопоставить MAC на порту (`robocfg show`) с устройством из `arp -a`.**
|
||||
|
||||
Фактическое состояние на 2026-09-20:
|
||||
|
||||
| Порт | Скорость | MAC | Устройство |
|
||||
|---|---|---|---|
|
||||
| 0 | 1000FD | `6c:44:2a:9d:76:c5` | CPU / аплинк (норма) |
|
||||
| 3 | **100FD** ⚠️ | `ac:5a:f0:25:11:c6` | **LG TV** (провод) |
|
||||
| 4 | **1000FD** ✅ | `2c:cf:67:64:03:f3` | **Kraken** (LAN-порт) |
|
||||
| 5 | 1000FD | `f0:79:59:77:9b:70` | WAN |
|
||||
|
||||
**Kraken = гигабит, ТВ = сотка.** Оба плеча НЕ base1000.
|
||||
|
||||
### ✅ Кабельный тест (решающий, 2026-09-20)
|
||||
|
||||
Чтобы отличить «кабель» от «потолок устройства»: **подключить к тому же кабелю другое устройство с известным гигабитным портом** и посмотреть линк с обеих сторон.
|
||||
|
||||
```bash
|
||||
# на роутере: сменился ли MAC на порту и осталась ли сотка
|
||||
ssh admin@192.168.1.1 'robocfg show | grep "Port 3"'
|
||||
# на Mac (USB-Ethernet Realtek): на какой скорости слинковался
|
||||
ifconfig | awk '/^[a-z]/{ifc=$1} /100baseTX|1000baseT/{print ifc, $NF}'
|
||||
```
|
||||
|
||||
**Результат:** Mac (USB-Ethernet Realtek, MAC `00:e0:4c:68:04:88`, интерфейс `en8`) на этом кабеле слинковался на **`100baseTX`**; роутер порт 3 дал `100FD`.
|
||||
→ **Виноват кабель, а не ТВ.** Если бы ТВ был ограничен, Mac дал бы гигабит.
|
||||
|
||||
**Фикс:** заменить кабель на **CAT5e / CAT6** (проверить все 8 жил — обрыв одной пары роняет линк на 100). Если после замены кабеля сотка остаётся — смотреть порт роутера или порт ТВ.
|
||||
|
||||
> 📌 Тот же линк 100 Mbit/s у ТВ был отмечен ещё 2026-09-04 (см. таблицу устройств). Тест 20.09 подтвердил причину — **кабель**.
|
||||
|
||||
## Кастомный dnsmasq
|
||||
|
||||
Файл: `/jffs/configs/dnsmasq.conf.add`
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
# Jellyfin: сервер старше БД — `no such column: p.Permission_Permissions_Guid`
|
||||
|
||||
> **Обнаружено:** 2026-09-20 на Kraken (RPi5/OMV, arm64, Docker).
|
||||
> **Статус:** 🔴 **НЕ ЗАФИКСИРОВАНО** — диагноз подтверждён, фикс согласован, ждёт апрува Alex.
|
||||
> **Статус:** ✅ **ЗАФИКСИРОВАНО 2026-09-20** — контейнер пересоздан на образе 12.1.0.0, jellyfin `healthy`, Alex подтвердил «Заработало». См. раздел «Результат» ниже.
|
||||
> **Симптом:** `jellyfin` не подключается (`http://kraken:8096` → **503**), контейнер `Up` но `unhealthy`, health-check бесконечно пишет `Server is could not complete startup. Check logs.`
|
||||
> **Связанные:** [[personal/tech/docker-data-root-mount-race]], [[family/how-to/kraken-access]], [[family/plans/kraken-backup-to-truenas]]
|
||||
|
||||
@@ -71,7 +71,7 @@ scp kraken:/tmp/jf.db /Users/admin/kraken-recovery/jellyfin-db/jellyfin.db
|
||||
|
||||
**Питфолл тега `latest`:** `docker inspect` показывает digest, откуда образ БЫЛ СКАЧАН, а не текущий `latest`. Локальный «latest» может быть сильно старше, чем `latest` в реестре. Проверять версию **внутри образа**: `docker run --rm --entrypoint sh jellyfin/jellyfin:latest -c '/jellyfin/jellyfin --version'`.
|
||||
|
||||
## Фикс (согласован с Alex, ЖДЁТ ВЫПОЛНЕНИЯ)
|
||||
## Фикс (ВЫПОЛНЕН 2026-09-20)
|
||||
|
||||
**Миграцию вручную запустить НЕЛЬЗЯ и не нужно** — миграции уже применены (до 12.1.0.0), запускать нечего; даунгрейд схемы EF Core не поддерживает. Проблема не в БД, а в **образе контейнера**.
|
||||
|
||||
@@ -94,6 +94,17 @@ ssh kraken 'docker exec jellyfin sh -c "curl -s -o /dev/null -w \"%{http_code}\n
|
||||
|
||||
**Риск:** низкий. Данные (`/config`) не трогаются, пересоздаётся только контейнер. Бэкап БД обязателен — откатываться больше некуда.
|
||||
|
||||
## ✅ Результат (2026-09-20)
|
||||
|
||||
| Шаг | Факт |
|
||||
|---|---|
|
||||
| Бэкап БД | `/home/kraken/backups/jellyfin-recreate-20260920-165750/` — `jellyfin.db` (24.5 МБ) + `-wal` + `-shm` |
|
||||
| Пересоздание | `docker compose up -d --force-recreate` → `Container jellyfin Recreated / Started`, rc=0 |
|
||||
| Статус через 15 с | **`Up 15 seconds (healthy)`** — сразу healthy, без периода `starting` |
|
||||
| Подтверждение Alex | «Заработало» |
|
||||
|
||||
> Контейнер теперь работает на образе `jellyfin/jellyfin:latest` = **12.1.0.0**, что согласовано с версией БД. Проблема `no such column` закрыта.
|
||||
|
||||
**Compose jellyfin** (`/srv/.../docker/jellyfin/docker-compose.yml`):
|
||||
```yaml
|
||||
image: jellyfin/jellyfin # без тега = latest
|
||||
|
||||
Reference in new issue
Block a user