Warum werden meine gvfs-Mounts nicht unter ~ / .gvfs oder / run / user / <login> / gvfs angezeigt?


35

Nach dem, was ich gelesen habe, sollte beim Mounten einer Netzwerkfreigabe über Nautilus oder gvfs-mountden Mountpoint drin sein ~/.gvfs. Dies scheint bei mir nicht der Fall zu sein: Ich habe versucht, sowohl eine FTP- als auch eine SMB-Freigabe über Nautilus und gvfs-mountunter Ubuntu Maverick und Natty zu mounten, und in keinem Fall habe ich einen Mount-Punkt unter gesehen ~/.gvfs. Ich kann auf die Freigaben zugreifen, die ich gerade in Nautilus finde, möchte aber Zugriff über die Befehlszeile haben, weshalb ich einen Mount-Punkt im Dateisystem benötige.

Bearbeiten: Das Debuggen nach der Antwort von James Henstridge und dem Kommentar von enzotib ergab, dass auf meinem Laptop gvfs-fuse-daemongvfs-Bereitstellungen ausgeführt werden und folglich in angezeigt werden ~/.gvfs, wohingegen auf den beiden Arbeitsstationen, auf denen ~/.gvfssie leer blieben, gvfs-fuse-daemonkeine ausgeführt wurden. Auf allen drei Maschinen gibt es andere gvfs Prozesse ausgeführt werden : gvfsd, gvfs-afc-volume-monitor...

Auf dem Laptop mount | fgrep gvfsergibt sich

gvfs-fuse-daemon on /home/xxx/.gvfs type fuse.gvfs-fuse-daemon (rw,nosuid,nodev,user=xxx)

Das wirft die Fragen auf:

  • Wie werden Freigaben bereitgestellt, ohne gvfs-fuse-daemonausgeführt zu werden? Gibt es in diesem Fall keinen Einhängepunkt und ist jeder Zugriff auf die Freigabe ein Aufruf der gvfs-Bibliothek? Welcher Daemon ist verantwortlich? gvfsd?
  • Was ist die Rolle von gvfs-fuse-daemon? Erstellt es nur einen Sicherungsmontagepunkt in ~/.gvfs?

Update: Ab 12.10 sind die Reittiere unter /run/user/<login>/gvfs.


2
Können Sie die Ausgabe von zeigen mount | grep gvfs?
Enzotib

Antworten:


12

Das ~/.gvfsVerzeichnis sollte ein FUSE-Mount sein, der vom gvfs-fuse-daemonProzess verarbeitet wird. Wenn das Verzeichnis leer zu sein scheint, weist dies darauf hin, dass gvfs-fuse-daemones nicht richtig gestartet wurde.

Sie können versuchen, es manuell mit dem folgenden Befehl zu starten:

/usr/lib/gvfs/gvfs-fuse-daemon ~/.gvfs

Wenn dies fehlschlägt, können Sie versuchen, zu überprüfen, ob dort noch etwas bereitgestellt ist, oder zuerst das Verzeichnis ~ / .gvfs löschen und neu erstellen. Wenn die Probleme weiterhin bestehen, können Sie Ihre Frage aktualisieren und Fehlermeldungen bereitstellen, die von gedruckt wurden gvfs-fuse-daemon?

** Am 14.04 wird der Daemon aufgerufen gvfsd-fuseund befindet sich in /usr/lib/gvfs/gvfsd-fuse.


1
Weitere Nachforschungen haben ergeben, dass dieser gvfsdVorgang gvfs-fuse-daemonautomatisch gestartet werden soll, wenn gvfsddie erste Anforderung zum Zugriff auf ein Remote-Dateisystem eingeht. Es gibt auch einen Fehler in Ubuntu / Debian, der das ~/.gvfsVerzeichnis unlesbar macht, wenn es gvfs-fuse-daemonabstürzt, und die Fehlermeldung erzeugt, dass der Transport-Endpunkt nicht verbunden ist .
Kynan

Wurde jemals behoben, warum gvfsdnicht gvfs-fuse-daemonautomatisch gestartet wird? Unter RHEL scheint es für Root-Benutzer, aber nicht für nicht privilegierte Benutzer, wie erwartet zu funktionieren.
Aaron Copley

Beantwortet nicht wirklich die Frage "Welche Rolle spielt der gvfs-fuse-daemon?" Und "Wie werden Freigaben bereitgestellt, ohne dass der gvfs-fuse-daemon ausgeführt wird?". gvfs-fuse-daemon erlaubt Optionen wie allow_root, die bei Verwendung von gvfs-mount standardmäßig ignoriert werden. Die Beantwortung dieser Fragen würde also helfen, dieses ewige Geheimnis hier zu lösen.
Nuzzolilo

Es gibt noch eine Einschränkung! gvfs-mountDBUS erfordert , und Sie werden nur einen Mount - Punkt erhalten , wenn gvfs-mountverwendet DESSEN DBUS SESSION wie gvfs-fuse-daemon. Wenn Sie also eine SSH auf einem Computer ausführen und eine dbus-daemonfür Ihre Sitzung starten, müssen Sie auch eine Person gvfs-fuse-daemonfür Ihre Sitzung erzeugen .
User1129682

Nun, es ist 5 Jahre später und dies scheint immer noch ein Problem zu sein
Stuart Axon

20

Löste das Problem (Art von).

Unter Ubuntu 12.10 erscheint der Mountpoint in /run/user/(your username)/gvfs/sftp\:host\=\192.168.xxx.xxx.

