Problem mit UDISKS_FILESYSTEM_SHARED

Ich habe auf meinem openSUSE Leap 42.3 System die udev-Option UDISKS_FILESYSTEM_SHARED aktiviert, damit externe Datenträger klassisch unter /media eingehängt werden statt modern unter /run/media/${USERNAME}.
(Ich möchte nicht darüber diskutieren, ob das eine gute oder eine schlechte Idee ist.)
Leider funktioniert das nicht ganz:

Wenn ich eine externe Festplatte mit z.B. dem Namen “GoFlex” das erste Mal anschließe, wird sie korrekt unter /media/GoFlex eingehängt.
Starte ich das System aber mit angeschlossener Platte neu, ist das Verzeichnis /media/GoFlex leer die externe Festplatte unter /media/GoFlex1 eingehängt.
Auf /media/GoFlex hat übrigens nur root Zugriff (owner=root, group=root, mode=700), was der Grund dafür sein könnte, dass das Einhängen darauf nicht klappt.

Wie bringe ich die externe Festplatte dauerhaft auf /media/GoFlex- ohne angehängte ‘1’?

Stimmt es das die Platte nicht nur da war beim starten, aber schon beim vorherigen herunterfahren?

Ja, das stimmt. Die Platte ist dauerhaft angeschlossen. Ich trenne sie nicht für Neustarts.

Ah, du lebst noch! Entschuldige, muß erst mal wider das Ganze lesen, ist schon lange her.

Dan ist meiner meinung nach Folgendes.

Die Platte wird als an/abkuppelbar gesehen und so behandelt. Das heißst das die für einen Benützer angekuppelt wird. Dazu wird besonders einen Directory als Ankuppelpunt (mount point) angefertigt wenn der Benützer Über den Desktop die Platte benötigt… Da aber den Benützer die Platte nicht während siene Session wieder abkuppelt hat, bleibt dieses Mount point existieren.
Beim nächsten ankuppeln wird ein neues Mount Point point angefertigt und da das erwünscheste schon existiert nach nnnnnn1 (usw, das kann noch weiter gehen) ausgewichen.

Im Prinzip ist das Wurst, weil der Benützer über Desktop direct auf das Gerät zugreift und im Mount Point nicht interessiert sein soll (das ist wenigstens die Gedanke hinter das Mechanismus: “wie kupple ich eine File system an das spontan während des drehens angekuppelt wird von einen Endbenützer”).

Ich würde eine Platte, die immer da ist und auch immer angekuppelt sein sollte, auch wie solche behandeln. Das gehört in /etc/fstab konfiguriert zu sein und ist dan immer da (wie auch / und /home usw.).Vielleicht mit hinzufügen des noauto Options um Probleme bei eine etwahige Abwesendheid beim booten vor zu kommen. (Und dan natürlich nicht in /media oder /var/ …, die sind für das was jetz geschied vorgesehen).

Da ich kein reiner GUI-Nutzer bin, sondern auch gerne und oft die Kommandozeile und Skripte nutze, ist für mich der mount point durchaus nicht wurst.
Erst recht, da in dieser Situation nicht einmal die autocompletion hilft, weil der alte mount point zwar nicht mehr funktioniert, aber noch da ist.
Aber auch viele GUI-Programme merken sich Pfade, und es ist nicht wurst, wenn ich die nach jedem Reboot anpassen muss.

Das Verhalten von openSUSE 11.4 war da prima:
neu angeschlossene Laufwerke erscheinen verlässlich unter /media/$VOLNAME und blieben da auch bei Reboots.
Schon sehr schade, dass Leap das nicht mehr kann.

Also werde ich in den sauren Apfel beißen und fstab-Einträge machen.
Hoffentlich funktioniert wenigstens die user-Option, damit ich zum Aus- und Einhängen nicht jedesmal das root-Passwort brauche.

Danke für die Hilfe,
Tilman

PS: Rein aus Neugier würde mich doch interessieren, welchen Sinn das jetzige Verhalten mit UDISKS_FILESYSTEM_SHARED hat.
Ich kann mir beim besten Willen keinen Usecase vorstellen, bei dem es sinnvoll wäre, bei jedem Einhängen einen neuen mount point anzulegen und die alten ungenutzt daneben liegen zu lassen.

Die user Option funktioniert so weit ich weiss, aber wozu? Es wird beim booten eingehängt und beim herunterfahren wider abgehängt. Da hat der Benützer nicht viel zu tun. Wie er auch sich nicht kümmert über /home.

Und “saure Apfel” is meiner Meinung nach ziemlich übertrieben. Wenn du dich nicht trauest das selbts zu tun, dan benütze YaST > System > Partitionieren. Nur aufpassen das ncht formattiert wird!
YaST tut da alles:

  • Anhängepunkt wenn das noch nicht existtiert;
  • Zeile in /etc/fstab nach Wünsch;
  • Gleich anhängen.

