automount hakelt

Fönwelle

Well-Known Member
Hi,

ich möchte meinem BSD-Rechner ein Verhalten beibringen, wie ich es als unbedarfter Windowsnutzer gewöhnt bin: USB-Device einstöpseln: Device ist verfügbar. Device ausstöpseln: Device wird abgemeldet (okay, ein simples umount täte mir nicht weh).

Ich habe mir nach FreeBSD-Handbuch Kapitel 17.3 den USB-Anschluss konfiguriert und kann auch manuell mounten. Jedenfalls bei einem USB-Stick. Schließe ich meine mobile FP an, kommt:

$ mount -t msdosfs -o -m=644,-M=755 /dev/da0s1 /mnt/jweiss
mount_msdosfs: /dev/da0s1: Invalid argument

Was auch nicht klappt ist der automount. Auch den habe ich nach FreeBSD-Handbuch eingerichtet. Wenn ich einen Stick einstöpsel, klappt es mal, mal klappt es nicht. Wenn ich den Stick ausstöpsel und wieder einstöpsel klappt es nie.

Wenn ich versuche über Thunar auf das Device zuzugreifen, kriege ich immer eine Fehlermeldung, wonach das Device nicht gemountet werden kann. Laut tail -f /var/log/messages werden aber Sticks und mobile Festplatte korrekt unter da0 erkannt.

Könnt ihr mir helfen?
 
Hallo !

Ich weiss ja nicht welches DE du benutzt ! Ich habe hier Openbox ohne
login-manager im Einsatz !

Im autostart von Openbox ist folgender Eintrag :
pcmanfm --desktop &

Als Dateimanager benutze ich Caja !

Sobald ich einen USB Stick anstecke und " caja --no-desktop" aufrufe
erscheint der Stick !

An den automount Einstellungen habe ich nichts verändert !

Es geht hierbei wohl um gewisse Dienste/Services die geladen
werden !
Allerdings habe ich bisher auch noch nicht rausgefunden was von Caja
geladen wird damit es funktioniert !

Gruss
 

Anhänge

  • Screenshot at 2017-01-24 14:37:03.jpg
    Screenshot at 2017-01-24 14:37:03.jpg
    134,9 KB · Aufrufe: 323
Früher hatte ich solche Automatismen auch gerne genutzt und damals wurde sowohl in GNOME als auch in KDE auf HAL gesetzt, der wiederum dbus benötigt und entsprechende Konfigurationen, von denen es aber eine ganze Menge schon automatisch gab.
Ob und wie das heute gemacht wird, weiß ich gar nicht, denn ich habe mich entschieden, lieber von Hand zu mounten und mache das auch unter OpenBox. Automatisches Mounten hat also nichts mit OpenBox zu tun.
pcmanfm indessen kann so konfiguriert werden, dass er automatisch mounten soll. pcmanfm kann auch Desktops darstellen und verwalten, so wird er von bluescreen genutzt. Es ist aber ein Dateimanager, der zwar anders, aber ähnlich wie caja funktioniert. Ich nutze ihn selbst als Dateimanager und ohne die automatische mount-Funktion.
Es hätte aber auch keinen Sinn, die automatische mount-Funktion zu aktivieren, denn ich habe keine der ZusatzSW installiert oder konfiguriert, die dazu benötigt werden kann. Ich weiß nicht, welche aus der Vielzahl von Möglichkeiten benutzt wird, ob es womöglich der mitgelieferte automount-Dämon von FreeBSD ist oder immer noch etwas mit Hal und Konsorten. Ich denke, dazu müsste es irgendwo eine Dokumentation geben. Womöglich kann auch jemand hier etwas dazu sagen.

mount_msdosfs: /dev/da0p1: No such file or directory
was mir daran nicht gefällt, ist die Vermutung, das der Versuch einfach nicht mehr als ein blinder Versuch ohne Grundlagen ist. Das geht indessen meist schief. Deshalb versuche ich mal etwas mehr Information zu liefern.
An meinem PC stecke ich einen Stick in einen USB-Port und sehe dann:
Code:
pit@senyo ~:- > dmesg | tail -12
ums0: <Microsoft Microsoft IntelliMouse Explorer, class 0/0, rev 1.10/1.14, addr 2> on usbus4
ums0: 5 buttons and [XYZ] coordinates ID=0
ugen3.2: <Kingston> at usbus3
umass1: <Kingston DataTraveler 3.0, class 0/0, rev 3.00/1.00, addr 1> on usbus3
umass1:  SCSI over Bulk-Only; quirks = 0x8100
umass1:11:1: Attached to scbus11
da1 at umass-sim1 bus 1 scbus11 target 0 lun 0
da1: <Kingston DataTraveler 3.0 PMAP> Removable Direct Access SPC-4 SCSI device
da1: Serial Number 08606E6D3FDEBF1087070E4E
da1: 400.000MB/s transfers
da1: 59200MB (121241600 512 byte sectors)
da1: quirks=0x2<NO_6_BYTE>
daraus kann ich ablesen, dass mein Stick da1 geworden ist.

