Truco: Cómo desmontar un dispositivo (USB, flash, etc) cuando esta ocupado y conocer la aplicación que lo mantiene ocupado


¿Esto no os sucede constantemente? Has metido un dispositivo USB (familiarmente llamado «pincho») en tu PC y has abierto algunos trabajos y despues cuando lo desmontas te aparece el mensaje (utilizando nautilus en Gnome de Ubuntu):

mensaje-dispositivo-ocupado

O bien mediante el terminal el mensaje de error:

$ umount /media/disk/
/sbin/umount.hal: Unmounting /media/disk failed: 
org.freedesktop.Hal.Device.Volume.Busy: 
umount: /media/disk: device is busy.

Sería mucho más útil si en ese mensaje de error se nos dijera que aplicación es la que mantiene el dispositivo ocupado (por lo general porque este leyendo o escribiendo en el dispositivo ) porque somos humanos y no todos tenemos poderes de adivino (a menos que vivas en un mundo de ficción como Héroes).

Pero aquí estamos en el 2008, usando Ubuntu 8.10 Intrepid y el dichoso mensaje no ha cambiado en los cerca de 3 años que estoy usando Ubuntu (con otras distros no se si lo muestren, pero supongo que no).

Bien, pues aquí va un sencillo truco para conocer la aplicación rebelde que mantiene ocupado nuestro «pincho».

Usamos el comando fuser para que nos identifique la ID (o PID) del proceso rebelde y le pasamos el parametro m junto con el nombre del dispositivo (que en ubuntu suele ser del tipo /media/nombre, en mi caso es disk):

$ fuser -m /media/disk/
/media/disk/:        13601

Bien, nuestro PID rebelde es el 13601

Ahora invocamos la siguiente instrucción con dicho PID:

$ ps auxw | grep 13601
shakaran 13601  0.3  3.3 192544 70332 ?        
Sl   Nov11   0:03 /usr/lib/openoffice/program/soffice.bin 
-writer file:///media/disk/trabajo_rebelde.dot -splash-pipe=5

Este comando lo que hace es invocar al programa ps que nos informa del estado de los procesos con las parametros auxw que son:

a    muestra también los procesos de otros usuarios
u    formato usuario: muestra el usuario y la hora de inicio
x    muestra procesos que no están controlados por ninguna terminal
s    formato señal (signal)
w    Salida  ancha (wide): no se truncan las líneas de comando

Asi que como podeis apreciar el «rebelde» es el OpenOffice que se niega a cerrar el archivo «trabajo_rebelde.dot».

Si lo que quereis es desmontar el dispositivo y os dá igual saber quien es el rebelde (es decir, os da igual el rebelde, solo quereís su cabeza cortada). Podeís ejecutar el comando umount con el parametro -l, en mi caso:

$ umount -l media/disk

Si aun así da error, ejecutarlo con privilegios de superusuario (con sudo) y ya no se resistirá:

$ sudo umount -l media/disk




2 pensamientos en “Truco: Cómo desmontar un dispositivo (USB, flash, etc) cuando esta ocupado y conocer la aplicación que lo mantiene ocupado”

  1. Muchas gracias!

    Llevaba ya tiempo intentando desmontar un HDD que, según fuser, no tenía colgado ningún proceso, la solución: umount -l /carpeta/compartida

Deja un comentario

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.