Máte Plex Media Server na jednom QNAPu, ale filmy a seriály jsou uložené na jiném QNAPu či jiném zařízení? Funguje to, dokud se NAS nerestartuje nebo neaktualizuje. Pak Plex najednou nevidí knihovny, protože QNAP ztratil připojené síťové složky.
POZNÁMKA: Tento tip je kompletní sourhn sepsaný ChatGPT poté co jsem s její pomocí úspěšně vyřešil problém uvedený v titullu.
Typicky se to stává, pokud se spoléháte na síťové mounty vytvořené přes QNAP GUI, HybridMount nebo File Station. Plex potom používá cestu, která po restartu už neexistuje, nebo se připojí jinam.
Řešení je udělat to jinak: připojit složky z druhého QNAPu přes NFS do stabilní lokální cesty a zajistit, aby se mount po restartu sám obnovil.
V tomto příkladu:
- SMALLNAS = QNAP, kde jsou filmy a seriály
- SMALLNAS IP = 192.168.1.185
- QNAPDBD = QNAP, kde běží Plex
- Výsledkem bude, že Plex bude používat tyto stabilní lokální cesty:
- /share/CACHEDEV1_DATA/PlexRemote/Movies
- /share/CACHEDEV1_DATA/PlexRemote/TVShows
1. Na QNAPu s filmy zapněte NFS (pozor, čtěte varování na konci tipu)
Na QNAPu, kde jsou uložené filmy a seriály, otevřete:
Control Panel → Network & File Services → Win/Mac/NFS/WebDAV → NFS Service
Zapněte NFS službu (osobně jsem aktivoval NFSv4).

Potom jděte do:
Control Panel → Privilege → Shared Folders
Vyberte sdílenou složku s filmy, například:
Movies
a otevřete nastavení oprávnění pro NFS, typicky:
Edit Shared Folder Permission → NFS Host Access
Přidejte pravidlo pro vaši lokální síť.
Pokud máte domácí síť 192.168.1.x, můžete použít: 192.168.1.0/24
nebo pokud QNAP CIDR tvar nevezme: 192.168.1.*
Nastavení dejte například takto:
- Host / IP / Network: 192.168.1.*
- Security: sys
- Permission: read-only
- Squash option: Squash all users
- Anonymous user: guest
- Anonymous group: guest
Pro Plex stačí read-only, protože Plex potřebuje filmy a seriály hlavně číst.
Totéž zopakujte i pro složku:
TVShows
Důležité: NFS oprávnění se nastavuje pro každou sdílenou složku zvlášť. Nestačí ho nastavit jen pro HomeVideo, pokud Plex používá Movies a TVShows.
2. Na QNAPu s Plexem vytvořte lokální mountpointy
Přihlaste se přes SSH na QNAP, kde běží Plex.
Použijte účet admin, případně účet, který má root oprávnění.
Vytvořte složky, do kterých se připojí vzdálený QNAP:
mkdir -p /share/CACHEDEV1_DATA/PlexRemote/Movies
mkdir -p /share/CACHEDEV1_DATA/PlexRemote/TVShows
Pokud váš QNAP nemá CACHEDEV1_DATA, zjistíte správnou cestu takto:
ls /share
Hledejte něco jako:
CACHEDEV1_DATA
CACHEDEV2_DATA
ZFS_DATA
3. Ručně otestujte NFS mount
Na QNAPu s Plexem zkuste připojit složku Movies:
sudo mount -v -t nfs -o vers=4,proto=tcp,ro,soft,timeo=5,retrans=1 192.168.1.185:/Movies /share/CACHEDEV1_DATA/PlexRemote/Movies
Potom složku TVShows:
sudo mount -v -t nfs -o vers=4,proto=tcp,ro,soft,timeo=5,retrans=1 192.168.1.185:/TVShows /share/CACHEDEV1_DATA/PlexRemote/TVShows
Ověření:
ls -la /share/CACHEDEV1_DATA/PlexRemote/Movies
ls -la /share/CACHEDEV1_DATA/PlexRemote/TVShows
Pokud vidíte filmy a seriály, NFS funguje.
Ještě si můžete ověřit samotné mounty:
mount | grep 192.168.1.185
Správný výstup bude obsahovat něco jako:
192.168.1.185:/Movies on /share/CACHEDEV1_DATA/PlexRemote/Movies type nfs
192.168.1.185:/TVShows on /share/CACHEDEV1_DATA/PlexRemote/TVShows type nfs
Pokud ve výpisu zároveň vidíte staré řádky typu type cifs, nevadí. To jsou staré SMB/QNAP GUI mounty. Pro Plex jsou důležité nové řádky type nfs.

