¿Cómo se fuerza el desmontaje de una conexión CIFS?
Pregunta
Tengo un recurso compartido CIFS montado en una máquina Linux.El servidor CIFS está inactivo, o la conexión a Internet está inactiva, y cualquier cosa que toque el soporte CIFS ahora tarda varios minutos en expirar y no se puede eliminar mientras espera.Ni siquiera puedo ejecutar ls en mi directorio de inicio porque hay un enlace simbólico que apunta dentro del montaje CIFS y ls intenta seguirlo para decidir de qué color debería ser.Si intento desmontarlo (incluso con -fl), el proceso de montaje se bloquea tal como lo hace ls.Ni siquiera sudo kill -9 puede matarlo.¿Cómo puedo forzar el desmontaje del kernel?
Solución
Yo uso desmontaje diferido: umount -l
(eso es minúscula L
)
Desmontaje perezoso.Descarte el sistema de archivos desde la jerarquía del sistema de archivos ahora, y limpie todas las referencias al sistema de archivos tan pronto como ya no esté ocupado.(Requiere el núcleo 2.4.11 o más tarde).
Otros consejos
umount -a -t cifs -l
funcionó de maravilla para mí en CentOS 6.3.Me salvó reiniciar el servidor.
En RHEL 6 esto funcionó:
umount -f -a -t cifs -l
Tuve este problema por un día hasta que encontré la solución real.En lugar de intentar forzar el desmontaje de un recurso compartido smb que está bloqueado, móntelo con la opción "suave".Si un proceso intenta conectarse al recurso compartido que no está disponible, dejará de intentarlo después de un cierto período de tiempo.
suave Suaviza la montura.Las llamadas al sistema de archivos fallan después de varios segundos.
mount -t smbfs -o soft //username@server/share /users/username/smb/share
stat /users/username/smb/share/file
stat: /users/username/smb/share/file: stat: Operation timed out
Puede que no sea una respuesta real a su pregunta, pero es una solución al problema.
Esto funciona para mí (Escritorio Ubuntu 13.10 a un servidor Ubuntu 14.04): -
sudo umount -f /mnt/my_share
Montado con
sudo mount -t cifs -o username=me,password=mine //192.168.0.111/serv_share /mnt/my_share
donde serv_share está configurado y señalado en el archivo smb.conf.
Pruebe umount -f /mnt/share.Funciona bien con NFS, nunca lo intenté con cifs.
Además, eche un vistazo a autofs, montará el recurso compartido solo cuando se acceda a él y lo desmontará en el otro mundo.
Hay un buen tutorial en www.howtoforge.net
Tuve un problema muy similar con davfs.En la página de manual de umount.davfs
, encontré que el -f -l -n -r -v
Las opciones son ignoradas por umount.davfs
.Para forzar el desmontaje de mi montura davfs, tuve que usar umount -i -f -l /media/davmount
.
Hay una opción -f para desmontar que puedes probar:
umount -f /mnt/fileshare
¿Está especificando la opción '-t cifs' para montar?También asegúrese de no especificar la opción "difícil" de montar.
Quizás también quieras considerar fusibles, dado que el sistema de archivos se ejecutará en el espacio de usuario, puede eliminarlo como cualquier otro proceso.
umount -f -t cifs -l /mnt &
Ten cuidado de &
, dejar umount
ejecutar en segundo plano.umount
Primero desconectará el sistema de archivos, por lo que no encontrará nada sobre /mnt
.Si tu corres df
comando, entonces lo hará umount /mnt
a la fuerza.
En RHEL 6 esto también funcionó para mí:
desmontar -f -a -t cifs -l NOMBRE_CARPETA
Un desmontaje lento hará el trabajo por usted.
umount -l <mount path>