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

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

Редактировать: Отладка после ответа Джеймса Хенстриджа и комментария энзотиба показала, что на моем ноутбуке gvfs-fuse-daemon работает и, следовательно, gvfs монтируются в ~/.gvfs, тогда как на 2 рабочих станциях, где ~/.gvfs осталось пустой gvfs-fuse-daemon не был запущен. На всех 3 машинах выполняются другие процессы gvfs: gvfsd, gvfs-afc-volume-monitor, ...

На ноутбуке 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/<login>/gvfs.

35
задан 22 December 2012 в 01:16

9 ответов

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

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

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

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

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

0
ответ дан 22 December 2012 в 01:16

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

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

Надеюсь, что помогает

0
ответ дан 22 December 2012 в 01:16

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

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

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

0
ответ дан 22 December 2012 в 01:16

В Ubuntu 12.10 пути были изменены:

$ mount |grep gvfs
gvfsd-fuse on /run/user/pcm/gvfs type fuse.gvfsd-fuse (rw,nosuid,nodev,user=pcm)
0
ответ дан 22 December 2012 в 01:16

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

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

0
ответ дан 22 December 2012 в 01:16

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

Например. Там, если в домене mydomain есть машина Windows с IP-адресом 192.168.16.2, которая имеет общую папку shared, и у меня есть каталог в домашнем каталоге с именем mnt, я могу смонтировать общий ресурс на [ 117] и получить к нему доступ, как если бы он находился в моем домашнем каталоге: в общем каталоге shared на 192.168.16.2 и доступ к любому файлу в этой точке монтирования, как к файлу на локальном жестком диске.

Вы можете получить больше информации о монтировании общих ресурсов SMB с:

man mount.cifs
0
ответ дан 22 December 2012 в 01:16

На данный момент ...

#!/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
0
ответ дан 22 December 2012 в 01:16

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

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

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

/run/user/<username>/gvfs
~/.gvfs
0
ответ дан 22 December 2012 в 01:16

В Debian 6.0 wheezy с 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.

0
ответ дан 22 December 2012 в 01:16

Другие вопросы по тегам:

Похожие вопросы: