Solución:
Significa que algún proceso tiene un directorio de trabajo o un identificador de archivo abierto debajo del punto de montaje. Lo mejor que puede hacer es finalizar el proceso infractor, cambiar su directorio de trabajo o cerrar el identificador del archivo antes de desmontarlo.
Sin embargo, existe una alternativa en Linux. Utilizando umount -l
llama un desmontaje “perezoso”. El sistema de archivos seguirá montado, pero no podrá verlo ni usarlo, excepto para los procesos que ya lo están usando. Cuando el programa infractor sale (por cualquier medio), el sistema “terminará” de desmontar el sistema de archivos.
También puedes usar fuser
para matar todos los procesos que utilizan el sistema de archivos montado.
fuser -cuk /mnt
Opciones:
-c
Same as -m option, used for POSIX compatibility.
-u, --user
Append the user name of the process owner to each PID.
-k, --kill
Kill processes accessing the file. Unless changed with -SIGNAL, SIGKILL is sent. An fuser process
never kills itself, but may kill other fuser processes. The effective user ID of the process
executing fuser is set to its real user ID before attempting to kill.kill.
-m NAME, --mount NAME
NAME specifies a file on a mounted file system or a block device that is mounted. All processes
accessing files on that file system are listed. If a directory file is specified, it is
automatically changed to NAME/. to use any file system that might be mounted on that directory.
Compruébelo usted mismo en explicaciones.
Dada su “solución habitual”, significa que el shell que está ejecutando en la ventana de su consola tiene un directorio en un sistema de archivos en ese dispositivo como su directorio de trabajo actual.
Linux, y Unixes en general, desean desesperadamente mantener un sistema de archivos montado si un proceso tiene un directorio de trabajo actual en ese sistema de archivos.
Podrías usar cd
en la ventana de la consola para salir de un directorio en o debajo /mnt
en lugar de matar la ventana de la consola y el shell que se ejecuta dentro de ella.