Todos los artículos

Cómo expulsar un disco que dice estar en uso en el Mac

· 6 min de lectura

Cuando expulsas un disco externo y macOS responde que no se ha expulsado porque es posible que uno o más programas lo estén usando, algo sigue teniendo un archivo abierto en ese disco. macOS se niega a desmontarlo para que no se pierda nada a mitad de una escritura. La solución es siempre la misma: averiguar qué retiene el disco, cerrarlo, volver a expulsar y forzar la expulsión solo como último recurso.

Así se encuentra al culpable con las herramientas de macOS, y así puede Folia Files decírtelo por su nombre.

Por qué macOS dice que el disco está en uso

Un disco no se puede desmontar mientras algún proceso tenga abierto en él un archivo, una carpeta o un directorio de trabajo. Los sospechosos habituales:

  • Una app con un documento abierto desde el disco: un vídeo en un reproductor, un proyecto en un editor, una fototeca.
  • Spotlight, indexando un disco que acaba de descubrir (procesos llamados mds_stores o mdworker). Un disco recién conectado suele estar ocupado unos minutos.
  • Time Machine, haciendo una copia en ese disco o comprobándolo.
  • Vista rápida, generando miniaturas de los archivos que acabas de ver.
  • Una ventana del Terminal cuya carpeta actual está en el disco. Nada parece abierto, pero el propio shell retiene el disco.
  • Una copia aún en curso, a veces en otra app.

El Finder nombra a veces la app en su alerta, pero a menudo solo obtienes el mensaje genérico, sin pista sobre el responsable.

Primero, cierra lo evidente y vuelve a intentarlo

  1. Guarda y cierra todos los documentos que estén en el disco. Si no sabes qué app lo usa, sal de las apps en las que abriste archivos de él.
  2. Cierra las ventanas del Finder que muestran el disco. En el Terminal, escribe cd ~ en cada ventana que estuviera trabajando en él.
  3. Si el disco se acaba de conectar, o hay una copia de Time Machine en curso, espera un minuto.
  4. Vuelve a expulsar: selecciona el disco en la barra lateral del Finder y pulsa ⌘E, o haz clic en el botón de expulsión junto a su nombre.

Con eso se resuelven la mayoría de los casos. Si el disco sigue negándose, averigua exactamente quién lo retiene.

Averigua qué usa el disco con el Terminal

lsof («list open files», la lista de archivos abiertos) viene con macOS. Abre el Terminal y escribe lo siguiente, sustituyendo MiDisco por el nombre del disco tal como aparece en el Finder:

lsof /Volumes/MiDisco

Con el punto de montaje de un disco, lsof lista todos los archivos abiertos en él. Si el nombre tiene espacios, ponlo entre comillas: lsof "/Volumes/Mi Disco".

Cómo leer el resultado

Cada línea es un archivo abierto. Las columnas que importan:

  • COMMAND: el proceso, por ejemplo QuickTime, zsh o mds_stores.
  • PID: su número, el mismo que muestra el Monitor de Actividad.
  • FD: cwd significa que la carpeta actual del proceso está en el disco (normalmente, una ventana del Terminal).
  • NAME: el propio archivo.

Si no aparece nada pero el disco sigue negándose, ejecuta el mismo comando como sudo lsof /Volumes/MiDisco y escribe tu contraseña: los servicios del sistema, como Spotlight y Time Machine, funcionan con otro usuario, y solo un administrador ve sus archivos.

Después sal de la app con normalidad (guarda antes tu trabajo) y vuelve a expulsar. No mates un proceso que esté escribiendo en el disco: esa es precisamente la pérdida de datos de la que te protege la negativa.

El Monitor de Actividad, si prefieres no escribir

En el Monitor de Actividad, haz doble clic en un proceso y abre la pestaña que lista sus archivos y puertos abiertos: si aparecen rutas bajo /Volumes/MiDisco, es ese. Funciona, pero tienes que adivinar qué proceso inspeccionar, uno por uno. lsof responde a la pregunta de una vez.

