Recientemente me encontré con un problema en el que un sistema de archivos SSHFS montado se negaba a desmontar.
Intenté desmontarlo desde dentro de Nautilus haciendo clic con el botón derecho en el montaje y seleccionando Desmontar, pero esto falló con un mensaje de error. El error me dijo que no podía desmontar el dispositivo y dio una razón de «montaje no coincide con el fstab».
Entonces edité el fstab (sudo vi /etc/fstab
) y comenté la entrada para el dispositivo. Intenté desmontar en Nautilus de nuevo, pero esta vez me dijo que no podía desmontar el dispositivo porque no era root y el dispositivo no aparecía en el fstab. Entonces descomenté la línea comentada anteriormente y volví a guardar el archivo.
Hora de ensuciarse. Intenté ejecutar manualmente umount
, pero falló:
$ sudo umount /mnt/shareumount: /mnt/share: device is busy. (In some cases useful info about processes that use the device is found by lsof(8) or fuser(1))$
Esto se estaba volviendo personal ahora ya que los mensajes anteriores no decían nada de que el dispositivo estuviera en uso. Cerré todas las aplicaciones y lo intenté de nuevo. El mismo mensaje de error.
Seguí las instrucciones y ejecuté man lsof
seguido de man fuser
para averiguar más sobre esos comandos recomendados. fuser fue el ganador.
fuser permite averiguar información detallada sobre los procesos que están usando archivos o sockets específicos. Además de obtener información, le permite matar los procesos que acceden al archivo o al socket. Esto era exactamente lo que estaba buscando.
Después de leer la sintaxis de fuser, ejecuté lo siguiente:
$ sudo fuser -km /mnt/share/mnt/share/: 9004c$
Este comando básicamente se traduce en «encontrar cada proceso que está accediendo al punto de montaje /mnt/share y matarlo». Como no estaba seguro de la propiedad de los procesos que serían matados, lo ejecuté con sudo para asegurarme de que cualquier proceso podía ser matado.
La respuesta /mnt/share/: 9004c
significa que un proceso con un ID de 9004 fue terminado.
De nuevo, ejecuté:
$ sudo umount /mnt/share$
Este comando respondió alegremente con nada, lo cual es una buena señal ya que significa que el comando umount tuvo éxito.
Finalmente, el montaje está desmontado. Ahora bien, si sólo pudiera recordar lo que estaba tratando de hacer cuando este problema ocurrió…
¿Te he ayudado?
- Envíame una propina a través de Paypal.
- Ayuda con el alojamiento de este sitio con mi código de referencia Linode.