[HowTo] Aufnahmeverzeichnis verspätet, aber vor VDR-Start mounten

  • Hallo!


    Mein VDR verfügt nur über eine kleine Mini-SSD, weshalb der Inhalt des Aufnahmeverzeichnisss auf einer NAS liegt, die über eine ausreichend große Festplatte verfügt. Das Aufnahmeverzeichnis wird also als Sama/Cifs-Share am VDR-Rechner gemountet.


    Leider ist es nun aber so, dass mit dem Start des VDR-Rechners der NAS-Rechner gleichzeitig mit gestartet wird, wobei der VDR-Rechner schneller startet.
    Ist der VDR so weit, dass der VDR-Prozess startet, ist das Cifs-Share also noch nicht verfügbar --> VDR crasht mit der Meldung, dass auf das Aufnahmeverzeichnis nicht verfügbar ist.



    Als mögliche Lösung habe ich es schon mit autofs probiert - also einen Automatismus, der /var/lib/video.00 erst unmittelbar beim Zugriff darauf einhängt.
    Leider funktioniert aber auch das nicht, da der VDR-Rechner eben viel schneller als der NAS-Rechner startet. Sobald der VDR-Prozess startet und auf das Aufnahmeverzeichnis zugreifen möchte, versucht autofs zwar den Mount-Befehl für das Cifs-Share aufzuführen, dieser wird aber mit einem Fehler abgebrochen.


    --> es ist kein Zugriff auf das Aufnahmeverzeichnis möglich und VDR wird sofort wieder beendet.



    Gibt es hierfür eine Lösung?
    Beim Start des Rechners soll VDR automatisch gestartet werden, ebenso soll aber die Cifs-Freigabe automatisch gemountet werden ...

  • Schreib einen Upstart-Skript mit der Start-Bedingung:

    Code
    start on starting vdr


    und mounte da drin in einer Schleife das Laufwerk bis es klappt.


    Gerald


    HP Proliant MicroServer Gen8, Xeon E3-1230, 12 GB RAM, 3xWD red 2TB im RAID 5, 2xSundtek MediaTV Home DVB-C/T, L4M TWIN-C/T, Ubuntu Server 14.04.1, Plex Media Server
    Samsung UE55H6470

  • Danke für den Tipp. Es ist so einfach, dass ich gar nicht daran gedacht habe :tup



    Ein Problem hatte ich aber bei meinem VDR-Server, bei dem VDR noch mittels Init-Script gestartet wird (hier ist "nur" das Paket VDR aus eurem yaVDR-Repository installiert --> mit dem Paket alleine wird scheinbar noch ein Init-Script angelegt)


    Um auch hier einen sauberen Mount vor dem VDR-Start durchzuführen habe ich ein LSB-konformes Init-Script erstellt, welches lt. den Regeln VOR dem Start von VDR ausgeführt werden soll. Das möchte ich euch nicht vorenthalten, denn vielleicht kann es jemand brauchen.


    Leider funktioniert es nicht unter einer Standard-Installation von Ubuntu 12.04, da dort die LSB-Abhängigkeiten der Init-Scripts scheinbar überhaupt nicht berücksichtigt werden (vermutlich wegen der dortigen Verwendung von upstart; leider bemerkt man dies erst nachdem man das Script fertig gestellt hat :rolleyes: )


    Aber wie gesagt, es würde funktionieren, und deshalb hier das Script.


    /etc/init.d/vdr-mount-recordings



    Da die Lösung sehr angenehm ist, leider aber nicht funktioniert, habe ich mich letztendlich dazu entschieden, das Init-Script von VDR zu ändern --> unmittelbar vor dem Start von VDR rufe ich mein Mount-Script auf.



    Einfügen dieser 2 Zeilen in /etc/init.d/vdr

    Code
    ### try to mount recording directory, if not already mounted
                /usr/local/sbin/vdr-mount-recordings



    Die Funktion startvdr() im Init-Script sieht dann so aus:



    Angelegt werden muss dafür die Datei /usr/local/sbin/vdr-mount-recordings



    Vielleicht nützen die Scripts bzw. Fragmente daraus ja jemandem der vor einem ähnlichen Mount-Problem steht wie ich - deshalb der Post hier.


    Verbessern könnte man noch das Warten auf das Verfügbar-Werden der Netzwerkfreigabe. Derzeit wartet das Script nach einem erfolgreichen Ping auf den NAS-Server noch fixe 5 Sekunden bis der Fileserver-Prozess gestartet wurde und die Shares anbietet. Für Vorschläge wie man das besser lösen könnte bin ich natürlich gerne zu haben :)

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!