Cuando es Spotlight o Time Machine

Si lsof muestra mds, mds_stores o mdworker, Spotlight está indexando el disco. Espera a que termine o, para un disco en el que nunca buscas, desactiva la indexación con sudo mdutil -i off /Volumes/MiDisco (o añade el disco a la lista de privacidad de Spotlight en Ajustes del Sistema).

Si muestra backupd, Time Machine está trabajando con ese disco. Deja que termine la copia, o detenla desde Time Machine antes de expulsar: desconectar un disco de copias en plena copia puede dañarla.

Forzar la expulsión: cuándo y qué se arriesga

Cuando nada funciona, el Finder puede ofrecer forzar la expulsión, y el Terminal también sabe hacerlo:

diskutil unmount force /Volumes/MiDisco

Una expulsión forzada cierra los archivos sin avisar a las apps: lo que aún no hayan guardado en el disco se pierde, y una copia en curso se corta. Úsala solo con un disco en el que sepas que nadie escribe, por ejemplo una imagen de disco atascada, nunca con un disco en mitad de una copia o de una copia de seguridad.

Deja que Folia Files te diga quién retiene el disco

Folia Files es un gestor de archivos para macOS, y trata una expulsión rechazada como una pregunta que merece respuesta y no como un callejón sin salida. Cuando un disco no se expulsa, un aviso dice No se ha podido expulsar «MiDisco» y enumera lo que lo está usando con nombres reconocibles: la propia app, Spotlight (indexación del disco), Time Machine o Vista rápida. Debajo:

  • Salir de «App» cierra la app que retiene el disco (se ofrecen dos apps como máximo) y luego vuelve a expulsar por sí solo.
  • Reintentar simplemente lo vuelve a intentar, por ejemplo cuando Spotlight ha terminado.
  • Forzar expulsión… pide confirmación primero y explica lo que se arriesga.

Folia Files: el disco Travel SSD no se expulsa y el aviso indica que lo usa Atlas, con Reintentar y Forzar expulsión…

Para expulsarlo todo de una vez, haz clic derecho en un disco de la barra lateral izquierda y elige Expulsar los 3 discos (el número depende de lo que esté conectado), o usa el mismo comando en el menú de Folia Files de la barra de menús. Expulsa discos externos e imágenes de disco, nunca recursos compartidos de red.

Expulsar antes del reposo (versión del sitio web)

Desconectar los discos de un portátil mientras está en reposo es lo que suele provocar el aviso de macOS sobre un disco que no se ha expulsado correctamente. En Ajustes › Archivos y red › Discos externos, Expulsar los discos externos antes del reposo y volver a montarlos al activarse los desmonta antes de que el Mac entre en reposo (siguen conectados) y los vuelve a montar al activarse. Un disco en uso en ese momento se queda montado, y Folia Files te lo dice al activarse.

Ajustes › Archivos y red › Discos externos: expulsar los discos externos antes del reposo y montarlos de nuevo al despertar

Nombrar quién retiene un disco, Forzar expulsión… y la expulsión antes del reposo están en la versión del sitio web de Folia Files. El sandbox de la versión de la App Store no ve los archivos abiertos por otras apps: allí el aviso muestra el mensaje de macOS con Reintentar, y lsof en el Terminal sigue siendo la forma de encontrar al culpable.

Lista rápida

  1. Guarda y cierra los documentos del disco; cd ~ en el Terminal.
  2. Espera un minuto si Spotlight o Time Machine pueden estar trabajando.
  3. lsof /Volumes/MiDisco y luego sudo lsof /Volumes/MiDisco para ver quién lo retiene.
  4. Sal de esa app y vuelve a expulsar con ⌘E.
  5. Fuerza la expulsión solo con un disco en el que nadie escribe.

Si prefieres tener la respuesta sin abrir el Terminal, descarga Folia Files: el próximo disco que se niegue a expulsarse te dirá por qué.