为什么我的gvfs挂载不会显示在〜/ .gvfs或/ run / user / / gvfs下?
根据我的阅读,当通过nautilus或gvfs-mount
网络共享时,挂载点应该在~/.gvfs
。 对我来说情况似乎并非如此:我尝试在Ubuntu Maverick和Natty下同时通过nautilus和gvfs-mount
FTP和SMB共享,并且在所有情况下我都没有看到~/.gvfs
下的任何挂载点。 我可以访问nautilus中找到的共享,但我想通过命令行访问,这就是我需要在文件系统中安装点的原因。
编辑:按照James Henstridge的回答进行调试,enzotib的评论显示,在我的笔记本电脑上gvfs-fuse-daemon
正在运行,因此gvfs挂载显示在~/.gvfs
,而在2个工作站上~/.gvfs
仍为空gvfs-fuse-daemon
~/.gvfs
gvfs-fuse-daemon
没有运行。 在所有3台机器上都运行其他gvfs进程: gvfsd
, gvfs-afc-volume-monitor
,…
在笔记本电脑上, mount | fgrep gvfs
mount | fgrep gvfs
产量
gvfs-fuse-daemon on /home/xxx/.gvfs type fuse.gvfs-fuse-daemon (rw,nosuid,nodev,user=xxx)
这引出了一些问题:
- 没有运行
gvfs-fuse-daemon
情况下如何安装共享? 在这种情况下是否没有创建挂载点并且每次访问共享都是gvfs库调用? 哪个守护进程负责?gvfsd
? -
gvfs-fuse-daemon
的作用是什么? 它只在~/.gvfs
创建一个保险丝挂载点吗?
更新:在12.10及更高版本中,安装位于/run/user//gvfs
。
~/.gvfs
目录应该是由gvfs-fuse-daemon
进程处理的FUSE挂载。 如果目录显示为空,则表示gvfs-fuse-daemon
未正确启动。
您可以尝试使用以下命令手动启动它:
/usr/lib/gvfs/gvfs-fuse-daemon ~/.gvfs
如果失败,您可以尝试检查是否安装了其他任何内容,甚至首先删除并重新创建〜/ .gvfs目录。 如果事情仍然失败,您可以更新您的问题并提供由gvfs-fuse-daemon
打印的任何错误消息吗?
**在14.04,守护进程被称为gvfsd-fuse
,可以在/usr/lib/gvfs/gvfsd-fuse
。
解决了问题(种类)。
在Ubuntu 12.10上,mountpoint出现在/run/user/(your username)/gvfs/sftp\:host\=\192.168.xxx.xxx
。
希望有所帮助
在较新版本的Ubuntu中,gvfs默认安装在/run/user/$USER/gvfs/
。
您可以通过在/etc/mtab
查找用户的gvfsd-fuse行来检查自己的默认挂载点。
在Ubuntu 12.10中,路径发生了变化:
$ mount |grep gvfs gvfsd-fuse on /run/user/pcm/gvfs type fuse.gvfsd-fuse (rw,nosuid,nodev,user=pcm)
在Debian 6.0喘息,lxde和nautilus。 我发现〜/ .gvfs目录也是空的。 我试着跑
/usr/lib/gvfs/gvfs-fuse-daemon ~/.gvfs
但它告诉我:/ dev / fuse:权限被拒绝。
$ ll /dev/fuse crw-rw---T 1 root fuse 10, 229 Dec 21 11:59 /dev/fuse
我想也许是因为我不在保险丝组中,然后我将我的用户帐户添加到该组。 重启后,gvfs挂载正确显示在〜/ .gvfs中。
我的12.04精确系统有类似的问题。
出现在Nautilus中的驱动器不会出现在~/.gvfs
,特别是在挂起/恢复周期之后。 gvfs-fuse-daemon
正在运行,但是杀死它并重新启动并不能解决问题。
我发现在nautilus -q
之后重启Nautilus导致gvfs-fuse-daemon
和Nautilus再次合作 – 挂载点重新出现。
我为我的Debian系统问了一个相关的问题 , 答案是:
apt-get install gvfs-fuse adduser fuse
然后重启。 在GVFS挂载(通过Nautilus)之后,共享目录将位于两个位置之一,具体取决于您拥有的Debian或Ubuntu版本:
/run/user//gvfs ~/.gvfs
当我想直接访问从Windows机器共享的文件(而不是浏览Nautilus)时,我将共享安装在我的主目录中的文件夹上。
例如。 如果在域mydomain
上有一个IP地址为192.168.16.2
的Windows机器,该文件夹共享为shared
并且我的主目录中有一个名为mnt
目录,我可以在mnt
上挂载该共享并像访问它一样访问它在我的主目录中:
sudo mount -t cifs "//192.168.16.2/shared" /home/stacey/mnt -o credentials=credentials,uid=stacey,gid=stacey
凭证包含的位置:
username=stacey password=mypassword domain=mydomain
现在我可以使用ls /home/stacey/mnt
列出192.168.16.2
上共享的共享目录中的文件和目录,并访问此挂载点中的任何文件,就像我本地硬盘上的文件一样。
您可以通过以下方式获得有关安装SMB共享的更多信
man mount.cifs
目前…
#!/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