Das einzige was noch ein bischen Denkarbeit fordert is eine gutes Anhängepunt zu wählen. Oft wird dafür ein Directory innerhalb /mnt gewählt. Wenn denn das ganze für ein bestimmte Benützer verfügbar sein soll dan soll diese Directory als Eigner dieser Benützer haben, als Gruppe users (oder andere Gruppe wenn Benützer in eine andere Gruppe verweilt), und Permissions z.B. rwxr-x—.
Der Benützer selbst kann sich dan das Leben leicher machen mit ein “symbolic Link” innerhalb sein Home directory:

ln -s /mnt/<Name> <auch eine Name>

Wie funktioniert das, wenn die externe Platte beim Booten gerade nicht angeschlossen ist und erst später angeschlossen wird?
Die Situation bei /home ist ja ganz anders. Die Platte ist fest eingebaut.

Nun, alle Optionen explizit von Hand eingeben zu müssen, die das System bis jetzt automatisch ermittelt hat, finde ich schon einen ziemlich sauren Apfel.
Und für meine NTFS-formatierte USB-Platte habe ich bis jetzt noch keine Kombination gefunden, die funktioniert.
Alle Varianten, die ich versucht habe, führen zu Fehlermeldungen wie:

Unprivileged user can not mount NTFS block devices using the external FUSE
library. Either mount the volume as root, or rebuild NTFS-3G with integrated
FUSE support and make it setuid root. Please see more information at
http://tuxera.com/community/ntfs-3g-faq/#unprivileged

(mit fstype ntfs-3g) oder

