Suse 11.3 läßt fixen Mountpoint für ext. Speicher nicht zu

Raphalon

New Member
Hallo,

vorab: dieser Post als Cross-Posting zu Konfiguration policy file für HAL.

Ich komme unter Suse 11.3. nicht weiter mit dem Erstellen einer Policy für einen USB-Stick. Dieser soll unter einem fixen Mountpoint erstellt werden. Dieses Thema wurde zwar u.a. in diesem Forum schon in zwei Postings (eins, zwei) behandelt. Doch unter 11.3 scheint die Lösung nicht zu funktionieren.

Die Datei:
Code:
<?xml version="1.0" encoding="ISO-8859-1"?>
<deviceinfo version="0.2">
  <device>
    <match key="block.is_volume" bool="true">
      <match key="volume.fsusage" string="filesystem">
        <match key="volume.uuid" string="12A3-9U0U">
          <merge key="volume.policy.should_mount" type="bool">true</merge>
          <merge key="volume.policy.desired_mount_point" type="string">/media/usbstick</merge>
        </match>
      </match>
    </match>
  </device>
</deviceinfo>
Der Stick hat auch nur eine Partition, daher nur eine Datei mit einem Eintrag. HAL wurde nach jeder Regeländerung wieder neu gestartet.

- Die Datei scheint unter KDE3 zu funktionieren. Bei mir zwar auch unter KDE4: wenn ich die Ergebnisse mit lshal überprüfe, werden die Keys angezeigt. Aber wenn ich den Stick dann via Klick in Dolphin mounte, wird doch wieder der LABEL des Sticks verwendet. Weiß jemand, warum? Liegt es evtl. an Dolphin? Oder kann es an der KDE-Version liegen?
- wenn man die fdi - Datei ändert und ein nicht definiertes Property definiert, wie z.B. <merge key="funny.stuff" type="string">justAjoke</merge>, so wird dieses ebenfalls von HAL in die DB geschrieben (überprüft mit lshal). Somit kann es auch sein, daß die Properties volume.policy.should_mount und volume.policy.desired_mount_point zwar hinzugefügt, aber nicht mehr verwendet werden!?

Weiß jemand weiter? Könnte das jemand unter 11.3 mit KDE4 versuchen? In dem oben erwähnten Cross-Posting habe ich noch mehr Details zur Vorgehensweise gepostet.

Gruß,

Raphalon
 

Rain_Maker

Administrator
Teammitglied
AW: Suse 11.3 läßt fixen Mountpoint für ext. Speicher nicht zu

Also erstmal eines vorweg.

Raphalon schrieb:
vorab: dieser Post als Cross-Posting zu Konfiguration policy file für HAL.
Sehr gut, genau so muss das sein, schade nur, daß soviel Fairness im Sinne der Community die absolute Ausnahme ist.

//Edit:

Das Lob muss ich allerdings teilweise zurücknehmen, den entsprechenden Verweis auf diesen Thread solltest Du auch im LC posten.

OK, nun zum Thema.

Die von Dir verlinkten HowTos haben ihre beste Zeit auch schon hinter sich, daß das nun unter 11.3 nicht mehr geht, kann mehrere Gründe haben, aber ganz ehrlich, das würde mich an Deiner Stelle nicht stören, denn das Standardverhalten mit den Dateisystemlabels ist _viel_ besser als irgendwelches Herumgefrickel mit fdi-Dateien und war damals wirklich nur eine Notlösung.

Einiges hat sich seither auch geändert, was das Mounten externer Speichermedien betrifft, aber das ist hier noch nicht so wichtig (kann sich aber noch ändern).

Die wirklich interessante Frage ist eher, warum soll der entsprechende Datenträger einen festen Mountpunkt haben?

Es gibt mehrere Möglichkeiten dies zu verwirklichen, aber der Grund, warum man es so haben will, wäre gut zu wissen, damit man da die eleganteste/beste/passendste Lösung findet.

Eines steht allerdings jetzt schon fest, /media/usbstick halte ich persönlich für einen wenig geschickten Mountpunkt, egal wie man das löst, das ist einfach "zu wenig eindeutig" und lässt sich 100%ig besser lösen.

BTW:

Die Lösung mit udev-Regel ist doch eigentlich schon eine bessere Lösung, nur eben /media/usbstick würde ich da nicht verwenden.

Greetz,

RM
 

Raphalon

New Member
AW: Suse 11.3 läßt fixen Mountpoint für ext. Speicher nicht zu

Rain_Maker schrieb:
Das Lob muss ich allerdings teilweise zurücknehmen, den entsprechenden Verweis auf diesen Thread solltest Du auch im LC posten.
Danke für das Lob und auch die Ermahnung. Ist hiermit nachgeholt.