4. Nastavte Plex knihovny na nové cesty
V Plexu otevřete nastavení knihovny filmů a přidejte cestu:
/share/CACHEDEV1_DATA/PlexRemote/Movies
Pro seriály přidejte:
/share/CACHEDEV1_DATA/PlexRemote/TVShows
Doporučení: nejdřív nové cesty přidejte, spusťte scan a ověřte, že Plex obsah vidí. Staré cesty odstraňte až potom.
V Plexu je také dobré vypnout:
Settings → Library → Empty trash automatically after every scan
Kdyby se někdy mount nepovedl, Plex si nebude hned myslet, že všechny filmy zmizely.
5. Vytvořte skript, který mounty obnoví
Na QNAPu, kde běží Plex, vytvořte skript:
cat > /share/CACHEDEV1_DATA/PlexRemote/mount-plexremote.sh <<‚EOF‘
#!/bin/sh
SMALLNAS=“192.168.1.185″
MOVIES_LOCAL=“/share/CACHEDEV1_DATA/PlexRemote/Movies“
TV_LOCAL=“/share/CACHEDEV1_DATA/PlexRemote/TVShows“
LOG=“/share/CACHEDEV1_DATA/PlexRemote/mount-plexremote.log“
echo „$(date) – checking Plex NFS mounts“ >> „$LOG“
if ! grep -q “ $MOVIES_LOCAL “ /proc/mounts; then
echo „$(date) – mounting Movies“ >> „$LOG“
mount -t nfs -o vers=4,proto=tcp,ro,soft,timeo=5,retrans=1 „$SMALLNAS:/Movies“ „$MOVIES_LOCAL“ >> „$LOG“ 2>&1
fi
if ! grep -q “ $TV_LOCAL “ /proc/mounts; then
echo „$(date) – mounting TVShows“ >> „$LOG“
mount -t nfs -o vers=4,proto=tcp,ro,soft,timeo=5,retrans=1 „$SMALLNAS:/TVShows“ „$TV_LOCAL“ >> „$LOG“ 2>&1
fi
EOF
Nastavte ho jako spustitelný:
chmod +x /share/CACHEDEV1_DATA/PlexRemote/mount-plexremote.sh
Jednou ho spusťte ručně:
/share/CACHEDEV1_DATA/PlexRemote/mount-plexremote.sh
Ověřte:
mount | grep 192.168.1.185
Pokud už jsou mounty připojené, skript nic znovu nepřipojí. Jen zapíše kontrolu do logu.
Log najdete tady:
tail -20 /share/CACHEDEV1_DATA/PlexRemote/mount-plexremote.log
6. Přidejte skript do cronu
QNAP má trvalý crontab v:
/etc/config/crontab
Nejprve si ho zazálohujte:
cp /etc/config/crontab /etc/config/crontab.bak.$(date +%Y%m%d-%H%M%S)
Potom přidejte pravidlo, které skript spustí každých 5 minut:
grep -q „/share/CACHEDEV1_DATA/PlexRemote/mount-plexremote.sh“ /etc/config/crontab || echo „*/5 * * * * /share/CACHEDEV1_DATA/PlexRemote/mount-plexremote.sh“ >> /etc/config/crontab
Načtěte crontab:
crontab /etc/config/crontab
Restartujte cron službu:
/etc/init.d/crond.sh restart
Ověřte, že tam pravidlo opravdu je:
crontab -l | grep mount-plexremote
Správný výstup:
*/5 * * * * /share/CACHEDEV1_DATA/PlexRemote/mount-plexremote.sh
7. Jak ověřit, že to celé funguje
Počkejte několik minut a podívejte se do logu:
tail -20 /share/CACHEDEV1_DATA/PlexRemote/mount-plexremote.log
Měli byste vidět záznamy typu:
checking Plex NFS mounts
Mounty zkontrolujete takto:
mount | grep 192.168.1.185
Správný výsledek:
192.168.1.185:/Movies on /share/CACHEDEV1_DATA/PlexRemote/Movies type nfs
192.168.1.185:/TVShows on /share/CACHEDEV1_DATA/PlexRemote/TVShows type nfs
Finální test je restart QNAPu, kde běží Plex. Po startu počkejte 5 až 10 minut a znovu spusťte:
mount | grep 192.168.1.185
Pokud se NFS mounty objeví, je hotovo.
Časté problémy
showmount: command not found
Nevadí. QNAP showmount často nemá. Mount lze otestovat přímo příkazem mount.
mount.nfs: permission denied: no match … found in /etc/fstab
Příkaz pravděpodobně nespouštíte jako root/admin. Přihlaste se přes SSH jako admin, nebo použijte sudo.
Mount dlouho visí a nic neříká
Použijte volby s krátkým timeoutem:
-o vers=4,proto=tcp,ro,soft,timeo=5,retrans=1
Díky tomu příkaz nebude viset donekonečna.
Mount proběhne, ale Plex nic nevidí
Zkontrolujte:
ls -la /share/CACHEDEV1_DATA/PlexRemote/Movies
ls -la /share/CACHEDEV1_DATA/PlexRemote/TVShows
Pokud soubory vidíte přes SSH, ale ne v Plexu, zkontrolujte, že Plex knihovna opravdu používá nové cesty:
/share/CACHEDEV1_DATA/PlexRemote/Movies
/share/CACHEDEV1_DATA/PlexRemote/TVShows
NFS oprávnění nefungují
Na QNAPu s filmy zkontrolujte, že NFS host access je nastavený přímo na složkách Movies a TVShows.
Pokud máte nastaveno Squash all users a klient nevidí obsah, zkuste v NFS oprávnění změnit squash volbu na mírnější variantu, například Squash root user nebo No mapping.
Pozor na ten log co bude růst
Ideálně za LOG= doplnit krácení logu po dosažení určité hranice. Případně by to šlo vypnout
# Omez log na cca 1 MB
if [ -f „$LOG“ ] && [ „$(wc -c < „$LOG“)“ -gt 1048576 ]; then
tail -200 „$LOG“ > „$LOG.tmp“
mv „$LOG.tmp“ „$LOG“
fi
Shrnutí
Plex by se neměl spoléhat na QNAP GUI síťové mounty. Lepší je:
druhý QNAP → NFS → stabilní lokální cesta na Plex QNAPu → Plex knihovna
V našem příkladu:
192.168.1.185:/Movies → /share/CACHEDEV1_DATA/PlexRemote/Movies
192.168.1.185:/TVShows → /share/CACHEDEV1_DATA/PlexRemote/TVShows
Cron každých 5 minut spustí kontrolní skript a po rebootu mounty automaticky obnoví. Plex tak po aktualizaci nebo restartu nepřijde o knihovny a není potřeba znovu lovit síťové složky v QNAP administraci.
Ale POZOR! NFS může být problém, takže jděte přes CIFS/SMB
Upozornění: NFS nemusí být vždy nejlepší volba: V některých případech se může stát, že NFS mount na první pohled funguje: Plex vidí adresáře, knihovny se načtou, soubory jsou v seznamu, ale při přehrávání filmů nebo seriálů Plex jen točí kolečkem a video se nespustí.
Tohle může znamenat, že přes NFS funguje čtení adresářů a metadat, ale samotné čtení velkých souborů se blokuje nebo je extrémně pomalé. Ověřit se to dá jednoduchým testem čtení souboru přes SSH:
time dd if=“/cesta/k/filmu.mp4″ of=/dev/null bs=1M count=10
Pokud přes NFS tento test visí, ale přes SMB/CIFS stejný soubor čte rychle, je praktičtější NFS nepoužívat a stejný postup udělat přes CIFS/SMB.
V takovém případě zůstane princip stejný:
vzdálený QNAP → stabilní lokální cesta na Plex QNAPu → Plex knihovna
Jen místo NFS mountu použijete CIFS mount, například:
mount -t cifs //192.168.1.185/Movies /share/CACHEDEV1_DATA/PlexRemote/Movies -o credentials=/share/CACHEDEV1_DATA/PlexRemote/.smbcredentials,rw,vers=3.0,iocharset=utf8,noserverino
mount -t cifs //192.168.1.185/TVShows /share/CACHEDEV1_DATA/PlexRemote/TVShows -o credentials=/share/CACHEDEV1_DATA/PlexRemote/.smbcredentials,rw,vers=3.0,iocharset=utf8,noserverino
soubor s přihlašovacími údaji může být například:
/share/CACHEDEV1_DATA/PlexRemote/.smbcredentials
s obsahem:
username=UZIVATEL
password=HESLO
a měl by mít omezená práva:
chmod 600 /share/CACHEDEV1_DATA/PlexRemote/.smbcredentials
Do automatizačního skriptu a cronu se pak místo NFS příkazů dají stejné CIFS příkazy. Výhoda je, že Plex dál používá stejné lokální cesty:
/share/CACHEDEV1_DATA/PlexRemote/Movies
/share/CACHEDEV1_DATA/PlexRemote/TVShows
Takže v Plex knihovnách není potřeba nic měnit. Změní se jen způsob, jakým se vzdálený QNAP pod tyto cesty připojuje.
Praktická zkušenost mimochodem. NFS může být čistší linuxové řešení, ale pokud Plex s NFS jen načítá adresáře a při přehrávání se zasekne, CIFS/SMB může být spolehlivější volba.
