Из того, что я прочитал, при монтировании сетевого ресурса через 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
.
Каталог ~/.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
.
Решил проблему (вид).
В Ubuntu 12.10 точка монтирования появляется в /run/user/(your username)/gvfs/sftp\:host\=\192.168.xxx.xxx
.
Надеюсь, что помогает
У меня похожая проблема с моей системой 12.04 Precise.
Диски, которые выглядят смонтированными в Nautilus, не появляются в ~/.gvfs
, особенно после цикла приостановки / возобновления. gvfs-fuse-daemon
работает, но его уничтожение и перезапуск не решают проблему.
Я обнаружил, что перезапуск Nautilus после nautilus -q
заставляет gvfs-fuse-daemon
и Nautilus снова взаимодействовать - точки подключения снова появляются.
В Ubuntu 12.10 пути были изменены:
$ mount |grep gvfs
gvfsd-fuse on /run/user/pcm/gvfs type fuse.gvfsd-fuse (rw,nosuid,nodev,user=pcm)
В более новых версиях Ubuntu gvfs по умолчанию монтируется в /run/user/$USER/gvfs/
.
Вы можете проверить, где находится точка монтирования по умолчанию, посмотрев строку gvfsd-fuse вашего пользователя в /etc/mtab
.
Когда я хочу получить доступ к файлам, к которым предоставлен общий доступ, с компьютера с Windows напрямую (не просматривая Nautilus), я подключаю общий ресурс к папке в моем домашнем каталоге.
Например. Там, если в домене mydomain
есть машина Windows с IP-адресом 192.168.16.2
, которая имеет общую папку shared
, и у меня есть каталог в домашнем каталоге с именем mnt
, я могу смонтировать общий ресурс на [ 117] и получить к нему доступ, как если бы он находился в моем домашнем каталоге: в общем каталоге 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
Я задал связанный вопрос для моей системы Debian, и ответ был следующим:
apt-get install gvfs-fuse
adduser <username> fuse
Затем перезагрузите компьютер. После монтирования GVFS (через Nautilus) каталог общего доступа будет находиться в одном из двух мест, в зависимости от того, какая у вас версия Debian или Ubuntu:
/run/user/<username>/gvfs
~/.gvfs
В 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.