Rain_Maker schrieb:
Es gibt mehrere Möglichkeiten dies zu verwirklichen, aber der Grund, warum man es so haben will, wäre gut zu wissen, damit man da die eleganteste/beste/passendste Lösung findet.
Ursprünglich hatte ich das Problem, daß der Mountpoint unter /media _nicht_ entfernt wird, wenn man den Stick vor dem Runter- und wieder Hochfahren nicht extra entfernt. Somit hat er immer weiter mit -1, -2 usw. hochgezählt. Daher habe ich mich überhaupt erst mit dem Thema beschäftigt. Dieses Problem hätte ich aber wohl nicht durch eine passende fdi-Regel gelöst. Somit kann ich auch mit der vom System bereits vorgegebenen Regel leben. Frage wäre, warum der Stick nicht "ordentlich" entfernt wird, samt Mountpoint unter /media!? Ist das ein Problem von HAL oder dolphin? HAL fungiert doch hier eigentlich nur als Kommunikationsschicht zu den angemeldeten Anwendungen. Wer macht das eigentlich unmount? Der Kernel?

Rain_Maker schrieb:
Eines steht allerdings jetzt schon fest, /media/usbstick halte ich persönlich für einen wenig geschickten Mountpunkt, egal wie man das löst, das ist einfach "zu wenig eindeutig" und lässt sich 100%ig besser lösen.
Nachdem ich meinen Stick neu formatiert habe, wird jetzt genau dieses Label verwendet - mit entsprechendem Mountpoint. Warum ist das zu wenig eindeutig? Na ja, ist aber vermutlich eher Geschmackssache.

Rain_Maker schrieb:
Die Lösung mit udev-Regel ist doch eigentlich schon eine bessere Lösung, nur eben /media/usbstick würde ich da nicht verwenden.
Vorteil udev: Der Stick wird wie erwartet nach /media/usbstick gemounted.
Nachteil udev: HAL wird hier komplett umgangen. Das fuehrt dann dazu, dass z.B. der dolphin Dateibrowser den Stick nicht "unmounted" (wenn man ihn explizit dazu auffordert) mit der entsprechenden Fehlermeldung: org.freedesktop.org.Hal.Device.Volume.notMountedByHal: Device to umount is not in /media/.hal-mtab so it is not mounted by HAL

Allein aufgrund dieses Nachteils halte ich udev nicht für die bessere Lösung. Da verlasse ich mich eher auf das Standard-Verhalten mittels HAL.

Nun, ich kann aber tatsächlich mit den Standardmitteln leben. Wäre nur schön gewesen, die Ursache des (Fehl?)Verhaltens herauszufinden.
 

Rain_Maker

Administrator
Teammitglied
AW: Suse 11.3 läßt fixen Mountpoint für ext. Speicher nicht zu

Raphalon schrieb:
Ursprünglich hatte ich das Problem, daß der Mountpoint unter /media _nicht_ entfernt wird, wenn man den Stick vor dem Runter- und wieder Hochfahren nicht extra entfernt. Somit hat er immer weiter mit -1, -2 usw. hochgezählt. Daher habe ich mich überhaupt erst mit dem Thema beschäftigt.
Das klingt für mich eigentlich nach einem Bug, denn das Aushängen aller gemounteten Dateisysteme sollte eigentlich beim Herunterfahren Teil der Routine sein.

Raphalon schrieb:
Dieses Problem hätte ich aber wohl nicht durch eine passende fdi-Regel gelöst. Somit kann ich auch mit der vom System bereits vorgegebenen Regel leben. Frage wäre, warum der Stick nicht "ordentlich" entfernt wird, samt Mountpoint unter /media!? Ist das ein Problem von HAL oder dolphin? HAL fungiert doch hier eigentlich nur als Kommunikationsschicht zu den angemeldeten Anwendungen. Wer macht das eigentlich unmount? Der Kernel?
Wie gesagt, klingt für mich nach dem "alltäglichen Bug", was noch hinzu kommt, die Tage von HAL sind mittlerweile auch gezählt, IIRC setzt 11.3 zumindest teilweise schon auf den Nachfolger device-kit und dessen "Unterbau", es kann also durchaus sein, daß hier ein "Übergangsproblem" besteht, da HAL noch nicht ganz ersetzt werden konnte.

Das Entfernen der Ordner ist das Feature, welches diese auf HAL basierenden Automounter übernehmen (sollten).

