mschlenstedt / Loxberry

Current stable Branch is: *** Please see Releases *** Current developer Branch is: *** master ***
Apache License 2.0
77 stars 27 forks source link

Automount problem with devices that are not partitioned #1258

Closed labmaster closed 2 years ago

labmaster commented 3 years ago

USB devices without partitions (sda, sdb ...) do not trigger the globber pattern sd[a-z]*[0-9] as this gives only a result on devices like sda1, sdb1, sda2 ....

change: /etc/udev/rules.d/99-usbmount.rules

to: KERNEL=="sd[a-z]", SUBSYSTEMS=="usb", ACTION=="add", RUN+="/opt/loxberry/sbin/usb-mount.sh chkadd %k" KERNEL=="sd[a-z]", SUBSYSTEMS=="usb", ACTION=="remove", RUN+="/bin/systemctl stop usb-mount@%k.service" KERNEL=="sd[a-z][0-9]", SUBSYSTEMS=="usb", ACTION=="add", RUN+="/opt/loxberry/sbin/usb-mount.sh chkadd %k" KERNEL=="sd[a-z][0-9]", SUBSYSTEMS=="usb", ACTION=="remove", RUN+="/bin/systemctl stop usb-mount@%k.service"

Woersty commented 3 years ago

Why? Oder warum? Was ist der use-case?

christianTF commented 3 years ago

Äußerst unübliche Art der Verwendung eines Dateisystems direkt auf dem Device, ohne Partitionstabelle.

mschlenstedt commented 3 years ago

Nein, dass ist bei usb sticks gar nicht so selten.

mschlenstedt commented 2 years ago

Hatten wir das nicht gefixt? --> Check

mschlenstedt commented 2 years ago

@labmaster Ich kann das leider bei mir nicht nachstellen, weil ich keinen passenden USB Stick hier habe. Kannst Du bitte einmal testen, ob folgender Eintrag in /etc/udev/rules.d/99-usbmount.rules auch funktioniert:

KERNEL=="sd[a-z]*[0-9]*", SUBSYSTEMS=="usb", ACTION=="add", RUN+="/opt/loxberry/sbin/usb-mount.sh chkadd %k"
KERNEL=="sd[a-z]*[0-9]*", SUBSYSTEMS=="usb", ACTION=="remove", RUN+="/bin/systemctl stop usb-mount@%k.service"

Da im Regex "*" für "0 oder mehr Vorkommen" steht, sollte es so auch mit "/dev/sda" funktionieren.

labmaster commented 2 years ago

So hatte ich mir das ursprünglich auch gedacht,
das mit "sd[a-z]*[0-9]*" hatte jedoch aus mir nicht 100% ersichtlichen Gründen nicht funktioniert.

Die funktionierende und getestete Lösung hatte ich dann oben bereits mit angegeben. Im Moment kann ich das auch nicht testen, da der USB Stick (ein Industrial SLC) im Moment nicht verfügbar ist.

mschlenstedt commented 2 years ago

@labmaster Mit den beiden Sternchen? Mit nur einem Sternchen nach [a-z] ist klar, aber sd[a-z]*[0-9]* müsste gehen.

labmaster commented 2 years ago

So aus meiner Erinnerung:

Es darf kein SD0 oder SD1 geben. Mit sd[a-z][0-9] kann es das aber geben.

Wenn eine Zahl mit dabei ist, dann nur, wenn vorher nach sd auch noch eine Buchstabe war.

Ich hatte da wirklich viel getestet.

mschlenstedt commented 2 years ago

Das hab ich schon kapiert ;-) Die Frage ist doch, ob mit Deinem Stick ohne Partition sd[a-z]*[0-9]* funktioniert? Meinestwegen auch sd[a-z][0-9]* (also ohne ersten Stern). Aber der Kernel vergibt ja die Bezcihnungen, und wenn es SD0 nicht gibt, ist es doch wurscht, ob der Regex das zulassen würde.

Aus meiner Sicht müsste "sda" durch sd[a-z]*[0-9]* abgedeckt sein, weil der zweite Stern sagt "0 oder mehr Zahlen nach den Buchstaben".

labmaster commented 2 years ago

Ich kann es dir leider nicht mehr sagen (ist zu lange her) und ich kann es im Moment auch nicht testen, hatte es aber dann mit den unterschiedlichsten Partitionen und "nicht Partitionen" mit meiner Lösung am laufen.

mschlenstedt commented 2 years ago

Ok, alles klar. Dann nehmen wir Deine Lösung. Ist zwar etwas komplizierter, aber da sind wir uns wenigstens sicher, dass es geht. Danke Dir!