Dateien und Verzeichnisse aus unterschiedlichen Mounts zusammen in einem Zielverzeichnis anzeigen mit unionfs.

    • Dateien und Verzeichnisse aus unterschiedlichen Mounts zusammen in einem Zielverzeichnis anzeigen mit unionfs.

      Kann mir jemand sagen, wie ich auf meiner DM920 unionfs nstallieren kann? Ich finde das auf keinem gängigen Dreambox Feed. Mein Ziel ist es, die mounts von 2 NAS, ein NAS nur mit Dateien, das zweite NAS nur mit Unterverzeichnissen in einem einzelnen Verzeichnis auf der DM920 anzuzeigen.
    • könnte man sich eventuell aus den debian bookworm sourcen ziehen, aber eventuel benötigst du dafür gar kein unionfs



      Annahme:
      jedes NAS hat hate je einen share:

      z.B.:
      NAS1, IP 192.168.178.20, nfs share: /media/hdd/files
      NAS2, IP 192.168.178.21, nfs share: /media/hdd/directories


      erstelle ein Verzeichnis auf der dm920, z.B. /media/union-nas und darin die Ordner 'files' und 'dirs'
      dann mountest du über die fstab den NAS1 share nach '/media/union-nas/files' und den share von NAS2 nach '/media/union-nas/dirs'

      dann hast du in /media/union-nas alle shares in einer Verzeichnisstruktur

      ich mounte so auch die 3 shares (3 Platten) meines Servers in ein Verzeichnis in /media
      ob man so 3 shares von einem NAS oder von 3 NAS "zusammenwürfelt" macht keinen Unterschied

      Quellcode

      1. 192.168.178.9:/media/vol2 /media/DHS/vol2 nfs ,tcp,rw,x-systemd.requires=network-online.target,x-systemd.device-timeout=15,retrans=4,timeo=5,noauto,x-systemd.automount,vers=3,x-systemd.idle-timeout=60,soft,retry=0,nolock,nofail 0 0
      2. 192.168.178.9:/media/vol3 /media/DHS/vol3 nfs ,tcp,rw,x-systemd.requires=network-online.target,x-systemd.device-timeout=15,retrans=4,timeo=5,noauto,x-systemd.automount,vers=3,x-systemd.idle-timeout=60,soft,retry=0,nolock,nofail 0 0
      3. 192.168.178.9:/media/vol4 /media/DHS/vol4 nfs ,tcp,rw,x-systemd.requires=network-online.target,x-systemd.device-timeout=15,retrans=4,timeo=5,noauto,x-systemd.automount,vers=3,x-systemd.idle-timeout=60,soft,retry=0,nolock,nofail 0 0


      ob man unionfs auf der dm9x0 verfügbar machen kann müsste man ausprobieren
      die Abhängigkeiten in den bookworm sourcen sehen gut aus

      packages.debian.org/bookworm/unionfs-fuse



      Edit
      dpkg meldet keine Probleme bzgl. Abhängigkeiten


      Quellcode

      1. root@dm900:/tmp# wget -q http://ftp.de.debian.org/debian/pool/main/u/unionfs-fuse/unionfs-fuse_1.0-1+b1_armhf.deb
      2. root@dm900:~# dpkg -i unionfs-fuse_1.0-1+b1_armhf.deb
      3. Selecting previously unselected package unionfs-fuse.
      4. (Reading database ... 23472 files and directories currently installed.)
      5. Preparing to unpack .../unionfs-fuse_1.0-1+b1_armhf.deb ...
      6. Unpacking unionfs-fuse (1.0-1+b1) ...
      7. Setting up unionfs-fuse (1.0-1+b1) ...
      8. root@dm900:~#
      ich habe das Paket natürlich vor der installation manuell ausgepackt - aber nicht getestet

      wenn ich mir die scripte in /usr/share/doc/unionfs-fuse/examples/ ansehe funktioniert das so ähnlich wie meine Lösung

      ein Backup vor der Installation würde aber nicht schaden
      Gruß Fred

      Die Dreambox ist tot, es lebe die Dreambox

      Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von Fred Bogus Trumper ()

    • Ich bastele halt an der Idee im Moment rum, man muß ja seinen Kopf im Alter fit halten. Deinen Vorschlag werde ich heute und morgen versuchen umzusetzen, werde berichten. Auf der Spur war ich auch schon und habe versucht, die gemounteten NAS-Verzeichnisse mit ln zusammenzuführen, bin damit aber nicht ans Ziel gekommen.

      PS: Ich nehme den koplizierteren Weg, ist besser für das Gehirnjogging. Aber für heute ist es genug gewesen.


      Quellcode

      1. root@dm920:~$ apt install unionfs-fuse
      2. Reading package lists... Done
      3. Building dependency tree
      4. Reading state information... Done
      5. E: Unable to locate package unionfs-fuse
      6. root@dm920:~$ wget -q http://ftp.de.debian.org/debian/pool/main/u/unionfs-fuse/unionfs-fuse_1.0-1+b1_armhf.deb
      7. root@dm920:~$ dpkg -i unionfs-fuse_1.0-1+b1_armhf.deb
      8. Selecting previously unselected package unionfs-fuse.
      9. (Reading database ... 21904 files and directories currently installed.)
      10. Preparing to unpack unionfs-fuse_1.0-1+b1_armhf.deb ...
      11. Unpacking unionfs-fuse (1.0-1+b1) ...
      12. Setting up unionfs-fuse (1.0-1+b1) ...
      13. root@dm920:~$
      Alles anzeigen

      Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von Griffel ()

    • über den Networkmanager würde ich es nicht versuchen ;)

      fstab Einträge und Verzeichnisstruktur manuell erstellen dann läufts auch ;)
      die 3 geposteten fstab Einträge laufen so mit wenig Anpassungen/Optimierungen seit Jahren auf meinen Boxen, wg. der NFS Version müsstet du achten was unterstützt wird und eventuell anpassen

      wenn du die fstab manuell bearbeitest, muss du nach jeder Änderung systemd aktualisieren und das remote-fs.target neu starten


      systemctl daemon-reload
      systemctl restart remote-fs.target

      funktioiert nicht zu 100% - hin und wieder ist mal ein reboot fällig


      Edit

      Griffel schrieb:

      PS: Ich nehme den koplizierteren Weg, ist besser für das Gehirnjogging. Aber für heute ist es genug gewesen.


      Quellcode

      1. root@dm920:~$ apt install unionfs-fuse
      2. Reading package lists... Done
      3. Building dependency tree
      4. Reading state information... Done
      5. E: Unable to locate package unionfs-fuse
      6. root@dm920:~$ wget -q http://ftp.de.debian.org/debian/pool/main/u/unionfs-fuse/unionfs-fuse_1.0-1+b1_armhf.deb
      7. root@dm920:~$ dpkg -i unionfs-fuse_1.0-1+b1_armhf.deb
      8. Selecting previously unselected package unionfs-fuse.
      9. (Reading database ... 21904 files and directories currently installed.)
      10. Preparing to unpack unionfs-fuse_1.0-1+b1_armhf.deb ...
      11. Unpacking unionfs-fuse (1.0-1+b1) ...
      12. Setting up unionfs-fuse (1.0-1+b1) ...
      13. root@dm920:~$
      Alles anzeigen

      die Deinsallation läuft auch sauber durch
      apt-get purge unionfs-fuse

      Aber Achtung! man kann nicht jedes Paket direkt aus den debian sourcen installieren! Vorab zerlegen, nachsehen "was da so alles mitgeliefert wird"
      aber meistens scheitert es bereits an den Anhängigkeiten - vieles benötigt libraries und depends die nicht am dreambox feed liegen oder die installierten libraries sind schlicht weg zu alt. Das DreamOS OE2.5 kommt eben auch schon in die Jahre ...

      das man das unionfs-fuse einfach so installieren kann war eher Zufall
      aber wie geschrieben: ungetestet
      Gruß Fred

      Die Dreambox ist tot, es lebe die Dreambox

      Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von Fred Bogus Trumper ()

    • Dateien und Verzeichnisse aus unterschiedlichen Mounts zusammen in einem Zielverzeichnis anzeigen mit unionfs.

      Sollte jemand auch mal folgendes Problem lösen müssen:

      Ich habe ein NAS mt Filmen, also nur einzelne Dateien und ein zweites NAS mit Mehrteiligen Filmen in jeweils eigenem Unterverzeichnis, also etliche Unterverzeichnisse und es sollen alle Filme und auch die Mehrteiler zusammen in einem Unterverzeichnis auf der Dreambox angezeigt werden.
      In meinem Beispiel liegen die Filmdateien in dem mount /media/Filme_Dreambox und die Mehrteiler in dem mount /media/Filme_Mehrteiler und sollen alle zusammen in dem Verzeichnis /media/Filma angezeigt werden.

      Gelöst habe ich das mit unionfs folgendermassen:


      Quellcode

      1. # Herunterladen des Pakets unionfs-fuse von debian.org
      2. wget -q http://ftp.de.debian.org/debian/pool/main/u/unionfs-fuse/unionfs-fuse_1.0-1+b1_armhf.deb
      3. # Installieren von unionfs-fuse
      4. dpkg -i unionfs-fuse_1.0-1+b1_armhf.deb
      5. # Die beiden Datei- und den Unterverzeichnis-mounts in /media/Filme zusammenführen.
      6. # Das Verzeichnis /media/Filme muß angelegt sein.
      7. # Wichtig ist die Reihenfolge der Quellverzeichnisse,
      8. # damit die Unterverzeichnisse zuerst angezeigt werden.
      9. unionfs-fuse -o cow /media/Filme_Dreambox=RW:/media/Filme_Mehrteiler=RW /media/Filme
      Alles anzeigen
      Als Ergebnis werden mir jetzt in EMC beide mounts zusammen angezeigt:

    • Zum Schluss noch die Perfektion, damit das auch nach einem Neustart wieder läuft:
      Eine /etc/systemd/system/unionfs.service angelegt mit folgendem Inhalt:
      Spoiler anzeigen

      [Unit]
      Description=UnionFS-FUSE Mount
      RequiresMountsFor=/media/Filme_Dreambox /media/Filme_Mehrteiler
      After=network.target


      [Service]
      Type=oneshot
      RemainAfterExit=true
      ExecStart=/usr/bin/unionfs-fuse -o cow /media/Filme_Dreambox=RW:/media/Filme_Mehrteiler=RW /media/Filme
      ExecStop=/usr/bin/fusermount -u /media/Filme
      RestartSec=10
      StandardOutput=journal
      StandardError=journal


      [Install]
      WantedBy=multi-user.target

      Das ganze in systemctl einbinden und starten.

      Quellcode

      1. systemctl enable unionfs
      2. systemctl start unionfs
      Jetzt sind auch nach einem Neustart in /media/Filme alle Verzeichnisse und Dateien vereint. Mit unionfs-fuse kann man auch mehrere Verzeichnisse in einem Verzeichnis zusammen anzeigen, ist sicher interessant, wenn man mehrere externe Speicher oder mounts hat und die zusammen zum Beispiel in EMC anzeigen lassen will.
    • @Griffel
      Nur mal als Frage ,geht es dir nur darum auch die Filme in den Verzeichnissen in der Filmliste anwählen zu können ohne erst dahin zu navigieren oder sich zig mounts anlegen zu müssen?

      Weil in der AMS zb. gibt es die Bibliothek Funktion ,dort kann man einfach die einzelen NAS oder Platten als "Suchverzeichnisse für die Bibliothek" angeben und in der Movieliste haste dann alle Filme direkt gelistet ohne Verzeichnisse sondern es werden dir dort dann auch aus den Unterverzeichnissen und sämmtlichen Ordnern deines NAS die Filme direkt angezeigt .

      Hier mal als Beispiel ,meine Filme liegen alle auf meinen Festplatten in Genre und Film Ordnern ,ich gebe bei der AMS für die Bilbliothek einfach nur meine Festplatten an und sind diese angeschlossen und an (nur dann) werden alle Verzeichnisse darin eingelesen und nur die Filme werden in der Movieliste angezeigt .
      Man muss also weder extra Verzeichnisse mounten noch in Ordner navigieren ,einfach nur den Film aussuchen in der Movieliste und starten. ;)
      Bilder
      • 1.png

        116,98 kB, 2.560×1.440, 39 mal angesehen
      • 2.png

        190,16 kB, 2.560×1.440, 38 mal angesehen
      • 3.png

        517,65 kB, 2.560×1.440, 43 mal angesehen
      • 4.png

        1,85 MB, 2.560×1.440, 45 mal angesehen
      • 5.png

        1,92 MB, 2.560×1.440, 50 mal angesehen
      • 6.png

        303,61 kB, 2.560×1.440, 44 mal angesehen
      • 7.png

        383,72 kB, 2.560×1.440, 45 mal angesehen
      Dreambox Two:
      AIO mit GP4.2 + GPT
      Dreambox one:
      AIO mit GP4.2
    • dhwz schrieb:

      Trotzdem ist die Lösung von @Fred Bogus Trumper die bessere, FUSE ist böse und geht auf die Performance der Box weil das im Userspace läuft.
      @Griffel kann da eigentlich nur testen wie performant das läuft. Zudem will er ja ja alle Dateien in einem (virtuellen) Verzeichnis.


      Ich baue mir am Client so meine eigene Ordner Struktur zusammen. Im EMC lass ich mir dann bestimmte Ordner (nicht den gesamten share) mit Symlinks in '/media/hdd/movie/1-Server' "betretbar" listen. D.h. dort liegt meine "virtuelle" und für EMC angepasste Ordnerstruktur. Ade Lesezeichen, und Dauerspinner wenn man mal EMC Movie Home betritt und ein share offline sein sollte. Es "rattert" erst dann, wenn ich /media(hdd/movie/1-Server -> Unterordner "betrete" und der share offline sein sollte



      Quellcode

      1. root@dm900:~# ls -l /media/hdd/movie/1-Server/
      2. total 0
      3. lrwxrwxrwx 1 root root 26 Dez 26 2017 1-Filme -> /media/DHS/vol3/Aufnahmen/
      4. lrwxrwxrwx 1 root root 22 Dez 26 2017 2-Serien -> /media/DHS/vol2/Serien
      5. lrwxrwxrwx 1 root root 44 Aug 24 2020 3-Dokumentationen -> /media/DHS/vol4/Aufnahmen/1-Dokumentationen/
      6. lrwxrwxrwx 1 root root 37 Aug 24 2020 4-Kabarett -> /media/DHS/vol4/Aufnahmen/3-Kabarett/
      7. lrwxrwxrwx 1 root root 34 Aug 24 2020 5-Musik -> /media/DHS/vol4/Aufnahmen/2-Musik/
      8. lrwxrwxrwx 1 root root 30 Aug 24 2020 6-DVDs -> '/media/DHS/vol4/Original DVDs/'
      9. lrwxrwxrwx 1 root root 21 Aug 24 2020 7-AVIs -> /media/DHS/vol4/AVIs/
      10. lrwxrwxrwx 1 root root 23 Aug 24 2020 8-Archiv -> /media/DHS/vol4/Archiv/
      11. root@dm900:~#
      Alles anzeigen
      Bilder
      • EMC_1-Server.png

        40,09 kB, 1.280×720, 38 mal angesehen
      Gruß Fred

      Die Dreambox ist tot, es lebe die Dreambox

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von Fred Bogus Trumper ()

    • Mir ging es bei diesem Projekt un 2 Dinge:
      1. in EMC nicht erst in den einzelnen Unterverzeichnissen rum zu manövrieren, sondern den alten Zustand zu ermöglichen,
      2. Gehirnjogging, um meinen Kopf in meinem Alter noch fit zu halten.
      Auslöser war, dass ich 2 NAS Qnap TS-832X habe und auf einem die Filme und Mehrteiler in Unterverzeichnissen von Filme hatte, damit wurden in EMC im mount des NAS die Filme und Verzeichnisse in einem Ordner angezeigt. Das zweite NAS diente zur täglichen Sicherung. Da mir langsam der Plattenplatz auf dem NAS ausging und beide NAS unter RAID5 laufen, habe ich beschlossen, beide NAS in 24/7 zu betreiben und auf einem die Filme und dem anderen die Mehrteiler zu speichern. Dies führte dazu, dass ich jetzt 2 mounts auf ein NAS Filme und ein NAS Mehrteiler hatte und ich in EMC erst in das jeweilige Verzeichnis manövrieren musste. Bei der Suche nach einer Lösung bin ich auf unionfs-fuse gestossen und habe das ausprobiert. Auch konnte ich den Umgang mit systemctl noch mal üben.
      Die Belastung auf der DM920 ist gering, auf der DM920 sind keine Geschwindigkeitseinbußen zu bemerken:

      Quellcode

      1. root@dm920:~$ ps -e|grep unionfs
      2. 1040 ? 00:00:36 unionfs-fuse
      3. root@dm920:~$ top -p 1040



      Spoiler anzeigen

      top - 14:41:27 up 16:08, 1 user, load average: 1,18, 1,24, 1,23
      Tasks: 1 total, 0 running, 1 sleeping, 0 stopped, 0 zombie
      %Cpu(s): 2,5 us, 1,8 sy, 0,0 ni, 93,2 id, 0,7 wa, 1,2 hi, 0,7 si, 0,0 st
      KiB Mem : 1023280 total, 17532 free, 274960 used, 730788 buff/cache
      KiB Swap: 0 total, 0 free, 0 used. 685992 avail Mem


      PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
      1040 root 20 0 42940 7700 408 S 0,0 0,8 0:36.52 unionfs-fuse
    • @pclin hat direkt auf der dm900 das unionfs kompiliert und zur Verfügung gestellt


      Vielleicht magst du mal testen. Du musst aber unionfs vom bookworm feed vorher deinstallieren

      ich konnte es noch nicht testen
      Dateien
      Gruß Fred

      Die Dreambox ist tot, es lebe die Dreambox

    • Ich habe die unionfs-fuse von debian.org deinstalliert und die deb von pclin installiert. Die /usr/bin/unionfs hat jetzt einen anderen Namen (ohne das -fuse) und ist etwas grösser (79KB statt 67KB) . Nach Namens-Anpassung in der /etc/systemd/system/unionfs.service (ExecStart=/usr/bin/unionfs -o cow /media/Filme_Mehrteiler=RW:/media/Filme_Dreambox=RW /media/Filme) und einem

      Quellcode

      1. systemctl daemon-reload
      2. systemctl start unionfs
      läuft alles wieder wie vorher.
    • top - 09:27:58 up 14:11, 1 user, load average: 1,17, 1,30, 1,27
      Tasks: 1 total, 0 running, 1 sleeping, 0 stopped, 0 zombie
      %Cpu(s): 0,7 us, 1,2 sy, 0,0 ni, 93,8 id, 3,7 wa, 0,5 hi, 0,2 si, 0,0 st
      KiB Mem : 1023280 total, 385772 free, 267144 used, 370364 buff/cache
      KiB Swap: 0 total, 0 free, 0 used. 676556 avail Mem


      PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
      386 root 20 0 50792 6712 412 S 0,0 0,7 0:05.49 unionfs