Raphalon schrieb:
Nachdem ich meinen Stick neu formatiert habe, wird jetzt genau dieses Label verwendet - mit entsprechendem Mountpoint. Warum ist das zu wenig eindeutig? Na ja, ist aber vermutlich eher Geschmackssache.
Jein, der Grund für meine Bedenken liegt darin, daß jeder auf HAL basierende Automounter zwar per default versuchen wird ein externes Medium unter /media/<LABEL> einzuhängen, aber auch jeder eine "Fallback"-Lösung braucht, wenn es kein Dateisystemlabel gibt und da ist so eine allgemeine Bezeichnung wie "usbstick" als Dateisystemlabel einfach ein potentieller Kandidat für Ärger.

Von pmount-hal weiß ich, daß es als Fallback "/media/usbdisk" verwendet, das ist schon ziemlich nahe dran, und je nach Anwendungsfall kann das sehr lustig werden, wenn jemand dann noch einen zweiten Stick einsteckt, oder gar, wenn jemand auf die Idee kommen sollte, seinem externen Datenträger auch ein Dateisystemlabel "usbstick" zu geben.

Raphalon schrieb:
Vorteil udev: Der Stick wird wie erwartet nach /media/usbstick gemounted.
Nachteil udev: HAL wird hier komplett umgangen. Das fuehrt dann dazu, dass z.B. der dolphin Dateibrowser den Stick nicht "unmounted" (wenn man ihn explizit dazu auffordert) mit der entsprechenden Fehlermeldung: org.freedesktop.org.Hal.Device.Volume.notMountedByHal: Device to umount is not in /media/.hal-mtab so it is not mounted by HAL
Ja, aber auch da kann man nachhelfen und vor allem dann udev sehr sinnvoll einsetzen, denn mittlerweile geht etwas, was nach meinen Erfahrungen zu Zeiten als ich das etwas unbeholfene HowTo zu den fdi-Regeln schrieb, noch nicht ging.

Man kann mittlerweile über udev+fstab im Zusammenspiel mit den üblichen "HAL-Automountern" sein Ziel erreichen, wenn man wirklich einen eindeutigen, festen Mountpunkt haben möchte aber auf die Bequemlichkeit des "Klicken zum Einhängen" nicht verzichten will.

Raphalon schrieb:
Allein aufgrund dieses Nachteils halte ich udev nicht für die bessere Lösung. Da verlasse ich mich eher auf das Standard-Verhalten mittels HAL.
Nun, "the best of both worlds" geht mittlerweile ganz einfach, udev wird verwendet, damit man ein eindeutiges Identifikationsmerkmal verwenden kann, HAL&CO haben mittlerweile keine Probleme mehr mit externen Medien, die man _passend_ in die fstab einträgt und der Benutzer dadurch mehr Flexibilität, was z.B. für Backupscripte (an diesen Anwendungsfall dachte ich) sehr nützlich sein kann.

Für meine eigenen USB-Medien mache ich das nämlich mittlerweile so.

a) Einen passenden (sic!) udev-Symlink verwenden, der das Device bzw. die jeweilige Partition eindeutig festlegt

b) Eintrag in die fstab, natürlich "noauto" und als Mountpunkt verwende ich _nicht_ irgendwas unter /media um "Zufälligkeiten" aus dem Weg zu gehen, wenn ein "unbekannter" Stick eingestöpselt wird

Das Mountkonzept erlaubt einem ja gerade diese Flexibilität also nutze ich sie auch zu meinem Vorteil.

Mal ein Beispiel:

Code:
# fdisk -l /dev/sdc

Platte /dev/sdc: 8061 MByte, 8061451776 Byte
255 Köpfe, 63 Sektoren/Spuren, 980 Zylinder
Einheiten = Zylinder von 16065 × 512 = 8225280 Bytes
Disk identifier: 0x000df791

   Gerät  boot.     Anfang        Ende     Blöcke   Id  System
/dev/sdc1               1         249     2000061    b  W95 FAT32
/dev/sdc2   *         250         265      128520   83  Linux
/dev/sdc3             266         980     5743237+  83  Linux
8G-Stick, mal sehen, was udev da so angelegt hat.

Code:
ls -l /dev/disk/by-uuid/ |grep sdc
lrwxrwxrwx 1 root root 10 27. Nov 10:51 3a8bf57d-19a5-43f2-b8e6-7ca285e52dd0 -> ../../sdc3
lrwxrwxrwx 1 root root 10 27. Nov 10:51 604D-2722 -> ../../sdc1
lrwxrwxrwx 1 root root 10 27. Nov 10:51 c1095815-f468-4c3e-b481-f4a78c51759e -> ../../sdc2
und (für mich noch viel besser geeignet):

