Ubuntu – Why do the gvfs mounts not show up under ~/.gvfs or /run/user//gvfs


From what I read, when mounting a network share via nautilus or gvfs-mount the mount point should be in ~/.gvfs. This seems not to be the case for me: I tried mounting both an FTP and SMB share via both nautilus and gvfs-mount under both Ubuntu Maverick and Natty and in none of the cases did I see any mount point under ~/.gvfs. I can access the shares just find in nautilus, but I want to have access via the command line, which is why I need a mount point in the file system.

Edit: Debugging following James Henstridge's answer and enzotib's comment revealed that on my laptop gvfs-fuse-daemon is running and consequently gvfs mounts show up in ~/.gvfs, whereas on the 2 workstations where ~/.gvfs remained empty gvfs-fuse-daemon was not running. On all 3 machines there are other gvfs processes running: gvfsd, gvfs-afc-volume-monitor, …

On the laptop, mount | fgrep gvfs yields

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

That raises the questions:

  • How are shares mounted without gvfs-fuse-daemon running? Is there no mount point created in that case and is every access to the share a gvfs library call? Which daemon is responsible? gvfsd?
  • What's the role of gvfs-fuse-daemon? Does it only create a fuse mount point in ~/.gvfs?

Update: On 12.10 and later, mounts are under /run/user/<login>/gvfs.

Best Answer

The ~/.gvfs directory should be a FUSE mount handled by the gvfs-fuse-daemon process. If the directory appears to be empty, it would indicate that gvfs-fuse-daemon did not start correctly.

You could try starting it manually with the following command:

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

If that fails, you could try checking whether anything else is mounted there, or even delete and recreate the ~/.gvfs directory first. If things still fail, could you update your question and provide any error messages printed by gvfs-fuse-daemon?

** On 14.04 the daemon is called gvfsd-fuse and can be found in /usr/lib/gvfs/gvfsd-fuse.