lunes, 9 de septiembre de 2013

Desmontar unidad en linux: device is busy

Ahora mismo estoy intentando desmontar una de las unidades que tengo (valga la redundancia) montadas en mi backtrack con un

#umount /mnt/usb

pero sin éxito, dado que me está dando un error como el siguiente:

umount: /mnt/usb: device is busy.
(In some cases useful info about processes that use
the device is found by lsof(8) or fuser(1))


Por lo que he decidido seguir las instrucciones. Pero, dado que el listado es demasiado grande, he decidido aplicarle un pipe (más comunmente conocido como "tuberia") para filtrar la salida y que sea más sencillo de encontrar el resultado:

#lsof | grep /mnt

Y, así, a la segunda, me ha salido un único resultado que es el que necesitaba. Entre otras cosas, sale el pid del proceso que tendré que matar para desmontar correctamente ese mapeo:

bash      3697       miUsuario  cwd       DIR               8,33        20480          5 /mnt/usb

Aún así, tengo curiosidad por el resultado que me devolvería el otro comando. fuser. Por eso, antes de matar el proceso anterior, vamos a ver el resultado que me suelta.

Vale. He tenido que hacer un pequeño ensayo y error. El comando fuser necesita recibir un parámetro para funcionar. Además, ese parámetro puede necesitar a su vez un valor determinado. En mi caso tengo que poner

#fuser -m /mnt/usb

Porque, de no pasarle uno, nos devolverá la ayuda.

El resultado sería:

/mnt/usb: 3697c

que, como se puede observar, coincide (en gran medida) con el que nos da lsof.

Total, que al ejecutar:

#kill -9 3697
#umount /mnt/usb

deja de quejarse.

Esto hay que apuntárselo para que no nos olvidemos. Que muchas veces sucede y al final acabamos quitando el dispositivo sin desconectarlo correctamente.

No hay comentarios:

Publicar un comentario