{"id":8576,"date":"2026-01-20T20:06:19","date_gmt":"2026-01-20T19:06:19","guid":{"rendered":"https:\/\/speefak.spdns.de\/oss_lifestyle\/?p=8576"},"modified":"2026-01-28T16:28:55","modified_gmt":"2026-01-28T15:28:55","slug":"vdr-aufnahmen-mit-autofs-sshfs-auf-entfernten-storage-auslagern","status":"publish","type":"post","link":"https:\/\/speefak.spdns.de\/oss_lifestyle\/vdr-aufnahmen-mit-autofs-sshfs-auf-entfernten-storage-auslagern\/","title":{"rendered":"VDR-Aufnahmen mit autofs\/sshfs auf entfernten Storage auslagern"},"content":{"rendered":"<p data-start=\"86\" data-end=\"965\">Der VDR-User auf einem Client-System kann seine Aufnahmen direkt auf einem entfernten Storage-Server ablegen, ohne dass eine Passworteingabe erforderlich ist. Auf dem Host-System werden hierf\u00fcr zun\u00e4chst die erforderlichen Benutzerkonten sowie die Verzeichnisse mit den korrekten Besitz- und Zugriffsrechten erstellt. Anschlie\u00dfend wird der SSH-Zugang f\u00fcr den VDR-User eingerichtet, inklusive einer Schl\u00fcssel-basierten Authentifizierung, um eine sichere, passwortlose Verbindung zu erm\u00f6glichen. Auf dem Client wird Autofs in Verbindung mit SSHFS konfiguriert, sodass das Videoverzeichnis des VDR automatisch auf den entfernten Speicher gemountet wird. Dadurch kann der VDR-Dienst seine Aufnahmen direkt auf dem Storage-Server ablegen. Die Schreibrechte sind dabei ausschlie\u00dflich dem VDR-User zugewiesen, w\u00e4hrend andere Benutzer nur lesenden Zugriff erhalten, sofern erforderlich.<\/p>\n<p data-start=\"967\" data-end=\"1343\" data-is-last-node=\"\" data-is-only-node=\"\">Ein wesentlicher Vorteil dieser L\u00f6sung gegen\u00fcber der Nutzung eines vom Host durchgereichten virtuellen Verzeichnisses (z.\u202fB. virtfs in Proxmox) besteht darin, dass Storage und VDR-Server nicht auf demselben Host liegen m\u00fcssen. Dies erm\u00f6glicht eine flexible Trennung von Speicher- und Verarbeitungsressourcen sowie eine bessere Skalierbarkeit und Ausfallsicherheit des Systems.<\/p>\n<hr \/>\n<h3>1. Vorbereitungen auf dem Host (Storage-Server)<\/h3>\n<ol>\n<li>Einen Benutzer <code>vdr-storage<\/code> anlegen, der die Aufnahmen verwalten darf:<\/li>\n<li>\n<pre class=\"lang:default decode:true \">sudo adduser --system --group vdr-storage<\/pre>\n<\/li>\n<li>Verzeichnis f\u00fcr VDR-Aufnahmen erstellen und Berechtigungen setzen:<\/li>\n<li>\n<pre class=\"lang:default decode:true \">sudo mkdir -p \/mnt\/fstab_UUID_System_storage\/vdr_recdir\r\nsudo chown -R vdr-storage:vdr-storage \/mnt\/fstab_UUID_System_storage\/vdr_recdir\r\nsudo chmod 775 \/mnt\/fstab_UUID_System_storage\/vdr_recdir<\/pre>\n<p>SSH-Zugang f\u00fcr den <code>vdr<\/code>-User des Clients einrichten:<\/p>\n<ul>\n<li>\u00d6ffentlichen Schl\u00fcssel des Clients unter <code>\/root\/.ssh\/authorized_keys<\/code> von <code>vdr<\/code>-User auf Client eintragen.<\/li>\n<li>Sicherstellen, dass SSH-Zugang ohne Passwort m\u00f6glich ist.<\/li>\n<\/ul>\n<\/li>\n<li>Optional: Pr\u00fcfen, ob Schreibrechte funktionieren:<\/li>\n<li>\n<pre class=\"lang:default decode:true \">sudo -u vdr-storage touch \/mnt\/fstab_UUID_System_storage\/vdr_recdir\/testfile\r\nrm \/mnt\/fstab_UUID_System_storage\/vdr_recdir\/testfile<\/pre>\n<\/li>\n<\/ol>\n<hr \/>\n<h3>2. Vorbereitungen auf dem Client<\/h3>\n<ol>\n<li>SSH-Key erzeugen oder vorhandenen Key nutzen, falls noch nicht vorhanden:<\/li>\n<li>\n<pre class=\"lang:default decode:true\">sudo -u vdr ssh-keygen -f \/root\/.ssh\/id_ed25519 -N \"<\/pre>\n<\/li>\n<li>Public Key (<code>id_ed25519.pub<\/code>) auf den Host in <code>\/root\/.ssh\/authorized_keys<\/code> eintragen.<\/li>\n<li>Autofs installieren und aktivieren:<\/li>\n<li>\n<pre class=\"lang:default decode:true\">apt update\r\napt install autofs\r\nsystemctl enable autofs\r\nsystemctl start autof<\/pre>\n<\/li>\n<li>Autofs-Konfiguration anpassen:\n<ul>\n<li>Datei <code>\/etc\/auto.mount<\/code> erstellen oder bearbeiten:\n<pre class=\"lang:default decode:true \">vdr_recdir -fstype=fuse.sshfs,rw,nodev,allow_other,default_permissions,uid=106,gid=106,reconnect,ServerAliveInterval=15,ServerAliveCountMax=3,follow_symlinks,transform_symlinks,IdentityFile=\/root\/.ssh\/id_ed25519 :vdr-storage@&lt;HOST_IP&gt;:\/mnt\/fstab_UUID_System_storage\/vdr_recdir<\/pre>\n<\/li>\n<li><code>uid=106,gid=106<\/code> entspricht dem lokalen <code>vdr<\/code>-User.<\/li>\n<\/ul>\n<\/li>\n<li>Autofs neu laden:\n<pre class=\"lang:default decode:true\">systemctl restart autofs<\/pre>\n<\/li>\n<li>Mount testen:\n<pre class=\"lang:default decode:true \">ls -ld \/mnt\/autofs\/vdr_recdir\r\nsudo -u vdr touch \/mnt\/autofs\/vdr_recdir\/testfile\r\nrm \/mnt\/autofs\/vdr_recdir\/testfile<\/pre>\n<\/li>\n<\/ol>\n<hr \/>\n<h3>3. VDR auf dem Client konfigurieren<\/h3>\n<ol>\n<li>Symbolischen Link f\u00fcr das Videoverzeichnis setzen:<\/li>\n<li>\n<pre class=\"lang:default decode:true\">ln -s \/mnt\/autofs\/vdr_recdir \/var\/lib\/video\r\nchown -h vdr:vdr \/var\/lib\/vide<\/pre>\n<\/li>\n<li>VDR-Dienst starten und pr\u00fcfen:<\/li>\n<li>\n<pre class=\"lang:default decode:true\">systemctl enable vdr\r\nsystemctl start vdr\r\nsystemctl status vdr<\/pre>\n<\/li>\n<li>Sicherstellen, dass Aufnahmen vom <code>vdr<\/code>-User auf den entfernten Storage geschrieben werden k\u00f6nnen.<\/li>\n<\/ol>\n<hr \/>\n<h3>4. Autofs\u2011Mount beim Systemstart<\/h3>\n<p data-start=\"81\" data-end=\"499\">Beim Systemstart kann es vorkommen, dass der VDR\u2011Dienst versucht, auf das entfernte SSHFS\u2011Verzeichnis unter <code data-start=\"189\" data-end=\"213\">\/mnt\/autofs\/vdr_recdir<\/code> zuzugreifen, bevor Autofs den Mount erstellt hat. Da Autofs Verzeichnisse erst on demand mountet, ist der Mount beim direkten Start des VDR\u2011Dienstes m\u00f6glicherweise noch nicht vorhanden. In diesem Fall schl\u00e4gt der Dienst fehl, da er keinen Schreibzugriff auf das Videoverzeichnis hat.<\/p>\n<p data-start=\"501\" data-end=\"930\">Um sicherzustellen, dass der Mount verf\u00fcgbar ist, bevor VDR startet, kann ein Hilfsskript eingesetzt werden. Dieses pr\u00fcft wiederholt, ob der Mount aktiv ist, und l\u00f6st bei Bedarf den Zugriff aus, um Autofs zum Mounten zu bewegen. Sobald der Mount bereitsteht, wird der VDR\u2011Dienst gestartet oder neu gestartet. Alle Statusmeldungen werden \u00fcber Syslog protokolliert, sodass sie in den VDR\u2011Logs (<code data-start=\"893\" data-end=\"912\">journalctl -t vdr<\/code>) sichtbar sind.<\/p>\n<p data-start=\"932\" data-end=\"1256\">Logeintr\u00e4ge, die auf einen fehlerhaften VDR\u2011Start hinweisen, entstehen typischerweise, weil das Verzeichnis beim Start des VDR\u2011Dienstes noch nicht gemountet ist. Aus diesem Grund empfiehlt es sich, den automatischen Start des VDR\u2011Dienstes zu deaktivieren und den Dienst stattdessen \u00fcber das beschriebene Skript zu starten<\/p>\n<p>Datei: <code>\/usr\/local\/bin\/trigger-vdr-mount.sh<\/code><\/p>\n<pre class=\"lang:default decode:true\">#!\/bin\/bash\r\n# Pr\u00fcft, ob der Autofs-Mount aktiv ist, und startet bei Bedarf VDR neu.\r\n\r\nMOUNTPOINT=\"\/mnt\/autofs\/vdr_recdir\"\r\nTAG=\"vdr\"\r\n\r\nlog() {\r\n  logger -t \"$TAG\" \"$1\"\r\n}\r\n\r\nlog \"Autofs-Check: Pr\u00fcfe Mount $MOUNTPOINT\"\r\n\r\n# Pr\u00fcfen, ob der Mount bereits aktiv ist\r\nif mountpoint -q \"$MOUNTPOINT\"; then\r\n  log \"Autofs-Check: Mount bereits aktiv, kein Neustart notwendig\"\r\n  exit 0\r\nfi\r\n\r\n# Solange der Mount nicht existiert, Zugriff ausl\u00f6sen, um Autofs zu starten\r\nwhile true; do\r\n  log \"Autofs-Check: Mount noch nicht aktiv, triggere Autofs\"\r\n  ls \"$MOUNTPOINT\"\/* 2&gt;&amp;1 | logger -t \"$TAG\"\r\n  if mountpoint -q \"$MOUNTPOINT\"; then\r\n    log \"Autofs-Check: Mount jetzt aktiv\"\r\n    break\r\n  fi\r\n  sleep 1\r\ndone\r\n\r\nsleep 3\r\n\r\nlog \"Autofs-Check: Neustart von VDR\"\r\nsystemctl restart vdr 2&gt;&amp;1 | logger -t \"$TAG\"\r\n\r\nlog \"Autofs-Check: Skript beendet\"\r\nexit 0\r\n<\/pre>\n<p><strong>Funktionsweise:<\/strong><\/p>\n<ul>\n<li>Das Skript pr\u00fcft mit <code>mountpoint -q<\/code>, ob das Zielverzeichnis bereits gemountet ist.<\/li>\n<li>Falls der Mount nicht vorhanden ist, wird wiederholt ein Zugriff auf das Verzeichnis ausgel\u00f6st, wodurch Autofs den Mount vornimmt.<\/li>\n<li>Nach erfolgreichem Mount erfolgt ein kurzes Warten (<code>sleep 3<\/code>), bevor der VDR\u2011Dienst gestartet oder neu gestartet wird.<\/li>\n<li>Alle Ausgaben werden \u00fcber <code>logger<\/code> ins Syslog geschrieben, wodurch sie unter dem Tag <code>vdr<\/code> im Journal erscheinen.<\/li>\n<\/ul>\n<h3>Integration in den Boot\u2011Ablauf<\/h3>\n<p>Das Skript kann beim Systemstart \u00fcber einen Cronjob ausgef\u00fchrt werden:<\/p>\n<pre class=\"lang:default decode:true \">@reboot \/usr\/local\/bin\/wait-for-vdr-mount.sh<\/pre>\n<p>Dadurch wird nach jedem Neustart \u00fcberpr\u00fcft, ob der Autofs\u2011Mount verf\u00fcgbar ist, und der VDR\u2011Dienst startet zuverl\u00e4ssig.<\/p>\n<p>&nbsp;<\/p>\n<hr \/>\n<h3><img decoding=\"async\" src=\"https:\/\/speefak.spdns.de\/oss_lifestyle\/wp-content\/uploads\/2026\/01\/trigger-vdr-mount.png\" \/><\/h3>\n<hr \/>\n<p><img decoding=\"async\" src=\"https:\/\/speefak.spdns.de\/oss_lifestyle\/wp-content\/uploads\/2026\/01\/VDR-autofs-sshfs-diagram.png\" \/><\/p>\n<h3>4. Zusammenfassung<\/h3>\n<ul>\n<li>Der Host stellt ein Schreibverzeichnis f\u00fcr den VDR-User bereit.<\/li>\n<li>Der Client mountet dieses Verzeichnis automatisch per SSHFS \u00fcber Autofs.<\/li>\n<li>Der lokale <code>vdr<\/code>-User besitzt Schreibrechte und kann Aufnahmen direkt auf dem Host speichern.<\/li>\n<li>Alle Vorg\u00e4nge erfolgen passwortlos \u00fcber SSH-Keys, der VDR-Dienst kann regul\u00e4r starten.<\/li>\n<li>Hilfsskript \u00fcberpr\u00fcft vor dem Start des VDR-Dienstes, ob der Mount aktiv ist.<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<hr \/>\n<p><img loading=\"lazy\" decoding=\"async\" class=\" wp-image-2821 alignleft\" src=\"https:\/\/speefak.spdns.de\/oss_lifestyle\/wp-content\/uploads\/2014\/08\/CC_BY_NC_SA.png\" alt=\"CC_BY_NC_SA\" width=\"65\" height=\"23\" \/>by Speefak<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Der VDR-User auf einem Client-System kann seine Aufnahmen direkt auf einem entfernten Storage-Server ablegen, ohne dass eine Passworteingabe erforderlich ist. Auf dem Host-System werden hierf\u00fcr zun\u00e4chst die erforderlichen Benutzerkonten sowie die Verzeichnisse mit den korrekten Besitz- und Zugriffsrechten erstellt. Anschlie\u00dfend wird der SSH-Zugang f\u00fcr den VDR-User eingerichtet, inklusive einer Schl\u00fcssel-basierten Authentifizierung, um eine sichere, passwortlose [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[8,32,46],"tags":[],"class_list":["post-8576","post","type-post","status-publish","format-standard","hentry","category-anleitungen","category-netzwerke","category-virtualisierung"],"rttpg_featured_image_url":null,"rttpg_author":{"display_name":"speefak","author_link":"https:\/\/speefak.spdns.de\/oss_lifestyle\/author\/speefak_oss\/"},"rttpg_comment":0,"rttpg_category":"<a href=\"https:\/\/speefak.spdns.de\/oss_lifestyle\/category\/anleitungen\/\" rel=\"category tag\">Anleitungen<\/a> <a href=\"https:\/\/speefak.spdns.de\/oss_lifestyle\/category\/netzwerke\/\" rel=\"category tag\">Netzwerke<\/a> <a href=\"https:\/\/speefak.spdns.de\/oss_lifestyle\/category\/virtualisierung\/\" rel=\"category tag\">Virtualisierung<\/a>","rttpg_excerpt":"Der VDR-User auf einem Client-System kann seine Aufnahmen direkt auf einem entfernten Storage-Server ablegen, ohne dass eine Passworteingabe erforderlich ist. Auf dem Host-System werden hierf\u00fcr zun\u00e4chst die erforderlichen Benutzerkonten sowie die Verzeichnisse mit den korrekten Besitz- und Zugriffsrechten erstellt. Anschlie\u00dfend wird der SSH-Zugang f\u00fcr den VDR-User eingerichtet, inklusive einer Schl\u00fcssel-basierten Authentifizierung, um eine sichere, passwortlose&hellip;","_links":{"self":[{"href":"https:\/\/speefak.spdns.de\/oss_lifestyle\/wp-json\/wp\/v2\/posts\/8576","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/speefak.spdns.de\/oss_lifestyle\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/speefak.spdns.de\/oss_lifestyle\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/speefak.spdns.de\/oss_lifestyle\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/speefak.spdns.de\/oss_lifestyle\/wp-json\/wp\/v2\/comments?post=8576"}],"version-history":[{"count":0,"href":"https:\/\/speefak.spdns.de\/oss_lifestyle\/wp-json\/wp\/v2\/posts\/8576\/revisions"}],"wp:attachment":[{"href":"https:\/\/speefak.spdns.de\/oss_lifestyle\/wp-json\/wp\/v2\/media?parent=8576"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/speefak.spdns.de\/oss_lifestyle\/wp-json\/wp\/v2\/categories?post=8576"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/speefak.spdns.de\/oss_lifestyle\/wp-json\/wp\/v2\/tags?post=8576"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}