Media all drives, S5/S6 on Tester 1: a pulled drive stops nothing, the guest keeps a dead mount; on return nothing sees it until stop+start, FileBrowser cannot be restarted (R-1038); 15 §5 written; final report
gates / gates (push) Successful in 6m37s

This commit is contained in:
2026-10-14 20:49:49 +02:00
parent 56f613807d
commit 4ce351ab7b
17 changed files with 598 additions and 21 deletions
@@ -0,0 +1,12 @@
== radarr: 3 import(s)
movie Hope: root=media_a tags=['drive-a']
movie Matchbox the Movie: root=media_b tags=['drive-b']
movie WHO: root=media_b tags=['drive-a']
Matchbox the Movie Matchbox.The.Movie.2026.720p.ATVP.WEB-DL.DDP5. client=qBittorrent drive-b download=media_b library=media_b HARDLINK
WHO Who.2026.720p.DSNP.WEB-DL.DDP5.1.H.264.HuNSUB- client=Transmission drive-a download=media_a library=media_b COPY
/mnt/felhom-drives/media_a/userdata/media/transmission/movies/Who.2026.720p.DSNP.WEB-DL.DDP5.1.H.264.HuNSUB-TRiNiTY links=3 inode=4194407
/mnt/felhom-drives/media_a/userdata/media/transmission/movies/Who.2026.720p.DSNP.WEB-DL.DDP5.1.H.264.HuNSUB-TRiNiTY/Sample/Who.2026.720p.DSNP.WEB-DL.DDP5.1.H.264.HuNSUB-TRiNiTY-Sample.mkv links=1 inode=4194411
/mnt/felhom-drives/media_a/userdata/media/transmission/movies/Who.2026.720p.DSNP.WEB-DL.DDP5.1.H.264.HuNSUB-TRiNiTY/Who.2026.720p.DSNP.WEB-DL.DDP5.1.H.264.HuNSUB-TRiNiTY.mkv links=1 inode=4194408
/mnt/felhom-drives/media_a/userdata/media/transmission/movies/Who.2026.720p.DSNP.WEB-DL.DDP5.1.H.264.HuNSUB-TRiNiTY/Who.2026.720p.DSNP.WEB-DL.DDP5.1.H.264.HuNSUB-TRiNiTY.nfo links=1 inode=4194409
/mnt/felhom-drives/media_b/userdata/media/movies/WHO (2026)/Who.2026.720p.DSNP.WEB-DL.DDP5.1.H.264.HuNSUB-TRiNiTY.mkv links=1 inode=2097156
@@ -22,3 +22,6 @@ Predictions were written before each measurement: `A-drives/PREDICTIONS-A4-A6.md
| — | **17:25 CEST: demo-hp was power-cut by another session's Immich drill** (`plugcut.py --plug hp`) — Tester 1 went down with it and came back by itself; the boot gate recreated the four media apps onto drive A; all test films then removed (0 files left) | `AFTER-power-cut-1725.txt` |
| H | Prowlarr (drill-only template `b0fd3a0`, `version-2.6.5.5623`, config volume only) deployed through the dashboard; `wire.py` adds Sonarr and Radarr as Prowlarr apps with „Full Sync” (both pass Prowlarr's test; the sync completes; 0 indexers so far). Sonarr now refuses a bare IP (the operator set „Allowed hosts”) — `wire.py` sends `Host: <app>` | `H-*.txt` |
| G | Sign-in with „Disabled for Local Addresses”: outsiders ARE asked (the public address arrives in `X-Forwarded-For`; Sonarr/Radarr redirect to `/login`); the home network and other containers are not (200 + API key) — R-1030. The box's setup gate also blocks outsiders until setup is marked done | `G-auth/` |
| E1 | The operator's test: 18 imports from Sonarr and Radarr. Every show/film whose tag matched its drive → a hardlink on that drive (13), through both download apps on both drives; the two mismatches (Slow Horses ×5, „Who") → a full copy on B while A seeds. Plex was empty until one manual scan (R-1037) | `E1-*.txt`, `E3-who.txt`, `K-plex-empty.txt` |
| S5 | Media B pulled 20:10:23 for 30 min: 0 apps stopped; the guest kept a DEAD mount (I/O errors); hub event + operator mail in 24 s; Plex/Jellyfin removed nothing; Sonarr/Radarr health silent | `S5-S6/` |
| S6 | Re-attached 20:41:00: the host re-mounted in 24 s; every running container — FileBrowser too — kept the dead view; „restart" did nothing; stop+start fixed the six apps; FileBrowser is protected and stays broken (R-1038) | `S5-S6/` |
@@ -19,3 +19,7 @@ S6 — the same volume is re-attached to the same slot (`qm set 341 --scsi3 nvme
apps IT stopped — none.
- So the running media containers still do NOT see B until they are recreated (their bind was made at start).
Expected: the restart notice of decision 238 must also cover „a drive came back".
## S5 outcome (written before S6): stable 30 min; 0 apps stopped; Plex/Jellyfin removed nothing; the guest kept a DEAD
## mount of media_b (I/O errors, not an empty folder) — so the predicted „writes onto the guest rootfs" cannot happen,
## and for S6 the question is whether the agent REPLACES that dead mount.
@@ -0,0 +1,61 @@
Adattárolók
Külső meghajtók kezelése alkalmazásadatok tárolásához.
Megőrzött adatok
Eltávolított alkalmazások lemezen maradt adatai
Adatlemez
/mnt/felhom-drives/adatlemez
Alapértelmezett
Aktív
0,2 GB / 48,9 GB
ext4 · /dev/sdb[/felhom-data] · QEMU HARDDISK
1 alkalmazás használja
Paperless-ngx
6,3 KB
Mozgatás
Új telepítések letiltása
Áthelyezés ide…
Media A (/mnt/felhom-drives/media_a)
Összes adat áthelyezése
Végleges leszerelés
Media A
/mnt/felhom-drives/media_a
Aktív
27,8 GB / 97,9 GB
ext4 · /dev/sdc[/felhom-data] · QEMU HARDDISK
6 alkalmazás használja
Jellyfin
Mozgatás
Plex
Mozgatás
Radarr
Mozgatás
Sonarr
Mozgatás
Transmission
Mozgatás
qBittorrent
Mozgatás
Legyen alapértelmezett
Új telepítések letiltása
Áthelyezés ide…
Adatlemez (/mnt/felhom-drives/adatlemez)
Összes adat áthelyezése
Végleges leszerelés
Media B
/mnt/felhom-drives/media_b
Leválasztva
Leválasztva: 2026. 10. 14. 20:10
Csatlakoztatás
Adatok áthelyezése
…
Új meghajtó inicializálása
Meglévő meghajtó csatolása
Nem regisztrált meghajtók
az ügynök által észlelt, még nem regisztrált adatmeghajtók
Rendszermeghajtók
védett — csak operátori aláírással módosíthatók
Már csatlakoztatott tárhely hozzáadása kézzel
Elérési út
Pl. /mnt/hdd_1 — a meghajtónak már csatolva kell lennie
Megnevezés (opcionális)
--- banners on the start page: []
@@ -0,0 +1,2 @@
2026/10/14 20:10:47 [INFO] Event from tester-1: storage_disconnected (error) — Meghajtó váratlanul leválasztva: Media B
2026/10/14 20:10:47 [INFO] Operator email sent for tester-1/storage_disconnected
@@ -0,0 +1,28 @@
2026-10-14T20:10:23+02:00
scsi3: nvme-scratch:341/vm-341-disk-4.raw,backup=0,size=100G
update VM 341: -delete scsi3
rc=0
scsi0: nvme-scratch:341/vm-341-disk-1.raw,size=200G
scsi1: nvme-scratch:341/vm-341-disk-2.raw,size=50G
scsi2: nvme-scratch:341/vm-341-disk-3.raw,backup=0,size=100G
scsihw: virtio-scsi-single
unused0: nvme-scratch:341/vm-341-disk-4.raw
-rw-r----- 1 root root 107374182400 Oct 14 20:10 /mnt/hdd_1/images/341/vm-341-disk-4.raw
2026-10-14T20:10:48+02:00
sdc 100G /mnt/media_a
/dev/sdd on /mnt/felhom-drives/media_b type ext4 (rw,relatime,shutdown)
Oct 14 20:10:25 felhom kernel: JBD2: I/O error when updating journal superblock for sdd-8.
Oct 14 20:10:25 felhom kernel: EXT4-fs (sdd): shut down requested (2)
Oct 14 20:10:25 felhom kernel: sd 3:0:0:3: [sdd] Synchronizing SCSI cache
Oct 14 20:10:25 felhom kernel: sd 3:0:0:3: [sdd] Synchronize Cache(10) failed: Result: hostbyte=DID_BAD_TARGET driverbyte=DRIVER_OK
Oct 14 20:10:25 felhom systemd[1]: Unmounting mnt-media_b.mount - Felhom storage mount e15652d5-0aa7-4eb8-93a1-afb2839d527c...
Oct 14 20:10:25 felhom systemd[1]: mnt-media_b.mount: Deactivated successfully.
Oct 14 20:10:25 felhom systemd[1]: Unmounted mnt-media_b.mount - Felhom storage mount e15652d5-0aa7-4eb8-93a1-afb2839d527c.
Oct 14 20:10:28 felhom felhom-agent[1201]: time=2026-10-14T20:10:28.265+02:00 level=INFO msg="storage: watchdog — known drive went absent; clearing any eject intent (replug will auto-mount)" target=e15652d5-0aa7-4eb8-9
Oct 14 20:10:43 felhom felhom-agent[1201]: time=2026-10-14T20:10:43.988+02:00 level=INFO msg="storage: enrolled drive absent by UUID — not re-asserting (will retry when it enumerates)" name=e15652d5-0aa7-4eb8-93a1-afb2
Oct 14 20:10:44 felhom sudo[334609]: felhom-agent : PWD=/ ; USER=root ; COMMAND=/usr/bin/mkdir -p /mnt/felhom-drives
Oct 14 20:10:44 felhom sudo[334658]: felhom-agent : PWD=/ ; USER=root ; COMMAND=/usr/bin/mkdir -p /mnt/felhom-drives/media_a
Oct 14 20:10:44 felhom felhom-agent[1201]: time=2026-10-14T20:10:44.603+02:00 level=INFO msg="reconcile: enrolled drive bound under shared parent (live, no reboot)" vmid=9201 where=/mnt/media_a guest_path=/mnt/felhom-dri
Oct 14 20:10:44 felhom sudo[334670]: felhom-agent : PWD=/ ; USER=root ; COMMAND=/usr/bin/mkdir -p /mnt/felhom-drives/adatlemez
Oct 14 20:10:44 felhom felhom-agent[1201]: time=2026-10-14T20:10:44.670+02:00 level=INFO msg="reconcile: enrolled drive bound under shared parent (live, no reboot)" vmid=9201 where=/mnt/adatlemez guest_path=/mnt/felhom-d
Oct 14 20:10:44 felhom felhom-agent[1201]: time=2026-10-14T20:10:44.670+02:00 level=WARN msg="reconcile: enrolled drive not present (durable-id absent) — skipping" vmid=9201 durable_id=uuid:e15652d5-0aa7-4eb8-93a1-afb2
@@ -0,0 +1 @@
Counter({('tv-drive-b', 'queuedUP'): 4, ('tv-drive-a', 'queuedUP'): 3, ('tv-drive-a', 'stalledUP'): 2, ('movies-drive-b', 'queuedUP'): 1, ('movies-drive-a', 'stalledUP'): 1})
@@ -0,0 +1,24 @@
2026-10-14T20:41:00+02:00
update VM 341: -scsi3 nvme-scratch:341/vm-341-disk-4.raw,backup=0
rc=0
scsi3: nvme-scratch:341/vm-341-disk-4.raw,backup=0,size=100G
2026-10-14T20:41:48+02:00
sdc 100G /mnt/media_a
sde 100G /mnt/media_b
|-/mnt/media_b /dev/sde ext4 rw,relatime
| `-/mnt/felhom-drives/media_b /dev/sde[/felhom-data] ext4 rw,relatime
Oct 14 20:41:24 felhom felhom-agent[1201]: time=2026-10-14T20:41:24.762+02:00 level=INFO msg="reconcile: enrolled drive bound under shared parent (live, no reboot)" vmid=9201 where=/mnt/media_b guest_path=/mnt/felhom-dri
Oct 14 20:41:44 felhom sudo[401123]: felhom-agent : PWD=/ ; USER=root ; COMMAND=/usr/bin/mkdir -p /mnt/felhom-drives
Oct 14 20:41:44 felhom sudo[401200]: felhom-agent : PWD=/ ; USER=root ; COMMAND=/usr/bin/mkdir -p /mnt/felhom-drives/media_a
Oct 14 20:41:44 felhom felhom-agent[1201]: time=2026-10-14T20:41:44.579+02:00 level=INFO msg="reconcile: enrolled drive bound under shared parent (live, no reboot)" vmid=9201 where=/mnt/media_a guest_path=/mnt/felhom-dri
Oct 14 20:41:44 felhom sudo[401212]: felhom-agent : PWD=/ ; USER=root ; COMMAND=/usr/bin/mkdir -p /mnt/felhom-drives/adatlemez
Oct 14 20:41:44 felhom felhom-agent[1201]: time=2026-10-14T20:41:44.646+02:00 level=INFO msg="reconcile: enrolled drive bound under shared parent (live, no reboot)" vmid=9201 where=/mnt/adatlemez guest_path=/mnt/felhom-d
Oct 14 20:41:44 felhom sudo[401218]: felhom-agent : PWD=/ ; USER=root ; COMMAND=/usr/bin/mkdir -p /mnt/media_b/felhom-data
Oct 14 20:41:44 felhom sudo[401221]: felhom-agent : PWD=/ ; USER=root ; COMMAND=/usr/bin/chown 100000:100000 /mnt/media_b/felhom-data
Oct 14 20:41:44 felhom sudo[401225]: felhom-agent : PWD=/ ; USER=root ; COMMAND=/usr/bin/mkdir -p /mnt/felhom-drives/media_b
Oct 14 20:41:44 felhom felhom-agent[1201]: time=2026-10-14T20:41:44.710+02:00 level=INFO msg="reconcile: enrolled drive bound under shared parent (live, no reboot)" vmid=9201 where=/mnt/media_b guest_path=/mnt/felhom-dri
Oct 14 20:41:46 felhom sudo[401300]: felhom-agent : PWD=/ ; USER=root ; COMMAND=/usr/sbin/smartctl -a -j /dev/sde
Oct 14 20:41:47 felhom sudo[401340]: felhom-agent : PWD=/ ; USER=root ; COMMAND=/usr/sbin/smartctl -a -j /dev/sde
`-/mnt/felhom-drives/media_b /dev/sde[/felhom-data]
|-/mnt/felhom-drives/media_b /dev/sde[/felhom-data]
@@ -0,0 +1,29 @@
20:42:20 sonarr before restart button: 2026-10-14T15:46:33.691456Z | ls: cannot access '/mnt/felhom-drives/media_b/userdata/media/tv': I/O error |
20:42:20 dashboard restart sonarr -> 200 {'ok': True, 'data': {'state': 'running'}, 'message': 'Stack sonarr re
20:42:45 sonarr after restart button: 2026-10-14T15:46:33.691456Z | ls: cannot access '/mnt/felhom-drives/media_b/userdata/media/tv': I/O error |
20:42:48 sonarr stop -> 200
20:42:52 radarr stop -> 200
20:42:54 qbittorrent stop -> 200
20:42:59 transmission stop -> 200
20:43:08 plex stop -> 200
20:43:08 jellyfin stop -> 200
20:43:24 sonarr start -> 200
20:43:25 radarr start -> 200
20:43:26 qbittorrent start -> 200
20:43:27 transmission start -> 200
20:43:28 plex start -> 200
20:43:30 jellyfin start -> 200
20:44:49 sonarr after stop+start: 2026-10-14T18:43:24.157626948Z | American Horror Story |
20:44:52 radarr after stop+start: 2026-10-14T18:43:25.147093183Z | American Horror Story |
20:44:55 qbittorrent after stop+start: 2026-10-14T18:43:25.950203755Z | American Horror Story |
20:44:58 transmission after stop+start: 2026-10-14T18:43:26.870494477Z | American Horror Story |
20:45:02 plex after stop+start: 2026-10-14T18:43:28.207524035Z | American Horror Story |
20:45:05 jellyfin after stop+start: 2026-10-14T18:43:29.327411356Z | American Horror Story |
started=2026-10-14T15:28:04.13026562Z
ls: /srv/media_b/media/tv: I/O error
20:46:09 filebrowser stop -> 403 {'ok': False, 'error': 'cannot stop protected stack filebrowser'}
20:46:17 filebrowser start -> 403 {'ok': False, 'error': 'cannot start protected stack filebrowser'}
started=2026-10-14T15:28:04.13026562Z healthy
ls: /srv/media_b/media/tv: I/O error
@@ -0,0 +1,101 @@
== drive adatlemez (/mnt/felhom-drives/adatlemez/userdata/media)
== drive media_a (/mnt/felhom-drives/media_a/userdata/media)
-- movies/ (1 file(s))
4697.5 MB links=2 inode=4194391 movies/Hope (2026)/Hope.2026.720p.AMZN.WEB-DL.DDP5.1.Atmos.H.264-N1H4L.mkv
-- torrents/ (16 file(s))
909.5 MB links=2 inode=4194364 torrents/tv/Avatar.Seven.Havens.S01E01.1080p.WEB.h264-GRACE/Avatar.Seven.Havens.S01E01.1080p.WEB.h264-GRACE.mkv
0.0 MB links=1 inode=4194376 torrents/tv/Avatar.Seven.Havens.S01E01.1080p.WEB.h264-GRACE/avatar.seven.havens.s01e01.1080p.web.h264-grace.nfo
35.2 MB links=1 inode=4194366 torrents/tv/Avatar.Seven.Havens.S01E01.1080p.WEB.h264-GRACE/Sample/avatar.seven.havens.s01e01.1080p.web.h264-grace.sample.mkv
3789.5 MB links=1 inode=4194398 torrents/tv/Slow.Horses.S06E05.Sayonara.1080p.ATVP.WEB-DL.DDP5.1.H.264-NTb/Slow.Horses.S06E05.Sayonara.1080p.ATVP.WEB-DL.DDP5.1.H.264-NTb.mkv
0.0 MB links=1 inode=4194400 torrents/tv/Slow.Horses.S06E05.Sayonara.1080p.ATVP.WEB-DL.DDP5.1.H.264-NTb/Slow.Horses.S06E05.Sayonara.1080p.ATVP.WEB-DL.DDP5.1.H.264-NTb.nfo
3931.2 MB links=1 inode=4194385 torrents/tv/Slow.Horses.S06E03.1080p.WEB.H264-CAKES/slow.horses.s06e03.1080p.web.h264-cakes.mkv
0.0 MB links=1 inode=4194367 torrents/tv/Slow.Horses.S06E03.1080p.WEB.H264-CAKES/slow.horses.s06e03.1080p.web.h264-cakes.nfo
85.8 MB links=1 inode=4194392 torrents/tv/Slow.Horses.S06E03.1080p.WEB.H264-CAKES/Sample/slow.horses.s06e03.1080p.web.h264-cakes-sample.mkv
0.0 MB links=1 inode=4194397 torrents/tv/Slow.Horses.S06E02.PROPER.1080p.WEB.h264-ETHEL/slow.horses.s06e02.proper.1080p.web.h264-ethel.nfo
3758.3 MB links=1 inode=4194369 torrents/tv/Slow.Horses.S06E02.PROPER.1080p.WEB.h264-ETHEL/Slow.Horses.S06E02.PROPER.1080p.WEB.h264-ETHEL.mkv
77.7 MB links=1 inode=4194383 torrents/tv/Slow.Horses.S06E02.PROPER.1080p.WEB.h264-ETHEL/Sample/slow.horses.s06e02.proper.1080p.web.h264-ethel.sample.mkv
720.3 MB links=2 inode=4194368 torrents/tv/Avatar.Seven.Havens.S01E03.1080p.WEB.h264-GRACE/Avatar.Seven.Havens.S01E03.1080p.WEB.h264-GRACE.mkv
0.0 MB links=1 inode=4194377 torrents/tv/Avatar.Seven.Havens.S01E03.1080p.WEB.h264-GRACE/avatar.seven.havens.s01e03.1080p.web.h264-grace.nfo
21.7 MB links=1 inode=4194370 torrents/tv/Avatar.Seven.Havens.S01E03.1080p.WEB.h264-GRACE/Sample/avatar.seven.havens.s01e03.1080p.web.h264-grace.sample.mkv
0.0 MB links=1 inode=4194405 torrents/movies/Hope.2026.720p.AMZN.WEB-DL.DDP5.1.Atmos.H.264-N1H4L/Hope.2026.720p.AMZN.WEB-DL.DDP5.1.Atmos.H.264-N1H4L.nfo
4697.5 MB links=2 inode=4194391 torrents/movies/Hope.2026.720p.AMZN.WEB-DL.DDP5.1.Atmos.H.264-N1H4L/Hope.2026.720p.AMZN.WEB-DL.DDP5.1.Atmos.H.264-N1H4L.mkv
-- transmission/ (12 file(s))
4039.9 MB links=1 inode=4194396 transmission/tv/Slow.Horses.S06E04.1080p.WEB.H264-CAKES/slow.horses.s06e04.1080p.web.h264-cakes.mkv
0.0 MB links=1 inode=4194399 transmission/tv/Slow.Horses.S06E04.1080p.WEB.H264-CAKES/slow.horses.s06e04.1080p.web.h264-cakes.nfo
94.2 MB links=1 inode=4194395 transmission/tv/Slow.Horses.S06E04.1080p.WEB.H264-CAKES/Sample/slow.horses.s06e04.1080p.web.h264-cakes-sample.mkv
3859.1 MB links=1 inode=4194387 transmission/tv/Slow.Horses.S06E01.1080p.WEB.H264-CAKES/slow.horses.s06e01.1080p.web.h264-cakes.mkv
0.0 MB links=1 inode=4194388 transmission/tv/Slow.Horses.S06E01.1080p.WEB.H264-CAKES/slow.horses.s06e01.1080p.web.h264-cakes.nfo
104.1 MB links=1 inode=4194390 transmission/tv/Slow.Horses.S06E01.1080p.WEB.H264-CAKES/Sample/slow.horses.s06e01.1080p.web.h264-cakes-sample.mkv
0.0 MB links=1 inode=4194374 transmission/tv/Avatar.Seven.Havens.S01E02.1080p.WEB.h264-GRACE/avatar.seven.havens.s01e02.1080p.web.h264-grace.nfo
829.6 MB links=2 inode=4194375 transmission/tv/Avatar.Seven.Havens.S01E02.1080p.WEB.h264-GRACE/Avatar.Seven.Havens.S01E02.1080p.WEB.h264-GRACE.mkv
31.2 MB links=1 inode=4194373 transmission/tv/Avatar.Seven.Havens.S01E02.1080p.WEB.h264-GRACE/Sample/avatar.seven.havens.s01e02.1080p.web.h264-grace.sample.mkv
2819.9 MB links=1 inode=4194408 transmission/movies/Who.2026.720p.DSNP.WEB-DL.DDP5.1.H.264.HuNSUB-TRiNiTY/Who.2026.720p.DSNP.WEB-DL.DDP5.1.H.264.HuNSUB-TRiNiTY.mkv
0.0 MB links=1 inode=4194409 transmission/movies/Who.2026.720p.DSNP.WEB-DL.DDP5.1.H.264.HuNSUB-TRiNiTY/Who.2026.720p.DSNP.WEB-DL.DDP5.1.H.264.HuNSUB-TRiNiTY.nfo
22.7 MB links=1 inode=4194411 transmission/movies/Who.2026.720p.DSNP.WEB-DL.DDP5.1.H.264.HuNSUB-TRiNiTY/Sample/Who.2026.720p.DSNP.WEB-DL.DDP5.1.H.264.HuNSUB-TRiNiTY-Sample.mkv
-- tv/ (3 file(s))
909.5 MB links=2 inode=4194364 tv/Avatar - Seven Havens/Season 1/Avatar.Seven.Havens.S01E01.1080p.WEB.h264-GRACE.mkv
720.3 MB links=2 inode=4194368 tv/Avatar - Seven Havens/Season 1/Avatar.Seven.Havens.S01E03.1080p.WEB.h264-GRACE.mkv
829.6 MB links=2 inode=4194375 tv/Avatar - Seven Havens/Season 1/Avatar.Seven.Havens.S01E02.1080p.WEB.h264-GRACE.mkv
== drive media_b (/mnt/felhom-drives/media_b/userdata/media)
-- movies/ (2 file(s))
3393.8 MB links=2 inode=1048578 movies/Matchbox the Movie (2026)/Matchbox.The.Movie.2026.720p.ATVP.WEB-DL.DDP5.1.Atmos.H.264-FLUX.mkv
2819.9 MB links=1 inode=2097156 movies/WHO (2026)/Who.2026.720p.DSNP.WEB-DL.DDP5.1.H.264.HuNSUB-TRiNiTY.mkv
-- torrents/ (10 file(s))
3393.8 MB links=2 inode=1048578 torrents/movies/Matchbox.The.Movie.2026.720p.ATVP.WEB-DL.DDP5.1.Atmos.H.264-FLUX/Matchbox.The.Movie.2026.720p.ATVP.WEB-DL.DDP5.1.Atmos.H.264-FLUX.mkv
0.0 MB links=1 inode=1048579 torrents/movies/Matchbox.The.Movie.2026.720p.ATVP.WEB-DL.DDP5.1.Atmos.H.264-FLUX/Matchbox.The.Movie.2026.720p.ATVP.WEB-DL.DDP5.1.Atmos.H.264-FLUX.nfo
0.0 MB links=1 inode=131101 torrents/tv/American.Horror.Story.S13E01.1080p.DSNP.WEB-DL.DDP5.1.H.264-PlayWEB/American.Horror.Story.S13E01.1080p.DSNP.WEB-DL.DDP5.1.H.264-PlayWEB.nfo
1314.1 MB links=2 inode=131100 torrents/tv/American.Horror.Story.S13E01.1080p.DSNP.WEB-DL.DDP5.1.H.264-PlayWEB/American.Horror.Story.S13E01.13.1080p.DSNP.WEB-DL.DD5.1.H.264-playWEB.mkv
813.6 MB links=2 inode=131110 torrents/tv/American.Horror.Story.S13E03.1080p.DSNP.WEB-DL.DDP5.1.H.264-PlayWEB/American.Horror.Story.S13E03.Rauhnacht.1080p.DSNP.WEB-DL.DD5.1.H.264-playWEB.mkv
0.0 MB links=1 inode=131113 torrents/tv/American.Horror.Story.S13E03.1080p.DSNP.WEB-DL.DDP5.1.H.264-PlayWEB/American.Horror.Story.S13E03.1080p.DSNP.WEB-DL.DDP5.1.H.264-PlayWEB.nfo
956.5 MB links=2 inode=393221 torrents/tv/American.Horror.Story.S13E07.1080p.DSNP.WEB-DL.DDP5.1.H.264-PlayWEB/American.Horror.Story.S13E07.The.Baddest.Witch.of.Them.All.1080p.DSNP.WEB-DL.DD5.1.H.264-playWEB.mkv
0.0 MB links=1 inode=393223 torrents/tv/American.Horror.Story.S13E07.1080p.DSNP.WEB-DL.DDP5.1.H.264-PlayWEB/American.Horror.Story.S13E07.1080p.DSNP.WEB-DL.DDP5.1.H.264-PlayWEB.nfo
969.7 MB links=2 inode=393218 torrents/tv/American.Horror.Story.S13E05.1080p.DSNP.WEB-DL.DDP5.1.H.264-PlayWEB/American.Horror.Story.S13E05.Date.Night.1080p.DSNP.WEB-DL.DD5.1.H.264-playWEB.mkv
0.0 MB links=1 inode=393220 torrents/tv/American.Horror.Story.S13E05.1080p.DSNP.WEB-DL.DDP5.1.H.264-PlayWEB/American.Horror.Story.S13E05.Date.Night.1080p.DSNP.WEB-DL.DD5.1.H.264-playWEB.nfo
-- transmission/ (8 file(s))
1274.2 MB links=2 inode=131103 transmission/tv/American.Horror.Story.S13E02.1080p.DSNP.WEB-DL.DDP5.1.H.264-PlayWEB/American.Horror.Story.S13E02.1.13.AM.1080p.DSNP.WEB-DL.DD5.1.H.264-playWEB.mkv
0.0 MB links=1 inode=131104 transmission/tv/American.Horror.Story.S13E02.1080p.DSNP.WEB-DL.DDP5.1.H.264-PlayWEB/American.Horror.Story.S13E02.1080p.DSNP.WEB-DL.DDP5.1.H.264-PlayWEB.nfo
1164.1 MB links=2 inode=131107 transmission/tv/American.Horror.Story.S13E04.1080p.DSNP.WEB-DL.DDP5.1.H.264-PlayWEB/American.Horror.Story.S13E04.Is.That.All.There.Is.1080p.DSNP.WEB-DL.DD5.1.H.264-playWEB.mkv
0.0 MB links=1 inode=131108 transmission/tv/American.Horror.Story.S13E04.1080p.DSNP.WEB-DL.DDP5.1.H.264-PlayWEB/American.Horror.Story.S13E04.Is.That.All.There.Is.1080p.DSNP.WEB-DL.DD5.1.H.264-playWEB.nfo
1149.4 MB links=2 inode=262146 transmission/tv/American.Horror.Story.S13E08.1080p.DSNP.WEB-DL.DDP5.1.H.264-PlayWEB/American.Horror.Story.S13E08.Hell.No.1080p.DSNP.WEB-DL.DD5.1.H.264-playWEB.mkv
0.0 MB links=1 inode=262147 transmission/tv/American.Horror.Story.S13E08.1080p.DSNP.WEB-DL.DDP5.1.H.264-PlayWEB/American.Horror.Story.S13E08.1080p.DSNP.WEB-DL.DDP5.1.H.264-PlayWEB.nfo
913.5 MB links=2 inode=131112 transmission/tv/American.Horror.Story.S13E06.1080p.DSNP.WEB-DL.DDP5.1.H.264-PlayWEB/American.Horror.Story.S13E06.The.Return.of.Devils.Night.1080p.DSNP.WEB-DL.DD5.1.H.264-playWEB.mkv
0.0 MB links=1 inode=131114 transmission/tv/American.Horror.Story.S13E06.1080p.DSNP.WEB-DL.DDP5.1.H.264-PlayWEB/American.Horror.Story.S13E06.The.Return.of.Devils.Night.1080p.DSNP.WEB-DL.DD5.1.H.264-playWEB.nfo
-- tv/ (13 file(s))
1164.1 MB links=2 inode=131107 tv/American Horror Story/Season 13/American.Horror.Story.S13E04.1080p.DSNP.WEB-DL.DDP5.1.H.264-PlayWEB.mkv
1314.1 MB links=2 inode=131100 tv/American Horror Story/Season 13/American.Horror.Story.S13E01.1080p.DSNP.WEB-DL.DDP5.1.H.264-PlayWEB.mkv
913.5 MB links=2 inode=131112 tv/American Horror Story/Season 13/American.Horror.Story.S13E06.1080p.DSNP.WEB-DL.DDP5.1.H.264-PlayWEB.mkv
956.5 MB links=2 inode=393221 tv/American Horror Story/Season 13/American.Horror.Story.S13E07.1080p.DSNP.WEB-DL.DDP5.1.H.264-PlayWEB.mkv
813.6 MB links=2 inode=131110 tv/American Horror Story/Season 13/American.Horror.Story.S13E03.1080p.DSNP.WEB-DL.DDP5.1.H.264-PlayWEB.mkv
1274.2 MB links=2 inode=131103 tv/American Horror Story/Season 13/American.Horror.Story.S13E02.1080p.DSNP.WEB-DL.DDP5.1.H.264-PlayWEB.mkv
969.7 MB links=2 inode=393218 tv/American Horror Story/Season 13/American.Horror.Story.S13E05.1080p.DSNP.WEB-DL.DDP5.1.H.264-PlayWEB.mkv
1149.4 MB links=2 inode=262146 tv/American Horror Story/Season 13/American.Horror.Story.S13E08.1080p.DSNP.WEB-DL.DDP5.1.H.264-PlayWEB.mkv
3789.5 MB links=1 inode=524295 tv/Slow Horses/Season 6/Slow.Horses.S06E05.Sayonara.1080p.ATVP.WEB-DL.DDP5.1.H.264-NTb.mkv
3859.1 MB links=1 inode=524298 tv/Slow Horses/Season 6/Slow.Horses.S06E01.1080p.WEB.H264-CAKES.mkv
4039.9 MB links=1 inode=524299 tv/Slow Horses/Season 6/Slow.Horses.S06E04.1080p.WEB.H264-CAKES.mkv
3758.3 MB links=1 inode=524296 tv/Slow Horses/Season 6/Slow.Horses.S06E02.PROPER.1080p.WEB.h264-ETHEL.mkv
3931.2 MB links=1 inode=524297 tv/Slow Horses/Season 6/Slow.Horses.S06E03.1080p.WEB.H264-CAKES.mkv
== 65 file(s) on 3 drive(s)
== ONE FILE, TWO NAMES (hardlink — no extra copy):
drive media_a inode 4194391 (4697.5 MB): movies/…/Hope.2026.720p.AMZN.WEB-DL.DDP5.1.Atmos.H.264-N1H4L.mkv <-> torrents/…/Hope.2026.720p.AMZN.WEB-DL.DDP5.1.Atmos.H.264-N1H4L.mkv
drive media_a inode 4194364 (909.5 MB): torrents/…/Avatar.Seven.Havens.S01E01.1080p.WEB.h264-GRACE.mkv <-> tv/…/Avatar.Seven.Havens.S01E01.1080p.WEB.h264-GRACE.mkv
drive media_a inode 4194368 (720.3 MB): torrents/…/Avatar.Seven.Havens.S01E03.1080p.WEB.h264-GRACE.mkv <-> tv/…/Avatar.Seven.Havens.S01E03.1080p.WEB.h264-GRACE.mkv
drive media_a inode 4194375 (829.6 MB): transmission/…/Avatar.Seven.Havens.S01E02.1080p.WEB.h264-GRACE.mkv <-> tv/…/Avatar.Seven.Havens.S01E02.1080p.WEB.h264-GRACE.mkv
drive media_b inode 1048578 (3393.8 MB): movies/…/Matchbox.The.Movie.2026.720p.ATVP.WEB-DL.DDP5.1.Atmos.H.264-FLUX.mkv <-> torrents/…/Matchbox.The.Movie.2026.720p.ATVP.WEB-DL.DDP5.1.Atmos.H.264-FLUX.mkv
drive media_b inode 131100 (1314.1 MB): torrents/…/American.Horror.Story.S13E01.13.1080p.DSNP.WEB-DL.DD5.1.H.264-playWEB.mkv <-> tv/…/American.Horror.Story.S13E01.1080p.DSNP.WEB-DL.DDP5.1.H.264-PlayWEB.mkv
drive media_b inode 131110 (813.6 MB): torrents/…/American.Horror.Story.S13E03.Rauhnacht.1080p.DSNP.WEB-DL.DD5.1.H.264-playWEB.mkv <-> tv/…/American.Horror.Story.S13E03.1080p.DSNP.WEB-DL.DDP5.1.H.264-PlayWEB.mkv
drive media_b inode 393221 (956.5 MB): torrents/…/American.Horror.Story.S13E07.The.Baddest.Witch.of.Them.All.1080p.DSNP.WEB-DL.DD5.1.H.264-playWEB.mkv <-> tv/…/American.Horror.Story.S13E07.1080p.DSNP.WEB-DL.DDP5.1.H.264-PlayWEB.mkv
drive media_b inode 393218 (969.7 MB): torrents/…/American.Horror.Story.S13E05.Date.Night.1080p.DSNP.WEB-DL.DD5.1.H.264-playWEB.mkv <-> tv/…/American.Horror.Story.S13E05.1080p.DSNP.WEB-DL.DDP5.1.H.264-PlayWEB.mkv
drive media_b inode 131103 (1274.2 MB): transmission/…/American.Horror.Story.S13E02.1.13.AM.1080p.DSNP.WEB-DL.DD5.1.H.264-playWEB.mkv <-> tv/…/American.Horror.Story.S13E02.1080p.DSNP.WEB-DL.DDP5.1.H.264-PlayWEB.mkv
drive media_b inode 131107 (1164.1 MB): transmission/…/American.Horror.Story.S13E04.Is.That.All.There.Is.1080p.DSNP.WEB-DL.DD5.1.H.264-playWEB.mkv <-> tv/…/American.Horror.Story.S13E04.1080p.DSNP.WEB-DL.DDP5.1.H.264-PlayWEB.mkv
drive media_b inode 262146 (1149.4 MB): transmission/…/American.Horror.Story.S13E08.Hell.No.1080p.DSNP.WEB-DL.DD5.1.H.264-playWEB.mkv <-> tv/…/American.Horror.Story.S13E08.1080p.DSNP.WEB-DL.DDP5.1.H.264-PlayWEB.mkv
drive media_b inode 131112 (913.5 MB): transmission/…/American.Horror.Story.S13E06.The.Return.of.Devils.Night.1080p.DSNP.WEB-DL.DD5.1.H.264-playWEB.mkv <-> tv/…/American.Horror.Story.S13E06.1080p.DSNP.WEB-DL.DDP5.1.H.264-PlayWEB.mkv
13 pair(s)
== LIBRARY FILES WITH LINK COUNT 1 (a copy, or its download is gone):
drive media_b: media_b/userdata/media/movies/WHO (2026)/Who.2026.720p.DSNP.WEB-DL.DDP5.1.H.264.HuNSUB-TRiNiTY.mkv (2819.9 MB)
drive media_b: media_b/userdata/media/tv/Slow Horses/Season 6/Slow.Horses.S06E05.Sayonara.1080p.ATVP.WEB-DL.DDP5.1.H.264-NTb.mkv (3789.5 MB)
drive media_b: media_b/userdata/media/tv/Slow Horses/Season 6/Slow.Horses.S06E01.1080p.WEB.H264-CAKES.mkv (3859.1 MB)
drive media_b: media_b/userdata/media/tv/Slow Horses/Season 6/Slow.Horses.S06E04.1080p.WEB.H264-CAKES.mkv (4039.9 MB)
drive media_b: media_b/userdata/media/tv/Slow Horses/Season 6/Slow.Horses.S06E02.PROPER.1080p.WEB.h264-ETHEL.mkv (3758.3 MB)
drive media_b: media_b/userdata/media/tv/Slow Horses/Season 6/Slow.Horses.S06E03.1080p.WEB.H264-CAKES.mkv (3931.2 MB)
@@ -0,0 +1,178 @@
===== BEFORE 2026-10-14T18:10:11+0000
guest: is media_b a mountpoint: yes | ls B: audiobooks books comics
guest rootfs under media_b (only if not a mountpoint):
sonarr running healthy started=2026-10-14T15:46:33.691456Z | B/tv: American Horror Story Slow Horses
radarr running healthy started=2026-10-14T15:46:34.33316681Z | B/tv: American Horror Story Slow Horses
qbittorrent running healthy started=2026-10-14T15:46:32.525118942Z | B/tv: American Horror Story Slow Horses
transmission running healthy started=2026-10-14T15:46:33.100564276Z | B/tv: American Horror Story Slow Horses
plex running healthy started=2026-10-14T16:04:53.476264772Z | B/tv: American Horror Story Slow Horses
jellyfin running healthy started=2026-10-14T17:34:00.700911891Z | B/tv: American Horror Story Slow Horses
filebrowser running healthy started=2026-10-14T15:28:04.13026562Z | B/tv: adatlemez beolvasas media_a media_b
sonarr health (200): []
sonarr root folders: [('media_a', True), ('media_b', True)]
sonarr series: [('Avatar: Seven Have', 3), ('American Horror St', 8), ('Slow Horses', 5)]
radarr health (200): [('RemotePathMappingCheck', 'You are using docker; download client qBittorrent drive-a places downloads in /mnt/felhom-')]
radarr root folders: [('media_a', True), ('media_b', True)]
radarr movie: [('Hope', True), ('Matchbox the Movie', True), ('WHO', True)]
plex section 1 (200): ['Hope', 'Matchbox the Movie', 'Who']
plex section 2 (200): ['American Horror Story', 'Avatar: Seven Havens', 'Slow Horses']
plex episodes: 16
jellyfin: {'Series': 3, 'Movie': 3, 'Episode': 16} ['Amerikai Horror Story', 'Avatar: Seven Havens', 'Hope - Remény', 'Matchbox', 'Roger nyúl a pácban', 'Utolsó befutók']
controller log (last 10 min, gate/storage/event):
0
===== S5-plus-1min 2026-10-14T18:11:17+0000
guest: is media_b a mountpoint: yes | ls B: ls: reading directory '/mnt/felhom-drives/media_b/userdata/media': Input/output error
guest rootfs under media_b (only if not a mountpoint):
sonarr running healthy started=2026-10-14T15:46:33.691456Z | B/tv: ls: cannot access '/mnt/felhom-drives/media_b/userdata/media/tv': I/O error
radarr running healthy started=2026-10-14T15:46:34.33316681Z | B/tv: ls: cannot access '/mnt/felhom-drives/media_b/userdata/media/tv': I/O error
qbittorrent running healthy started=2026-10-14T15:46:32.525118942Z | B/tv: ls: /mnt/felhom-drives/media_b/userdata/media/tv: I/O error
transmission running healthy started=2026-10-14T15:46:33.100564276Z | B/tv: ls: cannot access '/mnt/felhom-drives/media_b/userdata/media/tv': I/O error
plex running healthy started=2026-10-14T16:04:53.476264772Z | B/tv: ls: cannot access '/mnt/felhom-drives/media_b/userdata/media/tv': Input/output error
jellyfin running healthy started=2026-10-14T17:34:00.700911891Z | B/tv: ls: cannot access '/mnt/felhom-drives/media_b/userdata/media/tv': Input/output error
filebrowser running healthy started=2026-10-14T15:28:04.13026562Z | B/tv: adatlemez beolvasas media_a media_b
sonarr health (200): []
sonarr root folders: [('media_a', True), ('media_b', False)]
sonarr series: [('Avatar: Seven Have', 3), ('American Horror St', 8), ('Slow Horses', 5)]
radarr health (200): [('RemotePathMappingCheck', 'You are using docker; download client qBittorrent drive-a places downloads in /mnt/felhom-')]
radarr root folders: [('media_a', True), ('media_b', False)]
radarr movie: [('Hope', True), ('Matchbox the Movie', True), ('WHO', True)]
plex section 1 (200): ['Hope', 'Matchbox the Movie', 'Who']
plex section 2 (200): ['American Horror Story', 'Avatar: Seven Havens', 'Slow Horses']
plex episodes: 16
jellyfin: {'Series': 3, 'Movie': 3, 'Episode': 16} ['Amerikai Horror Story', 'Avatar: Seven Havens', 'Hope - Remény', 'Matchbox', 'Roger nyúl a pácban', 'Utolsó befutók']
controller log (last 10 min, gate/storage/event):
2026/10/14 18:10:47 [INFO] [settings] Storage path /mnt/felhom-drives/media_b disconnected=true
2026/10/14 18:10:47 [WARN] [gate] drive ABSENT /mnt/felhom-drives/media_b — stopped+blocked 0 app(s): []
2026/10/14 18:10:47 [WARN] [web] FileBrowser: could not ensure userdata skeleton on /mnt/felhom-drives/media_b: chmod /mnt/felhom-drives/media_b/userdata: input/output error
2026/10/14 18:10:47 [INFO] Event pushed: storage_disconnected (error) [hu-only] — Meghajtó váratlanul leválasztva: Media B
2026/10/14 18:10:47 [INFO] [web] FileBrowser sync — no config/compose change, ensured running without recreate (3 storage path(s))
===== S5 +5 min (pulled 20:10:23) 2026-10-14T18:15:26+0000
guest: is media_b a mountpoint: yes | ls B: ls: reading directory '/mnt/felhom-drives/media_b/userdata/media': Input/output error
guest rootfs under media_b (only if not a mountpoint):
sonarr running healthy started=2026-10-14T15:46:33.691456Z | B/tv: ls: cannot access '/mnt/felhom-drives/media_b/userdata/media/tv': I/O error
radarr running healthy started=2026-10-14T15:46:34.33316681Z | B/tv: ls: cannot access '/mnt/felhom-drives/media_b/userdata/media/tv': I/O error
qbittorrent running healthy started=2026-10-14T15:46:32.525118942Z | B/tv: ls: /mnt/felhom-drives/media_b/userdata/media/tv: I/O error
transmission running healthy started=2026-10-14T15:46:33.100564276Z | B/tv: ls: cannot access '/mnt/felhom-drives/media_b/userdata/media/tv': I/O error
plex running healthy started=2026-10-14T16:04:53.476264772Z | B/tv: ls: cannot access '/mnt/felhom-drives/media_b/userdata/media/tv': Input/output error
jellyfin running healthy started=2026-10-14T17:34:00.700911891Z | B/tv: ls: cannot access '/mnt/felhom-drives/media_b/userdata/media/tv': Input/output error
filebrowser running healthy started=2026-10-14T15:28:04.13026562Z | B/tv: adatlemez beolvasas media_a media_b
sonarr health (200): []
sonarr root folders: [('media_a', True), ('media_b', False)]
sonarr series: [('Avatar: Seven Have', 3), ('American Horror St', 8), ('Slow Horses', 5)]
radarr health (200): [('RemotePathMappingCheck', 'You are using docker; download client qBittorrent drive-a places downloads in /mnt/felhom-')]
radarr root folders: [('media_a', True), ('media_b', False)]
radarr movie: [('Hope', True), ('Matchbox the Movie', True), ('WHO', True)]
plex section 1 (200): ['Hope', 'Matchbox the Movie', 'Who']
plex section 2 (200): ['American Horror Story', 'Avatar: Seven Havens', 'Slow Horses']
plex episodes: 16
jellyfin: {'Series': 3, 'Movie': 3, 'Episode': 16} ['Amerikai Horror Story', 'Avatar: Seven Havens', 'Hope - Remény', 'Matchbox', 'Roger nyúl a pácban', 'Utolsó befutók']
controller log (last 10 min, gate/storage/event):
2026/10/14 18:10:47 [INFO] [settings] Storage path /mnt/felhom-drives/media_b disconnected=true
2026/10/14 18:10:47 [WARN] [gate] drive ABSENT /mnt/felhom-drives/media_b — stopped+blocked 0 app(s): []
2026/10/14 18:10:47 [WARN] [web] FileBrowser: could not ensure userdata skeleton on /mnt/felhom-drives/media_b: chmod /mnt/felhom-drives/media_b/userdata: input/output error
2026/10/14 18:10:47 [INFO] Event pushed: storage_disconnected (error) [hu-only] — Meghajtó váratlanul leválasztva: Media B
2026/10/14 18:10:47 [INFO] [web] FileBrowser sync — no config/compose change, ensured running without recreate (3 storage path(s))
2026/10/14 18:13:44 [INFO] Event pushed: health_degraded (warning) [hu-only] — Rendszer állapot romlott (volt: ok)
===== S5 +15 min (pulled 20:10:23) 2026-10-14T18:25:30+0000
guest: is media_b a mountpoint: yes | ls B: ls: reading directory '/mnt/felhom-drives/media_b/userdata/media': Input/output error
guest rootfs under media_b (only if not a mountpoint):
sonarr running healthy started=2026-10-14T15:46:33.691456Z | B/tv: ls: cannot access '/mnt/felhom-drives/media_b/userdata/media/tv': I/O error
radarr running healthy started=2026-10-14T15:46:34.33316681Z | B/tv: ls: cannot access '/mnt/felhom-drives/media_b/userdata/media/tv': I/O error
qbittorrent running healthy started=2026-10-14T15:46:32.525118942Z | B/tv: ls: /mnt/felhom-drives/media_b/userdata/media/tv: I/O error
transmission running healthy started=2026-10-14T15:46:33.100564276Z | B/tv: ls: cannot access '/mnt/felhom-drives/media_b/userdata/media/tv': I/O error
plex running healthy started=2026-10-14T16:04:53.476264772Z | B/tv: ls: cannot access '/mnt/felhom-drives/media_b/userdata/media/tv': Input/output error
jellyfin running healthy started=2026-10-14T17:34:00.700911891Z | B/tv: ls: cannot access '/mnt/felhom-drives/media_b/userdata/media/tv': Input/output error
filebrowser running healthy started=2026-10-14T15:28:04.13026562Z | B/tv: adatlemez beolvasas media_a media_b
sonarr health (200): []
sonarr root folders: [('media_a', True), ('media_b', False)]
sonarr series: [('Avatar: Seven Have', 3), ('American Horror St', 8), ('Slow Horses', 5)]
radarr health (200): [('RemotePathMappingCheck', 'You are using docker; download client qBittorrent drive-a places downloads in /mnt/felhom-')]
radarr root folders: [('media_a', True), ('media_b', False)]
radarr movie: [('Hope', True), ('Matchbox the Movie', True), ('WHO', True)]
plex section 1 (200): ['Hope', 'Matchbox the Movie', 'Who']
plex section 2 (200): ['American Horror Story', 'Avatar: Seven Havens', 'Slow Horses']
plex episodes: 16
jellyfin: {'Series': 3, 'Movie': 3, 'Episode': 16} ['Amerikai Horror Story', 'Avatar: Seven Havens', 'Hope - Remény', 'Matchbox', 'Roger nyúl a pácban', 'Utolsó befutók']
controller log (last 10 min, gate/storage/event):
===== S5 +30 min (pulled 20:10:23) 2026-10-14T18:40:34+0000
guest: is media_b a mountpoint: yes | ls B: ls: reading directory '/mnt/felhom-drives/media_b/userdata/media': Input/output error
guest rootfs under media_b (only if not a mountpoint):
sonarr running healthy started=2026-10-14T15:46:33.691456Z | B/tv: ls: cannot access '/mnt/felhom-drives/media_b/userdata/media/tv': I/O error
radarr running healthy started=2026-10-14T15:46:34.33316681Z | B/tv: ls: cannot access '/mnt/felhom-drives/media_b/userdata/media/tv': I/O error
qbittorrent running healthy started=2026-10-14T15:46:32.525118942Z | B/tv: ls: /mnt/felhom-drives/media_b/userdata/media/tv: I/O error
transmission running healthy started=2026-10-14T15:46:33.100564276Z | B/tv: ls: cannot access '/mnt/felhom-drives/media_b/userdata/media/tv': I/O error
plex running healthy started=2026-10-14T16:04:53.476264772Z | B/tv: ls: cannot access '/mnt/felhom-drives/media_b/userdata/media/tv': Input/output error
jellyfin running healthy started=2026-10-14T17:34:00.700911891Z | B/tv: ls: cannot access '/mnt/felhom-drives/media_b/userdata/media/tv': Input/output error
filebrowser running healthy started=2026-10-14T15:28:04.13026562Z | B/tv: adatlemez beolvasas media_a media_b
sonarr health (200): []
sonarr root folders: [('media_a', True), ('media_b', False)]
sonarr series: [('Avatar: Seven Have', 3), ('American Horror St', 8), ('Slow Horses', 5)]
radarr health (200): [('RemotePathMappingCheck', 'You are using docker; download client qBittorrent drive-a places downloads in /mnt/felhom-')]
radarr root folders: [('media_a', True), ('media_b', False)]
radarr movie: [('Hope', True), ('Matchbox the Movie', True), ('WHO', True)]
plex section 1 (200): ['Hope', 'Matchbox the Movie', 'Who']
plex section 2 (200): ['American Horror Story', 'Avatar: Seven Havens', 'Slow Horses']
plex episodes: 16
jellyfin: {'Series': 3, 'Movie': 3, 'Episode': 16} ['Amerikai Horror Story', 'Avatar: Seven Havens', 'Hope - Remény', 'Matchbox', 'Roger nyúl a pácban', 'Utolsó befutók']
controller log (last 10 min, gate/storage/event):
===== S6 +1 min (re-attached 20:41:00), BEFORE any app restart 2026-10-14T18:41:56+0000
guest: is media_b a mountpoint: yes | ls B: audiobooks books comics
guest rootfs under media_b (only if not a mountpoint):
sonarr running healthy started=2026-10-14T15:46:33.691456Z | B/tv: ls: cannot access '/mnt/felhom-drives/media_b/userdata/media/tv': I/O error
radarr running healthy started=2026-10-14T15:46:34.33316681Z | B/tv: ls: cannot access '/mnt/felhom-drives/media_b/userdata/media/tv': I/O error
qbittorrent running healthy started=2026-10-14T15:46:32.525118942Z | B/tv: ls: /mnt/felhom-drives/media_b/userdata/media/tv: I/O error
transmission running healthy started=2026-10-14T15:46:33.100564276Z | B/tv: ls: cannot access '/mnt/felhom-drives/media_b/userdata/media/tv': I/O error
plex running healthy started=2026-10-14T16:04:53.476264772Z | B/tv: ls: cannot access '/mnt/felhom-drives/media_b/userdata/media/tv': Input/output error
jellyfin running healthy started=2026-10-14T17:34:00.700911891Z | B/tv: ls: cannot access '/mnt/felhom-drives/media_b/userdata/media/tv': Input/output error
filebrowser running healthy started=2026-10-14T15:28:04.13026562Z | B/tv: adatlemez beolvasas media_a media_b
sonarr health (200): []
sonarr root folders: [('media_a', True), ('media_b', False)]
sonarr series: [('Avatar: Seven Have', 3), ('American Horror St', 8), ('Slow Horses', 5)]
radarr health (200): [('RemotePathMappingCheck', 'You are using docker; download client qBittorrent drive-a places downloads in /mnt/felhom-')]
radarr root folders: [('media_a', True), ('media_b', False)]
radarr movie: [('Hope', True), ('Matchbox the Movie', True), ('WHO', True)]
plex section 1 (200): ['Hope', 'Matchbox the Movie', 'Who']
plex section 2 (200): ['American Horror Story', 'Avatar: Seven Havens', 'Slow Horses']
plex episodes: 16
jellyfin: {'Series': 3, 'Movie': 3, 'Episode': 16} ['Amerikai Horror Story', 'Avatar: Seven Havens', 'Hope - Remény', 'Matchbox', 'Roger nyúl a pácban', 'Utolsó befutók']
controller log (last 10 min, gate/storage/event):
2026/10/14 18:41:18 [INFO] [gate] drive RETURNED /mnt/felhom-drives/media_b — re-attached + restarted gate-stopped apps
2026/10/14 18:41:18 [INFO] Event pushed: storage_reconnected (info) [hu-only] — Meghajtó újra csatlakoztatva: Media B
2026/10/14 18:41:18 [INFO] [web] FileBrowser sync — no config/compose change, ensured running without recreate (3 storage path(s))
===== S6 after stop+start of the six media apps 2026-10-14T18:45:17+0000
guest: is media_b a mountpoint: yes | ls B: audiobooks books comics
guest rootfs under media_b (only if not a mountpoint):
sonarr running healthy started=2026-10-14T18:43:24.157626948Z | B/tv: American Horror Story Slow Horses
radarr running healthy started=2026-10-14T18:43:25.147093183Z | B/tv: American Horror Story Slow Horses
qbittorrent running healthy started=2026-10-14T18:43:25.950203755Z | B/tv: American Horror Story Slow Horses
transmission running healthy started=2026-10-14T18:43:26.870494477Z | B/tv: American Horror Story Slow Horses
plex running healthy started=2026-10-14T18:43:28.207524035Z | B/tv: American Horror Story Slow Horses
jellyfin running healthy started=2026-10-14T18:43:29.327411356Z | B/tv: American Horror Story Slow Horses
filebrowser running healthy started=2026-10-14T15:28:04.13026562Z | B/tv: adatlemez beolvasas media_a media_b
sonarr health (200): []
sonarr root folders: [('media_a', True), ('media_b', True)]
sonarr series: [('Avatar: Seven Have', 3), ('American Horror St', 8), ('Slow Horses', 5)]
radarr health (200): []
radarr root folders: [('media_a', True), ('media_b', True)]
radarr movie: [('Hope', True), ('Matchbox the Movie', True), ('WHO', True)]
plex section 1 (200): ['Hope', 'Matchbox the Movie', 'Who']
plex section 2 (200): ['American Horror Story', 'Avatar: Seven Havens', 'Slow Horses']
plex episodes: 16
jellyfin: {'Series': 3, 'Movie': 3, 'Episode': 16} ['Amerikai Horror Story', 'Avatar: Seven Havens', 'Hope - Remény', 'Matchbox', 'Roger nyúl a pácban', 'Utolsó befutók']
controller log (last 10 min, gate/storage/event):
2026/10/14 18:41:18 [INFO] [gate] drive RETURNED /mnt/felhom-drives/media_b — re-attached + restarted gate-stopped apps
2026/10/14 18:41:18 [INFO] Event pushed: storage_reconnected (info) [hu-only] — Meghajtó újra csatlakoztatva: Media B
2026/10/14 18:41:18 [INFO] [web] FileBrowser sync — no config/compose change, ensured running without recreate (3 storage path(s))
2026/10/14 18:43:44 [INFO] Event pushed: health_recovered (info) [hu-only] — Rendszer állapot helyreállt: ok (volt: warn)
@@ -0,0 +1,72 @@
#!/usr/bin/env python3
"""snap.py <label> — S5/S6: one snapshot of what every layer says about the drives, run INSIDE the guest.
Plex's token and Jellyfin's password are read at runtime (Plex: its Preferences.xml; Jellyfin: substituted into the
box's copy of this file by the runner, deleted after) and never printed."""
import json, os, re, subprocess, sys, time, urllib.parse, urllib.request
JFPW = "__JF_PW__"
L = sys.argv[1] if len(sys.argv) > 1 else "snap"
B = "/mnt/felhom-drives/media_b/userdata/media"
def sh(c, t=20):
try:
return subprocess.run(c, shell=True, capture_output=True, text=True, timeout=t).stdout.strip()
except subprocess.TimeoutExpired:
return "<timeout>"
def ip(c):
return sh(f"docker inspect {c} -f '{{{{range .NetworkSettings.Networks}}}}{{{{.IPAddress}}}}{{{{end}}}}'")
def get(url, h=None, t=20):
try:
with urllib.request.urlopen(urllib.request.Request(url, headers=h or {}), timeout=t) as r:
return r.status, json.loads(r.read() or b"null")
except urllib.error.HTTPError as e:
return e.code, None
except Exception as e:
return 0, str(e)[:80]
print(f"===== {L} {time.strftime('%Y-%m-%dT%H:%M:%S%z')}")
print("guest: is media_b a mountpoint:", sh(f"mountpoint -q /mnt/felhom-drives/media_b && echo yes || echo NO"),
"| ls B:", sh(f"timeout 10 ls {B} 2>&1 | head -3 | tr '\\n' ' '"))
print("guest rootfs under media_b (only if not a mountpoint):", sh("mountpoint -q /mnt/felhom-drives/media_b || du -sh /mnt/felhom-drives/media_b 2>&1"))
for c in ("sonarr", "radarr", "qbittorrent", "transmission", "plex", "jellyfin", "filebrowser"):
st = sh(f"docker inspect {c} -f '{{{{.State.Status}}}} {{{{.State.Health.Status}}}} started={{{{.State.StartedAt}}}}' 2>&1")
view = sh(f"docker exec {c} sh -c 'timeout 8 ls /mnt/felhom-drives/media_b/userdata/media/tv 2>&1 | head -2 | tr \"\\n\" \" \"' 2>&1") if c != "filebrowser" else sh("docker exec filebrowser sh -c 'ls /srv 2>&1 | tr \"\\n\" \" \"'")
print(f" {c:12} {st[:60]:60} | B/tv: {view[:110]}")
for app, port in (("sonarr", 8989), ("radarr", 7878)):
k = re.search(r"<ApiKey>([^<]+)", open(f"/var/lib/docker/volumes/{app}_{app}_config/_data/config.xml").read()).group(1)
H = {"X-Api-Key": k, "Host": app}
c, h = get(f"http://{ip(app)}:{port}/api/v3/health", H)
print(f" {app} health ({c}):", [(x['source'], x['message'][:90]) for x in (h or [])])
c, r = get(f"http://{ip(app)}:{port}/api/v3/rootfolder", H)
print(f" {app} root folders:", [(x['path'].split('/')[3], x.get('accessible')) for x in (r or [])])
kind = "series" if app == "sonarr" else "movie"
c, s = get(f"http://{ip(app)}:{port}/api/v3/{kind}", H)
print(f" {app} {kind}:", [(x['title'][:18], (x.get('statistics') or {}).get('episodeFileCount', x.get('hasFile'))) for x in (s or [])])
P = "/var/lib/docker/volumes/plex_plex_config/_data/Library/Application Support/Plex Media Server"
T = re.search(r'PlexOnlineToken="([^"]+)', open(f"{P}/Preferences.xml").read()).group(1)
for sec in (1, 2):
c, d = get(f"http://{ip('plex')}:32400/library/sections/{sec}/all?X-Plex-Token={T}", {"Accept": "application/json"})
mc = (d or {}).get("MediaContainer", {}) if isinstance(d, dict) else {}
print(f" plex section {sec} ({c}):", [m.get("title") for m in mc.get("Metadata", [])])
c, d = get(f"http://{ip('plex')}:32400/library/sections/2/allLeaves?X-Plex-Token={T}", {"Accept": "application/json"})
mc = (d or {}).get("MediaContainer", {}) if isinstance(d, dict) else {}
print(" plex episodes:", mc.get("size"))
A = 'MediaBrowser Client="felhom-test", Device="snap", DeviceId="felhom-snap-1", Version="1"'
try:
jb = f"http://{ip('jellyfin')}:8096"
rq = urllib.request.Request(jb + "/Users/AuthenticateByName", data=json.dumps({"Username": "admin", "Pw": JFPW}).encode(),
headers={"Content-Type": "application/json", "Authorization": A}, method="POST")
tok = json.load(urllib.request.urlopen(rq, timeout=20))["AccessToken"]
c, d = get(jb + "/Items?Recursive=true&IncludeItemTypes=Series,Movie,Episode", {"X-Emby-Token": tok})
items = (d or {}).get("Items", [])
print(" jellyfin:", {t: len([i for i in items if i["Type"] == t]) for t in ("Series", "Movie", "Episode")},
sorted(i["Name"] for i in items if i["Type"] in ("Series", "Movie")))
except Exception as e:
print(" jellyfin: error", str(e)[:100])
print(" controller log (last 10 min, gate/storage/event):")
print(" " + sh("docker logs --since 10m felhom-controller 2>&1 | grep -iE 'gate|storage|disconnect|absent|Event pushed|FileBrowser' | grep -v DEBUG | tail -10 | cut -c1-200").replace("\n", "\n "))
@@ -0,0 +1,15 @@
#!/bin/bash
# snaprun.sh <label> — run snap.py in the Tester 1 guest (stdin, no file args) with Jellyfin's password substituted into
# the piped copy; the guest copy is deleted. Output appended to ../S5-S6/snapshots.txt.
cd "$(dirname "$0")"
python3 - "$1" <<'PY' | sed -E 's/X-Plex-Token=[A-Za-z0-9_-]+/X-Plex-Token=<redacted>/g' | tee -a ../S5-S6/snapshots.txt
import json,os,sys
sys.path.insert(0,"/mnt/5_hdd/felhom.eu/git/app-catalog-felhom.eu/scripts")
os.environ.setdefault("SC",os.path.expanduser("~/.felhom-tester1")); os.environ.setdefault("TARGET","tester-1")
import box_walk as w
pw=json.load(open(os.path.expanduser("~/.felhom-tester1/secrets.json")))["jellyfin"]["admin"]
src=open("snap.py").read().replace("__JF_PW__",pw)
lab=sys.argv[1].replace('"','')
r=w.sh(w.ssh_args()+[f'pct exec 9201 -- sh -c "cat > /root/.snap.py; timeout 200 python3 /root/.snap.py \'{lab}\' 2>&1; rm -f /root/.snap.py"'],timeout=240,inp=src)
print(r.stdout); print(r.stderr[-800:]) if r.returncode else None
PY