¿Por qué mis montajes gvfs no aparecen en ~ / .gvfs o / run / user / <login> / gvfs?


35

Por lo que leí, al montar un recurso compartido de red a través de nautilus o gvfs-mountel punto de montaje debería estar ~/.gvfs. Este no parece ser el caso para mí: intenté montar un recurso compartido FTP y SMB a través de nautilus y gvfs-mountbajo Ubuntu Maverick y Natty y en ninguno de los casos vi ningún punto de montaje debajo ~/.gvfs. Puedo acceder a los recursos compartidos que acabo de encontrar en nautilus, pero quiero tener acceso a través de la línea de comandos, por eso necesito un punto de montaje en el sistema de archivos.

Editar: La depuración después de la respuesta de James Henstridge y el comentario de enzotib revelaron que en mi computadora portátil se gvfs-fuse-daemonestá ejecutando y, en consecuencia, aparecen los montajes gvfs ~/.gvfs, mientras que en las 2 estaciones de trabajo donde ~/.gvfspermanecía vacía gvfs-fuse-daemonno se estaba ejecutando. En los 3 máquinas hay otros procesos gvfs ejecutando: gvfsd, gvfs-afc-volume-monitor, ...

En la computadora portátil, los mount | fgrep gvfsrendimientos

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

Eso plantea las preguntas:

  • ¿Cómo se montan los recursos compartidos sin gvfs-fuse-daemonejecutarse? ¿No hay un punto de montaje creado en ese caso y cada acceso al recurso compartido es una llamada a la biblioteca gvfs? ¿Qué demonio es responsable? gvfsd?
  • ¿Cuál es el papel de gvfs-fuse-daemon? ¿Solo crea un punto de montaje de fusible ~/.gvfs?

Actualización: el 12.10 y posteriores, las monturas están debajo /run/user/<login>/gvfs.


2
¿Puedes mostrar la salida de mount | grep gvfs?
enzotib

Respuestas:


12

El ~/.gvfsdirectorio debe ser un montaje FUSE manejado por el gvfs-fuse-daemonproceso. Si el directorio parece estar vacío, indicaría que gvfs-fuse-daemonno se inició correctamente.

Puede intentar iniciarlo manualmente con el siguiente comando:

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

Si eso falla, puede intentar verificar si hay algo más montado allí, o incluso eliminar y volver a crear el directorio ~ / .gvfs primero. Si las cosas siguen fallando, ¿podría actualizar su pregunta y proporcionar algún mensaje de error impreso por gvfs-fuse-daemon?

** El 14.04 se llama al demonio gvfsd-fusey se puede encontrar en /usr/lib/gvfs/gvfsd-fuse.


1
Un poco más de investigación reveló que gvfsdse supone que se iniciará gvfs-fuse-daemonautomáticamente cuando gvfsdreciba la primera solicitud para acceder a un sistema de archivos remoto. También hay un error en ubuntu / debian que hace que el ~/.gvfsdirectorio sea ilegible cuando se gvfs-fuse-daemonbloquea y produce el mensaje de error El punto final de transporte no está conectado .
kynan

¿Se resolvió alguna vez por qué gvfsdno se inicia gvfs-fuse-daemonautomáticamente? Bajo RHEL, parece funcionar como se espera para usuarios root pero no privilegiados.
Aaron Copley

Realmente no responde a la pregunta "¿Cuál es el papel de gvfs-fuse-daemon" y "¿Cómo se montan los recursos compartidos sin ejecutar gvfs-fuse-daemon?". gvfs-fuse-daemon permite opciones como allow_root que se ignoran por defecto cuando se usa gvfs-mount. Entonces responder esas preguntas ayudaría a resolver este misterio eterno aquí.
Nuzzolilo

¡Hay otra advertencia! gvfs-mountrequiere DBUS y solo obtendrá un punto de montaje cuando gvfs-mountuse LA MISMA SESIÓN DBUS que gvfs-fuse-daemon. Por lo tanto, si está ingresando SSH en una máquina y activando una dbus-daemonsesión, también debe generar un individuo gvfs-fuse-daemonpara su sesión.
user1129682