Error mounting system-managed device /dev/sdd1: Command-line
`mount “/media/GoFlex” exited with non-zero exit status 32: mount:
wrong fs type, bad option, bad superblock on /dev/sdd1,
missing codepage or helper program, or other error

In some cases useful info is found in syslog - try
dmesg | tail or so.

(mit fstype fuseblk) Unnötig zu erwähnen, dass im Syslog natürlich nichts hilfreiches steht.

Das hat nicht funktioniert: Ich habe in YaST - Partitionierer die Partition ausgewählt, den Einhängepunkt von /media/GoFlex1 auf /media/GoFlex geändert und in den Fstab-Optionen “Einhängen in /etc/fstab mittels Volume-Kennung” aktiviert. Die Platte wurde auch unter dem geänderten Einhängepunkt eingehängt. Aber ein Eintrag in /etc/fstab wurde nicht erzeugt. Ich habe extra nachgeschaut, weil ich nach den obigen Problemen neugierig war, welche Optionen YaST setzen würde.

Das ist mein geringstes Problem: ich möchte einfach wieder genau denselben Einhängepunkt wie vor dem Upgrade auf Leap.

Das hat nicht funktioniert: Ich habe in YaST - Partitionierer die Partition ausgewählt, den Einhängepunkt von /media/GoFlex1 auf /media/GoFlex geändert und in den Fstab-Optionen “Einhängen in /etc/fstab mittels Volume-Kennung” aktiviert. Die Platte wurde auch unter dem geänderten Einhängepunkt eingehängt. Aber ein Eintrag in /etc/fstab wurde nicht erzeugt. Ich habe extra nachgeschaut, weil ich nach den obigen Problemen neugierig war, welche Optionen YaST setzen würde.

EDIT(*): Es hat jetzt doch funktioniert, man muss es nur machen, während die Platte nicht eingehängt ist. Offenbar hat YaST einen Bug, dass er für Dateisysteme, die vor dem Start des Partitionierers schon eingehängt waren, keinen fstab-Eintrag schreibt.

Der von YaST generierte fstab-Eintrag

LABEL=GoFlex /media/GoFlex ntfs-3g user,noauto,users,gid=users,fmask=133,dmask=022,locale=de_DE.UTF-8,nofail 0 0

führt allerdings dazu, dass die Dateien auf der Platte alle den Eigentümer root haben und für normale Benutzer nicht schreibbar sind. Ich muss also weiter selbst nach funktionierenden Optionen suchen.

(*) Leider lässt mich das Forum meinen letzten Beitrag nicht mehr editieren, weil mehr als 10 Minuten seit dem Abschicken vergangen sind. Seufz

Ich hätte das vielleicht nicht tun mussen, aber erst mal nach fehlende Information fragen müssen. Weil du nicht gesagst hat das es sich um ein nicht Linux Filesystem handelt, und weil du gesagst hast das das Gerät immer angschlossen is habe ich nicht damit gerechnet das es etwas aus der Windows Welt ist…

Ich habe das gerät einfach als jedes andere scheibe gesehen. Das es zufälligerweise über USB angeschlsssen und vielleich auch zufälligerweiße nicht im selben Metalgehäuse sitz ist hat dabei natÜrlich kein einfluß. Der software (kernel und alles weitere) macht da überhaupt nichts.

Also.
Falls du Angst hast das das Gerät mal vom Tisch gefallen ist und deshalb beim booten nicht angeschlossen ist, volgende option hinzufügen:

nofail

Der ist aber schon da, also was ist dein bedenken?

Um bei ein nicht-Linux Filesystem Eigentümer und Gruppe für einen anderen User als root zu setzen:

uid=... gid=....

Natürlich sind die … von dir richtig aus zu füllen und zwar mit die UID und GID von deien User. Das sind also Nummern (z.B. 1000 für den UID).
Dazu gehören auch fmask und dmask. Die sind schon gezetst, aber du möchtest vielleicht andere Werte.

Und über die Stelle des Anhängepunktes habe ik schon geschrieben. Du enschließt aber letztendlich selber.

Gelegentlich wäre ein studieren von Teilen des

man mount

von Nützen. Z.B. das Teil “Mount options for ntfs”.

Nimm mal die fmask und dmask Parameter raus, dann sollten die Dateien und Ordner eigtl. für alle Benutzer schreibbar sein.

Mounten als normaler Benutzer wird allerdings nicht funktionieren, sh. die bereits gepostete Fehlermeldung:

Unprivileged user can not mount NTFS block devices using the external FUSE
library. Either mount the volume as root, or rebuild NTFS-3G with integrated
FUSE support and make it setuid root. Please see more information at
http://tuxera.com/community/ntfs-3g-faq/#unprivileged

Allerdings respektiert udisks2 die Einträge in fstab, also sollte die Partition in den spezifizierten Mountpunkt eingehängt werden wenn man sie in Dolphin oder Plasma’s Device Manager mountet.

Ich habe mein Einsatzszenario wohl nicht genau genug beschrieben:

  • Ich habe mehrere externe USB-Platten.
  • Diese sind meistens über längere Zeit am System angeschlossen, auch über Reboots hinweg.
  • Sie werden aber durchaus auch manchmal entfernt und mitgenommen, um anderswo angeschlossen zu werden.
  • Die Platten sind unterschiedlich formatiert: ext4, FAT, NTFS, eine auch LUKS-verschlüsselt.

Auf jeden Fall vielen Dank für alle Tipps. Nach einigen Test funktioniert jetzt alles weitgehend wie ich es brauche.
Mit den fstab-Einträgen:

LABEL=Backup         /media/Backup        ext4       defaults,user,errors=remount-ro,data=ordered
LABEL=Elements       /media/Elements      vfat       defaults,user,uid=ts,gid=users,fmask=0022,dmask=0022,shortname=mixed,utf8
LABEL=GoFlex         /media/GoFlex        ntfs-3g    defaults,user,uid=ts,gid=users,fmask=133,dmask=022,locale=de_DE.UTF-8,nofail 0 0
LABEL=private        /media/private       ext3       defaults,noauto,user,errors=remount-ro,data=ordered

werden die drei externen Platten “Backup”, “Elements” und “GoFlex” jetzt wieder wie früher automatisch mit ihrem Namen unter /media eingehängt.
Die LUKS-verschlüsselte Partition “private” landet nach Einhängen von Hand mit Eingabe der Passphrase ebenfalls am richtigen Platz.
Dank nofail-Option läuft das System - wie von hcvv geschrieben - auch dann korrekt hoch, wenn die GoFlex-Platte beim Booten nicht angeschlossen ist.
Ich werde diese Option bei den anderen auch noch nachtragen.

Es funktioniert sogar, wenn ich die GoFlex-Platte nachträglich anschließe. Sie wird auch dann automatisch richtig eingehängt.
Das Problem mit dem User-Mount ist also entschärft.
Nur wenn ich sie im laufenden Betrieb aushängen, abstöpseln und mitnehmen will, verlangt das System das Root-Passwort von mir.
Das ist zwar lästig, kommt aber nicht so oft vor, sodass ich damit leben kann.

Neu hinzukommende Datenträger werde ich halt jeweils von Hand in /etc/fstab nachtragen müssen, damit sie auch ihren festen Einhängepunkt bekommen.

Klar, weil die Platte vom System gemountet wurde.

Könnte sein dass sich das durch Ändern der polkit Regeln umgehen ließe.

org.freedesktop.udisks2.filesystem-mount-system         yes

in /etc/polkit-default-privs.local eintragen und “sudo polkit_set_default_privs” aufrufen.

Normale Benutzer können dann auch (via usdisks2) Systemplatten/partitionen aushängen (natürlich nur sofern nicht in Verwendung, also mit / oder /home würds trotzdem nicht funktionieren… :wink: ).

Neu hinzukommende Datenträger werde ich halt jeweils von Hand in /etc/fstab nachtragen müssen, damit sie auch ihren festen Einhängepunkt bekommen.

Das Problem mit den nicht gelöschten Ordnern sollte sich auch dadurch beheben lassen dass man /media als tmpfs mountet.
Dadurch ist es bei Booten immer leer (d.h. der Mountpunkt existiert noch nicht und es muss nicht auf einen anderen ausgewichen werden), und eine Angabe in /etc/fstab um den Mountpunkt zu erzwingen sollte nicht mehr nötig sein.

Z.B. durch einen Eintrag in fstab:

/media /media tmpfs defaults 0 0