Code:
 ls -l /dev/disk/by-id/ |grep sdc
lrwxrwxrwx 1 root root  9 27. Nov 10:51 usb-SanDisk_Cruzer_35136209D102EA3F-0:0 -> ../../sdc
lrwxrwxrwx 1 root root 10 27. Nov 10:51 usb-SanDisk_Cruzer_35136209D102EA3F-0:0-part1 -> ../../sdc1
lrwxrwxrwx 1 root root 10 27. Nov 10:51 usb-SanDisk_Cruzer_35136209D102EA3F-0:0-part2 -> ../../sdc2
lrwxrwxrwx 1 root root 10 27. Nov 10:51 usb-SanDisk_Cruzer_35136209D102EA3F-0:0-part3 -> ../../sdc3
Die UUIDS sind natürlich eindeutig, aber die können sich ändern, wenn man mal eine Partition formartiert, die Einträge in "/dev/disk/by-id" enthalten aber die Seriennummer des Sticks, was ich hier bevorzugen würde.

Mögliche fstab-Einträge für die FAT32-Partition auf dem Stick:

Code:
UUID=604D-2722 /extern//SANDISK1 vfat user,users,noauto,rw,noexec,nosuid,nodev,quiet,shortname=mixed,uid=1000,gid=100,umask=077,fmask=0177,dmask=0077,utf8,iocharset=iso8859-1
oder

Code:
/dev/disk/by-id/usb-SanDisk_Cruzer_35136209D102EA3F-0:0-part1 /extern/SANDISK1 vfat user,users,noauto,rw,noexec,nosuid,nodev,quiet,shortname=mixed,uid=1000,gid=100,umask=077,fmask=0177,dmask=0077,utf8,iocharset=iso8859-1
Man beachte, daß ich absichtlich _nicht_ nach /media/irgendwas mounten lasse, jedoch verwenden alle mir bekannten HAL-Mounter z.B. in dolphin/konqueror(KDE3) oder auch pmount nun den fstab-Eintrag.

Einziger "Nachteil" ist natürlich, daß die Ordner /extern und /extern/SANDISK1 da sein müssen und auch beim Aushängen nicht mehr gelöscht werden, aber da das nicht in /media liegt, kann ich damit leben, weil ich dadurch "Kollisionen" mit irgendwelchen "Fremdmedien" vermeide.

Greetz,

RM
 

Raphalon

New Member
AW: Suse 11.3 läßt fixen Mountpoint für ext. Speicher nicht zu

Bin jetzt endlich zum Ausprobieren gekommen:
Code:
#:/extern> ll
insgesamt 4
drwxr-xr-x 2 root root 4096  1. Dez 19:50 usbstickg
Code:
#:/extern> cat /etc/fstab | grep extern
UUID=7CEA-D5CC /extern/usbstickg vfat user,users,noauto,rw,noexec,nosuid,nodev,quiet,shortname=mixed,uid=1000,gid=100,umask=077,fmask=0177,dmask=0077,utf8,iocharset=iso8859-1
Wenn ich den Stick dann einstecke und im Dolphin den Eintrag anwähle, erscheint jedoch folgende Fehlermeldung. Habe ich da was vergessen / übersehen? Muß ich HAL da irgendwie vorher für dieses Gerät "deaktivieren"?

Code:
Beim Zugriff auf "usbstick" ist ein Fehler aufgetreten, die Meldung lautet: org.freedesktop.Hal.Device.Volume.PermissionDenied: Device /dev/sdb1 is listed in /etc/fstab. Refusing to mount.
 

Rain_Maker

Administrator
Teammitglied
AW: Suse 11.3 läßt fixen Mountpoint für ext. Speicher nicht zu

"Wie deucht mir alles so bekannt".

Diese Fehlermeldung kenne ich, allerdings aus den "alten" Zeiten, seit spätestens 11.0 habe ich sie nicht mehr gesehen.

Hier ™ funktioniert das genau so, allerdings habe ich keine 11.3 sondern eine 11.2 mit KDE 4.5 am Laufen, in sofern, schwer zu vergleichen.

Entweder liegt es an HAL (oder genauer "dem, was davon noch übrig ist") oder an Dolphin.

Am ehesten kann dazu also jemand etwas sagen, der auch 11.3 und KDE4 (4.4? 4.5?) hat.

Greetz,

RM

P.S. Fällt mir nur gerade auf:

Code:
<merge key="volume.policy.desired_mount_point" type="string">[B]/media/[/B]usbstick</merge>
Das ist falsch, siehe auch verlinktes HowTo, Post #3 und #6.
 
Oben