Bueno, son 5 años después y esto todavía parece ser un problema
Stuart Axon

20

Resuelto el problema (tipo de).

En Ubuntu 12.10 aparece el punto de montaje /run/user/(your username)/gvfs/sftp\:host\=\192.168.xxx.xxx.

Espero que ayude


4

En Ubuntu 12.10 las rutas fueron cambiadas:

$ mount |grep gvfs
gvfsd-fuse on /run/user/pcm/gvfs type fuse.gvfsd-fuse (rw,nosuid,nodev,user=pcm)

3

En Debian 6.0 wheezy, con lxde y nautilus. Encontré el directorio ~ / .gvfs vacío también. Traté de correr

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

Pero me dijo: / dev / fuse: Permiso denegado.

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

Pensé que tal vez sea porque no estoy en el grupo de fusibles, luego agregué mi cuenta de usuario a ese grupo. Después de reiniciar, el montaje gvfs se muestra en ~ / .gvfs correctamente.


3

Tengo un problema similar con mi sistema 12.04 Precise.

Las unidades que aparecen montadas en Nautilus no aparecen ~/.gvfs, especialmente después de un ciclo de suspensión / reanudación.gvfs-fuse-daemonse está ejecutando, pero matarlo y reiniciarlo no soluciona el problema.

Descubrí que reiniciar Nautilus después de las nautilus -qcausas gvfs-fuse-daemony Nautilus vuelve a cooperar: los puntos de montaje vuelven a aparecer.


3

En las versiones más nuevas de Ubuntu, gvfs por defecto se monta en /run/user/$USER/gvfs/.

Puede comprobar dónde está su punto de montaje predeterminado buscando la línea de fusible gvfsd de su usuario /etc/mtab.


2

Hice una pregunta relacionada para mi sistema Debian, y la respuesta fue:

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

Luego reiniciar. Después de un montaje GVFS (a través de Nautilus), el directorio compartido estará en uno de dos lugares, dependiendo de la versión de Debian o Ubuntu que tenga:

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

Estoy bastante seguro de que no tienes que reiniciar. A systemctl --user restart gvfs-daemonhizo el truco para mí.
Torkel Bjørnson-Langen

0

Cuando quiero acceder a archivos compartidos desde una máquina Windows directamente (no navegando a través de Nautilus), monto el recurso compartido en una carpeta en mi directorio de inicio.

Por ejemplo. Si hay una máquina Windows con la dirección IP 192.168.16.2en el dominio mydomainque tiene una carpeta compartida como sharedy tengo un directorio en mi directorio de inicio llamado mnt, puedo montar el recurso compartido mnty acceder a él como si estuviera dentro de mi directorio de inicio con:

sudo mount -t cifs "//192.168.16.2/shared" /home/stacey/mnt -o credentials=credentials,uid=stacey,gid=stacey

donde las credenciales contienen:

username=stacey
password=mypassword
domain=mydomain

Ahora puedo utilizar ls /home/stacey/mntpara listar los archivos y directorios en el directorio compartido shareden 192.168.16.2y acceder a cualquier archivo dentro de este punto de montaje como lo haría un archivo en el disco duro local.

Puede obtener más información sobre cómo montar recursos compartidos SMB con:

man mount.cifs

No es lo que preguntó el OP.
enzotib

2
No, pero Kynan dijo "pero quiero tener acceso a través de la línea de comando, por eso necesito un punto de montaje en el sistema de archivos", así que solo estoy tratando de ayudar.
Stacey Richards

Gracias. Debería haber mencionado que he considerado esta solución, pero en mi opinión tiene 2 desventajas principales que la hacen inviable: 1) el archivo de credenciales debe contener la contraseña en texto plano, lo cual es inaceptable en una máquina compartida, 2) requiere privilegios de root y necesito una solución que también funcione en máquinas donde no tengo sudo
kynan

0

Por ahora...

#!/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

3
Una breve explicación de lo que este script va a hacer sería bueno. ¿Cuándo debería ejecutarse el cron-job?
mook765
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.