Code:
pit@senyo ~:- > ls /dev | grep da1
ada1
ada1p1
ada1p2
da1
da1s1
zeigt mir, dass es eine Partition da1s1 gibt.

Code:
pit@senyo ~:- > file -s /dev/da1s1
/dev/da1s1: DOS/MBR boot sector, code offset 0x58+2, OEM-ID "MSWIN4.1", sectors/cluster 64, reserved sectors 8016, Media descriptor 0xf8, sectors/track 63, heads 128, hidden sectors 93408, sectors 121148192 (volumes > 32 MB) , FAT (32 bit), sectors/FAT 14792, serial number 0xf81f801a, label: "KINGSTON   "
da sehe ich, dass es ein FAT32 Dateisystem ist.

Mir ist die Ausgabe von mmls lieb geworden, das in sysutils/sleuthkit enthalten ist:
Code:
pit@senyo ~:- > mmls /dev/da1
DOS Partition Table
Offset Sector: 0
Units are in 512-byte sectors

      Slot      Start        End          Length       Description
000:  Meta      0000000000   0000000000   0000000001   Primary Table (#0)
001:  -------   0000000000   0000093407   0000093408   Unallocated
002:  000:000   0000093408   0121241599   0121148192   Win95 FAT32 (0x0c)
erst mit dieser Information weiß ich, wie ich überhaupt mounten kann. Ist es zB ein NTFS oder ein EXT Dateisystem, benutze ich lieber die FUSE-Pakete. Ich könnte vielleicht auch die FreeBSD nativen nutzen, mit gewissen Einschränkungen, aber nicht einfach durch -t msdosfs.

Wie auch immer, das muss man sich erst alles ansehen und dann entscheiden, wie man versucht zu mounten.

Nicht alle Dateisysteme lassen sich schreibend und lesend einbinden, nicht alles von einem einfachen User. Manchmal gelingen Tricks dazu, manchmal ist es einfacher, als root zu agieren.
 
Ich vergaß das Beispiel zu mounten:
Code:
pit@senyo ~:- > mount -t msdosfs -o rw /dev/da1s1 /mnt/usb1
pit@senyo ~:- > mount | grep usb1
/dev/da1s1 on /mnt/usb1 (msdosfs, local, nosuid, mounted by pit)
 
Hi,
du hast recht: Ich habe das aus dem FreeBSD Handbuch wie ein Kochrezept benutzt und habe nur eine grobe Vorstellung davon, was da passiert. Aber irgendwo muss man ja anfangen...

Bei mir heißt das erste USB-Device da0s1. Wenn ich mit tail in den log/messages nachsehe bekomme ich beim Einstecken eines Massenspeichers folgende Ausgaben:

Stick:
Code:
Jan 25 19:46:39 FreeBSD kernel: ugen1.2: <Alcor Tech> at usbus1
Jan 25 19:46:39 FreeBSD kernel: umass0: <Alcor Tech Intenso Twister Line, class 0/0, rev 2.00/1.12, addr 2> on usbus1
Jan 25 19:46:39 FreeBSD kernel: umass0:  SCSI over Bulk-Only; quirks = 0x4101
Jan 25 19:46:39 FreeBSD kernel: umass0:6:0: Attached to scbus6
Jan 25 19:46:39 FreeBSD kernel: da0 at umass-sim0 bus 0 scbus6 target 0 lun 0
Jan 25 19:46:39 FreeBSD kernel: da0: <Intenso Twister Line 8.07> Removable Direct Access SPC-2 SCSI device
Jan 25 19:46:39 FreeBSD kernel: da0: Serial Number 14012000019012
Jan 25 19:46:39 FreeBSD kernel: da0: 40.000MB/s transfers
Jan 25 19:46:39 FreeBSD kernel: da0: 30000MB (61440000 512 byte sectors)
Jan 25 19:46:39 FreeBSD kernel: da0: quirks=0x2<NO_6_BYTE>

Festplatte:
Code:
Jan 25 19:47:14 FreeBSD kernel: ugen1.2: <TOSHIBA> at usbus1
Jan 25 19:47:14 FreeBSD kernel: umass0: <TOSHIBA External USB 3.0, class 0/0, rev 2.10/0.00, addr 2> on usbus1
Jan 25 19:47:14 FreeBSD kernel: umass0:  SCSI over Bulk-Only; quirks = 0x0100
Jan 25 19:47:14 FreeBSD kernel: umass0:6:0: Attached to scbus6
Jan 25 19:47:14 FreeBSD kernel: da0 at umass-sim0 bus 0 scbus6 target 0 lun 0
Jan 25 19:47:14 FreeBSD kernel: da0: <TOSHIBA External USB 3.0 0> Fixed Direct Access SPC-4 SCSI device
Jan 25 19:47:14 FreeBSD kernel: da0: Serial Number 20140326011452F
Jan 25 19:47:14 FreeBSD kernel: da0: 40.000MB/s transfers
Jan 25 19:47:14 FreeBSD kernel: da0: 953869MB (1953525168 512 byte sectors)
Jan 25 19:47:14 FreeBSD kernel: da0: quirks=0x2<NO_6_BYTE>

Soweit war ich schon. Mit deinen ls-Schaltern habe ich jetzt auch rausgefunden, dass ich ein Device da0s1 habe.

Ich habe mir sleuthkit installiert. mmls gibt mir bei der Festplatte aus:
Code:
$ mmls /dev/da0
DOS Partition Table
Offset Sector: 0
Units are in 512-byte sectors

      Slot      Start        End          Length       Description
000:  Meta      0000000000   0000000000   0000000001   Primary Table (#0)
001:  -------   0000000000   0000002047   0000002048   Unallocated
002:  000:000   0000002048   1953521663   1953519616   NTFS / exFAT (0x07)
003:  -------   1953521664   1953525167   0000003504   Unallocated

Also kann ich wohl meine FP nicht mounten, weil sie NTFS ist. Ich habe die ManPage von ntfs-3g gefunden und dachte, damit könnte ich auf die FP zugreifen. Aber meine Shell sagt mir, dass sie ntfs-3g nicht kennt. ich finde das Teil aber auch nicht als Package oder über whereis oder über find:
Code:
$ ntfs-3g /dev/da0s1 /mnt/jweiss
sh: ntfs-3g: not found
$ pkg search ntfs-3g
$ whereis ntfs-3g
ntfs-3g:
$ find ntfs-3g
find: ntfs-3g: No such file or directory

Könnt ihr mir sagen, wo das Ding ist? Oder soll ich anders auf die Festplatte zugreifen?

Den Stick habe ich mit 'mount -t msdosfs -o rw /dev/da0s1 /mnt/jweiss' problemlos geladen bekommen.
Ich gebe dir Recht: Automount muss nicht zwinged sein. Oder ich kann das auch auf später verschieben, wenn ich fitter mit dem System bin.

Aber die Festplatte mit dem NTFS-System würd ich gerne noch mounten können.
 
pkg search fuse | grep ntfs

also, dieses ntfs-3g ist eben eine der vielen FUSE-Dinger und du kannst das so einfach finden, dir aber auch mal alle FUSE's ansehen. Vielleicht möchtest du daraus noch andere haben, etwa ext4fuse oder simple-mtpfs für einfaches mounten von Android-Geräten.

ntfs-3g -o rw /dev/da1s1 /mnt/usb1
wäre dann ein einfacher mount-Befehl, der allerdings nur als root gelingen würde und hier das gerät da1 und davon die erste Partition meint.

der Befehl find ist sehr hilfreich, weshalb du damit mehr Zeit verbringen solltest. Er kennt sehr viele Möglichkeiten. Grundsätzlich wird er meist in etwa so angewendet:
find wo was "Suchtext". Wo ist der Pfad, in dem gesucht werden soll. was kann eine Menge von Dingen sein, sieh mal in der man page nach. Meist sucht man nach Namen und dann käme name oder iname als Option in Frage. Der Suchtext steht dann in Anführungszeichen.
Code:
pit@senyo ~:- > find .config/orage -iname "*.txt"
.config/orage/orage_default_alarm.txt
pit@senyo ~:- > find ./.config/orage -iname "*.txt"
./.config/orage/orage_default_alarm.txt
pit@senyo ~:- > find ~/.config/orage -iname "*.txt"
/home/pit/.config/orage/orage_default_alarm.txt
pit@senyo ~:- > find /usr/home/pit/.config/orage -iname "*.txt"
/usr/home/pit/.config/orage/orage_default_alarm.txt
pit@senyo ~:- > find .config -iname "default*.txt"
pit@senyo ~:- > find .config -iname "*default*.txt"
.config/orage/orage_default_alarm.txt
pit@senyo ~:- > find .config -iname "*default*txt"
.config/orage/orage_default_alarm.txt
pit@senyo ~:- > find .config -iname "*default*"
.config/orage/orage_default_alarm.txt
.config/fbpanel/default.save
.config/fbpanel/usr-local-share-fbpanel-images/default.xpm
.config/fbpanel/default
.config/pcmanfm/default
 
noch nen kleinen Nachschlag, wenn es dann installiert ist:
Code:
pit@senyo ~:- > whereis ntfs-3g
ntfs-3g: /usr/local/bin/ntfs-3g /usr/local/man/man8/ntfs-3g.8.gz
pit@senyo ~:- > pkg which /usr/local/bin/ntfs-3g
/usr/local/bin/ntfs-3g was installed by package fusefs-ntfs-2016.2.22_1
 
MoinMoin !

Also meine Win-Platte wird wie folgt gemounted (fstab) :

/dev/ada4s1 /mnt/windows ntfs locale=de_DE.UTF-8,late,rw,mountprog=/usr/local/bin/ntfs-3g 0 0

ntfs - 3g :

cd /usr/ports/sysutils/fusefs-ntfs/ && make install clean

oder

pkg install fusefs-ntfs

in /boot/loader.conf folgenden Eintrag zufügen :

fuse_load="YES"

in /etc/rc.conf :

fusefs_enable="YES"

reboot !

Gruss

PS: Wichtig auch in RC.conf :
dbus_enable="YES"
hald_enable="YES"
 
Hallo Bluescreen,

danke für die Tipps. Ich habe bloß eines Sorge: Bei mir werden sowohl Stick als auch Festplatte beim Einstöpseln als da0s1 registriert. Wenn ich jetzt in fstab festlege, dass dort eine NTFS-Festplatte zu erwarten ist, was passiert denn, wenn ich den Stick einstöpsel? Umgekehrt habe ich es ja versucht und mit mount -t msdosfs die Platte logischerweise (wie ich jetzt weiß) nicht zum Laufen gekriegt.
 
bluescreen hat oben nur ein Beispiel gegeben.
In die fstab gehören nur solche Platten (Partitionen oder genauer Dateisysteme), die intern verbaut sind oder evtl noch Netzwerkfreigaben, die garantiert immer vorhanden sind.
Man kann darüber streiten und vielleicht auch ständig angeschlossene externe Platten so einbinden.
Doch genau für derartige Konstrukte sind automount-Mechanismen erfunden worden und die können auch aus einem kleinen Script bestehen, das zur Bootzeit abfragt, ob ein bestimmtes Dateisystem erreichbar ist und es dann einbinden.
In allen Fällen empfiehlt sich die Benutzung von UUIDs oder Labeln, denn, die Zurodnung der Geräte erfolgt dynamisch und muss nicht immer gleich sein.
Wenn ich sonst kein Gerät habe, das mit da(n) angesprochen wird, dann wird mein erstes Gerät, das ich hinzufüge, da0 und das nächste wird da1 und das nächste da2 und so weiter.
Entferne ich nun da1, dann kann ich nicht mit Sicherheit sagen, ob das nächste Gerät da3 wird, oder ob da1 bereits wieder freigegeben wurde und verwendet werden kann.
Deshalb muss man immer vorher nachsehen.
Außerdem gibt es selten auch Geräte, die aus zwei "internen Geräten" bestehen. Die belegen dann unter Umständen gleich zwei Plätze. Aber das galt bei dir ja nicht.
da0s1 ist also nicht auf deine Platte festgelegt oder den Stick, sondern das ist die erste Partition auf dem ersten erkannten da-Gerät.
 
Habe jetzt ntfs-3g installiert. Leider bekomme ich eine Fehlermeldung
Code:
fuse: failed to open fuse device: No such file or directory

... muss leider aufhören, hab noch einen Termin...
 
damit fuse funktioniert, muss auch das fuse-Kernel-Modul geladen sein, wie bluescreen oben schon erwähnte. Ich denke, die Installationsmeldungen liefern entsprechende Infos.
 
Du hast recht, ich hatte den /boot/loader.conf vergessen. Jetzt funktioniert es tadellos. Wenn man schon Hilfe bekommt, dann sollte man wenigstens konzentriert lesen.
Bezüglich automount muss ich sagen, dass ich momentan wahrscheinlich wirklich lieber die Devices zu Fuß mounte. So weiß ich auch, welches Device welche Kennung bekommen hat (bei den da's halt in der Reihenfolge, in der ich sie einstecke).

Ich bin euch allen aber wirklich sehr dankbar. Ihr habt mir jetzt zu einem Punkt geholfen, an dem mein Rechner erstmal läuft und die grundlegenden Sachen kann (mounten, drucken, Internet usw.). Ich werde jetzt erstmal nicht wild weiter installieren, sondern mich mit den Grundlagen beschäftigen (find, grep, Benutzerverwaltung, pw, chown usw.). Natürlich behalte ich mir vor, die eine oder andere Verständnisfrage zu stellen. Aber erst, nachdem ich mich an den manpages versucht habe. Versprochen:)
 
Zurück
Oben