¿Cómo (limpiamente) desmontar sshfs cuando se monta en un punto de montaje NFS?


15

Mi compañero de trabajo tiene una computadora de escritorio /homecompartida en nuestro servidor de archivos. He desarrollado un script de Perl para sshfsmontar un determinado directorio en otro host SSH que funciona bien en mi computadora portátil.

En su computadora, el script no desmonta sshfsal final y deja impuro el punto de montaje. No encontré ninguna forma de recuperar el punto de montaje que no sea reiniciar. Después de algunas pruebas, descubrí que la diferencia entre nuestras configuraciones es que la suya /homeestá en NFS. En su /tmpobra funciona a la perfección.

Después del montaje, durante la operación del script, todo está bien. Pero cuando matar el sshfsproceso que está catalogado como <defunc>por pshasta que el proceso padre (el script de Perl) salidas. Cuando se ejecuta un sshfscomando sin procesar en el shell, el problema aún ocurre.

Una ls -dlsalida para el punto de montaje se ve así (como se recuerda, no tengo una copia real de la salida del shell a la mano):

? 1 ? ? 4096 Feb  9 15:37 file_archive/

(solo signos de interrogación para la mayoría de la información, al menos todos los detalles del permiso)

El montaje sshfs todavía aparece en la lista, mountpero una operación de desmontaje falla con permiso de error denegado incluso cuando se hace como root.

Busqué en Google pero solo encontré muchas comparaciones entre sshfs y NFS para ejecutar sistemas de archivos de red. ¿Cómo puedo hacer un montaje / desmontaje sshfs en el directorio NFS de forma segura?

Respuestas:


38

Debería poder desmontar el recurso compartido sshfs ejecutando:

 fusermount -u /path/to/sshfs/share

Intenté esto pero obtuve el permiso denegado . Por supuesto, un ordinario umountdebe fallar cuando se ejecuta como usuario no root.
Daniel Böhmer

Lo más probable es que la razón por la que no puede desmontar (con cualquier método) es porque su directorio de inicio se monta desde NFS donde se exporta con la root_squashopción. Por lo tanto, root no tiene autoridad en su directorio de origen. Puede apagarlo, root_squashpero probablemente sea más seguro montarlo en otro lugar.
JFlo

2
Se me olvida cada vez que eso umounto fusermount -uno funciona, cuando el directorio se usa en alguna parte. Así que cdfuera del directorio antes de usar fusermount -uo usarlsof /my/local/mountpoint
eli

16

Simplemente elimine el proceso usando pkill y luego desmonte la ruta de la carpeta montada.

 pkill -kill -f "sshfs" && umount /path/to/sshfs/share

A veces tengo que hacer "sudo umount -f" o "sudo umount -l" en lugar de umount.
fchen

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.