Почему мои монстры gvfs не отображаются в ~ / .gvfs или / run / user / <login> / gvfs?

Из того, что я прочитал, при установке сетевого ресурса через gvfs-mount или gvfs-mount mount точка монтирования должна быть в ~/.gvfs . Мне кажется, это не так: я попытался установить как FTP, так и SMB-ресурс с помощью как gvfs-mount так и gvfs-mount под Ubuntu Maverick и Natty, и ни в одном из случаев я не видел точки монтирования в ~/.gvfs . Я могу получить доступ к ресурсам только в nautilus, но я хочу получить доступ через командную строку, поэтому мне нужна точка монтирования в файловой системе.

Отредактируйте: отладка после ответа Джеймса Хенстриджа и комментария enzotib показала, что на моем ноутбуке gvfs-fuse-daemon работает, и, следовательно, монтируются gvfs в ~/.gvfs , тогда как на 2 рабочих станциях, где ~/.gvfs остается пустым gvfs-fuse-daemon не работал. На всех трех машинах работают другие процессы 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-fuse-daemon ? Нет ли в этом случае точки монтирования и каждый доступ к общему ресурсу вызывает вызов библиотеки gvfs? Какой демон несет ответственность? gvfsd ?
  • Какова роль gvfs-fuse-daemon ? Это только создает точку подключения плавкого предохранителя в ~/.gvfs ?

Обновление: 12.10 и более поздние /run/user/<login>/gvfs под /run/user/<login>/gvfs .

~/.gvfs должен быть ~/.gvfs FUSE, обработанной gvfs-fuse-daemon . Если каталог окажется пустым, это указывает на то, что gvfs-fuse-daemon не запускался правильно.

Вы можете попробовать запустить его вручную с помощью следующей команды:

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

Если это не удается, вы можете попробовать проверить, монтируется ли там что-либо еще, или даже сначала удалить и воссоздать каталог ~ / .gvfs. Если все еще не gvfs-fuse-daemon , можете ли вы обновить свой вопрос и предоставить любые сообщения об ошибках, напечатанные gvfs-fuse-daemon ?

** В 14.04 демона называется gvfsd-fuse и его можно найти в /usr/lib/gvfs/gvfsd-fuse .

Решил проблему (вид).

На Ubuntu 12.10 точка монтирования отображается в /run/user/(your username)/gvfs/sftp\:host\=\192.168.xxx.xxx .

надеюсь, это поможет

В 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 wheezy, с lxde и nautilus. Я также нашел каталог ~ / .gvfs. Я попытался запустить

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

Но он сказал мне: / dev / fuse: Permission Denied.

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

Я думал, что, возможно, это потому, что я не в группе плавких предохранителей, а затем добавил свою учетную запись в эту группу. После перезагрузки gvfs mount отображается в ~ / .gvfs правильно.

У меня аналогичная проблема с моей системой 12.04 Precise.

Приводы, которые появляются в Nautilus, не отображаются в ~/.gvfs , особенно после цикла приостановки / возобновления. gvfs-fuse-daemon запущен, но его убить и перезапустить не исправить проблему.

Я обнаружил, что перезапуск Nautilus после gvfs-fuse-daemon nautilus -q заставляет gvfs-fuse-daemon и Nautilus снова взаимодействовать – снова появляются точки монтирования.

В новых версиях Ubuntu gvfs по умолчанию устанавливается на /run/user/$USER/gvfs/ in /run/user/$USER/gvfs/ .

Вы можете проверить себя, где находится точка монтирования по умолчанию, ища линию gvfsd-fuse вашего пользователя в /etc/mtab .

Я задал соответствующий вопрос для своей системы Debian, и ответ был:

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

Затем перезагрузитесь. После монтирования GVFS (через Nautilus) каталог share будет находиться в одном из двух мест, в зависимости от того, какая версия Debian или Ubuntu у вас есть:

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

Когда я хочу получить доступ к файлам, совместно используемым с компьютера Windows напрямую (не просматривая Nautilus), я монтирую общий ресурс в папке в моем домашнем каталоге.

Например. Там, если есть Windows-машина с IP-адресом 192.168.16.2 в домене mydomain , у которого есть папка, совместно используемая 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 чтобы перечислять файлы и каталоги в общем каталоге, shared на 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