hoffentlich hilft das


4

In Ubuntu 12.10 wurden die Pfade geändert:

$ mount |grep gvfs
gvfsd-fuse on /run/user/pcm/gvfs type fuse.gvfsd-fuse (rw,nosuid,nodev,user=pcm)

3

Unter Debian 6.0 keuchend, mit lxde und nautilus. Ich fand das ~ / .gvfs-Verzeichnis auch leer. Ich habe versucht zu rennen

/usr/lib/gvfs/gvfs-fuse-daemon ~/.gvfs

Aber es hat mir gesagt: / dev / fuse: Erlaubnis verweigert.

$ ll /dev/fuse
crw-rw---T 1 root fuse 10, 229 Dec 21 11:59 /dev/fuse

Ich dachte, dass es vielleicht daran liegt, dass ich nicht in der Sicherungsgruppe bin, dann habe ich mein Benutzerkonto zu dieser Gruppe hinzugefügt. Nach einem Neustart wird der gvfs-Mount in ~ / .gvfs korrekt angezeigt.


3

Ich habe ein ähnliches Problem mit meinem 12.04 Precise-System.

Laufwerke, die in Nautilus aktiviert zu sein scheinen ~/.gvfs, werden insbesondere nach einem Unterbrechungs- / Wiederaufnahmezyklus nicht in angezeigt. gvfs-fuse-daemonläuft, aber das Beenden und Neustarten behebt das Problem nicht.

Ich habe festgestellt, dass beim Neustart von Nautilus nach nautilus -qUrsachen gvfs-fuse-daemonund bei der erneuten Zusammenarbeit von Nautilus die Einhängepunkte wieder angezeigt werden.


3

In neueren Versionen von Ubuntu wird gvfs standardmäßig in bereitgestellt /run/user/$USER/gvfs/.

Sie können selbst überprüfen, wo sich der Standardeinhängepunkt befindet, indem Sie nach der Zeile gvfsd-fuse Ihres Benutzers suchen /etc/mtab.


2

Ich habe eine verwandte Frage für mein Debian-System gestellt und die Antwort lautete:

apt-get install gvfs-fuse
adduser <username> fuse

Starten Sie dann neu. Nach einem GVFS-Mount (über Nautilus) befindet sich das Freigabe-Verzeichnis an einer von zwei Stellen, je nachdem, welche Debian- oder Ubuntu-Version Sie haben:

/run/user/<username>/gvfs
~/.gvfs

Ich bin mir ziemlich sicher, dass Sie nicht neu starten müssen. A systemctl --user restart gvfs-daemonhat den Trick für mich getan.
Torkel Bjørnson-Langen

0

Wenn ich direkt auf Dateien zugreifen möchte, die von einem Windows-Computer freigegeben wurden (ohne Nautilus zu durchsuchen), mounte ich die Freigabe in einem Ordner in meinem Ausgangsverzeichnis.

Beispielsweise. Gibt es einen Windows-Computer mit der IP-Adresse 192.168.16.2in der Domäne mydomain, für den ein Ordner freigegeben ist?shared und ich ein Verzeichnis in meinem Ausgangsverzeichnis habe mnt, kann ich die Freigabe aktivieren mntund darauf zugreifen, als ob sie sich in meinem Ausgangsverzeichnis befindet.

sudo mount -t cifs "//192.168.16.2/shared" /home/stacey/mnt -o credentials=credentials,uid=stacey,gid=stacey

wo Anmeldeinformationen enthalten:

username=stacey
password=mypassword
domain=mydomain

Jetzt kann ich verwenden ls /home/stacey/mnt die Dateien und Verzeichnisse im freigegebenen Verzeichnis sharedauflisten 192.168.16.2und auf alle Dateien innerhalb dieses Einhängepunkts zugreifen, als würde ich eine Datei auf meiner lokalen Festplatte speichern.

Weitere Informationen zum Mounten von SMB-Freigaben erhalten Sie mit:

man mount.cifs

Nicht das, was der OP verlangte.
Enzotib

2
Nein, aber kynan sagte, "aber ich möchte Zugriff über die Befehlszeile haben, weshalb ich einen Einhängepunkt im Dateisystem benötige", also versuche ich nur zu helfen.
Stacey Richards

Vielen Dank. Ich hätte erwähnen sollen, dass ich diese Lösung in Betracht gezogen habe, aber sie hat imho 2 Hauptnachteile, die sie unmöglich machen: 1) Die Datei mit den Anmeldeinformationen muss das Kennwort im Klartext enthalten, was auf einem gemeinsam genutzten Computer nicht akzeptabel ist. 2) Sie erfordert Root-Berechtigungen und ich brauche eine Lösung , die auch auf Maschinen arbeitet , wo ich nicht über sudo
Kynan

0

Zur Zeit...

#!/bin/bash
# Add to Cron
# */1 * * * * /root/fixGvfs
w | grep -v root | tail -n +3 | awk '{print $1}' > /tmp/fixGvfsUsers
while read usuario
do
  id=$(id -u $usuario)
  if [ ! -f "/tmp/fixGvfs${id}" ]; then
    umount /run/user/${id}/gvfs
    if [ $? -eq 0 ]; then
      su - $usuario -c "/usr/bin/pkill gvfs*"
      touch "/tmp/fixGvfs${id}"
    fi
  fi
done < /tmp/fixGvfsUsers

3
Eine kurze Erklärung, was dieses Skript tun wird, wäre schön. Wann soll der Cron-Job laufen?
Mook765
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.