Después de trabajar con un disco USB externo de copia de seguridad quiero desmontar limpiamente la unidad. Al pulsar el botón 'expulsar' Finder me avisa con el mensaje:
o
o al intentar utilizar el Terminal: umount /Volumes/Diskname
Hasta donde yo sé, no estoy usando este disco, pero Finder dice que sí, así que debo estar equivocado. Prefiero un unmount limpio de la unidad. Como estoy en medio de hacer varias tareas, cerrar la sesión y volver a iniciarla no es preferible, así como la instalación de software de terceros.
El comando de terminal lsof
podría ser útil aquí, pero personalmente creo que es demasiado complejo para un problema tan 'simple' y para ser honesto, no sé cómo usarlo correctamente.
Mi pregunta: ¿Cómo puedo saber qué programa está utilizando mi unidad para que pueda salir correctamente de ese programa y expulsar mi unidad?
El volumen no se puede expulsar porque está en uso.
En efecto, lsof
es su mejor opción. La forma más rápida y sencilla sería esta :-
sudo lsof /Volumes/myDrive
Puede tardar un par de minutos en ejecutarse, pero una vez completado, te da una lista de ficheros abiertos en el disco. La salida se verá algo como esto:
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
mds 89 root 19r DIR 52,3 432 2 /Volumes/Photos
mds 89 root 23r DIR 52,3 432 2 /Volumes/Photos
Finder 681 alans 14r DIR 52,3 432 2 /Volumes/Photos
QuickLook 2158 alans 9r REG 52,3 1141591 78651 /Volumes/Photos/_tmp_iphone_10_backup/APC_1546.JPG
En este caso, es la aplicación QuickLook
la que tiene un archivo abierto. La mejor forma de solucionar el problema es cerrar directamente la aplicación. Sin embargo, esto no siempre es posible. Por ejemplo, QuickLook no aparece como una aplicación accesible en el Dock.
Si no puede cerrar la aplicación manualmente, puede utilizar el comando kill
para cerrarla desde la línea de comandos. Para ello, utilice el PID
de la segunda columna como el ID a matar. En el ejemplo anterior, sería:
kill 2158
Tenga en cuenta que a veces esto no funciona y hay que utilizar una forma más agresiva de "kill". Aquí'hay una serie de escalada de agresividad (usando el PID de ejemplo de 2158):
kill 2158
sudo kill 2158
sudo kill -INT 2158
sudo kill -KILL 2158
Deberías poder expulsar el disco una vez que el proceso/aplicación ha sido matado.
Una nota final, lsof
puede tardar un minuto o dos. También puede colgarse, pero deberías darle al menos unos minutos antes de decidir que eso es lo que ha pasado.
Además, a veces el comando base sudo lsof /Volumes/myDrive
no encuentra nada. Si esto ocurre, pruebe a añadir el argumento +D
(es decir, sudo lsof +D /Volumes/myDrive
). Esto hará un escaneo descendente del disco. Llevará más tiempo, pero debería detectar cualquier cosa que esté provocando que el disco no se pueda expulsar.
(Hat tip to Alec Jacobson's post for extra details.)
Usted podría tratar de la aplicación donationware "What's Keeping me?" que muestra qué proceso / aplicación está utilizando el volumen / carpeta / archivo.
Este programa está certificado por el desarrollador para Mac OS X 10.6 Snow Leopard, pero la página RoaringApps de esta aplicación indica que funciona correctamente en OS X 10.7 Lion y OS X 10.8 Mountain Lion.
Acerca de ¿Qué me retiene? ¿Alguna vez has tenido el problema de no poder vaciar la Papelera o expulsar un disco porque algo te lo impide? Normalmente la razón es porque alguna aplicación tiene un archivo abierto, y por lo tanto no puedes deshacerte del disco o tirar el archivo a la papelera. ¡Por eso hemos creado What's Keeping Me! What's Keeping Me identificará la aplicación que mantiene el elemento abierto. A continuación, puede utilizar What's Keeping Me para salir de la aplicación problemática (o matarla si es necesario) para que pueda realizar su tarea. What's Keeping Me incluye un flujo de trabajo Automator para que pueda realizar búsquedas directamente desde el Finder.
He tenido este mensaje a pesar de estar seguro de que no hay archivos abiertos en el volumen. Lo he comprobado con Why Not Unmount, una herramienta GUI que puede indicar archivos abiertos en un disco.
En mi caso, era una señal de que el sistema de archivos está corrupto. Ejecutar la Utilidad de Discos (o, si eso no era suficiente, DiskWarrior) solucionó el problema e hizo que el disco volviera a ser expulsable.