Cómo Evitar que iCloud y Dropbox Bloqueen la Expulsión de Discos
Los servicios de sincronización en la nube son conocidos por prevenir la expulsión de discos externos en Mac. Aquí está por qué retienen tus discos y cómo solucionarlo.
Cerraste cada app. Guardaste todo. Haces clic en expulsar y macOS dice que el disco todavía está en uso. Ejecutas lsof y ves bird, cloudd o Dropbox en la salida. Un servicio de sincronización en la nube está reteniendo tu disco como rehén.
Esta es una de las causas más comunes y menos entendidas de fallos de expulsión en Mac. Los servicios de sincronización en la nube se ejecutan constantemente en segundo plano, y están diseñados para monitorear archivos por cambios. Ese monitoreo significa archivos abiertos, y archivos abiertos significan que tu disco no se expulsa.
Por qué los servicios de sincronización bloquean la expulsión
Los servicios de sincronización en la nube funcionan observando carpetas por cambios. Cuando un archivo se crea, modifica o elimina, el servicio lo detecta y sincroniza el cambio a la nube. Para detectar estos cambios, el servicio mantiene archivos abiertos o usa observadores de eventos del sistema de archivos en los directorios que monitorea.
El problema ocurre cuando cualquiera de las rutas monitoreadas existe en tu disco externo. Esto puede pasar de varias formas:
Almacenaste explícitamente una carpeta sincronizada en el disco. Quizás moviste tu carpeta de Dropbox al disco externo por razones de espacio, o mantienes una carpeta de proyecto ahí que está compartida a través de iCloud Drive.
Una aplicación creó un archivo en el disco que un servicio de sincronización reclamó. Algunas apps guardan archivos temporales, cachés o metadatos de proyecto en cualquier volumen desde el que estén trabajando.
Spotlight indexó tu disco y un servicio de sincronización se enganchó con los datos del índice. Esto es indirecto, pero sucede.
iCloud específicamente
El demonio de sincronización de iCloud en macOS se llama bird (sí, en serio). También verás a cloudd manejando algunas operaciones de sincronización. Estos procesos se ejecutan como servicios del sistema y se reinician automáticamente si los cierras.
Si bird está bloqueando tu disco, está monitoreando un archivo o carpeta en ese volumen. Los disparadores comunes incluyen:
- Escritorio y Documentos de iCloud: Si tienes esta función habilitada y tu disco externo aparece como ubicación en Finder, iCloud podría indexar rutas relacionadas con él.
- Vista Previa y QuickLook: Abrir un archivo de tu disco externo en Vista Previa puede crear referencias de archivos recientes sincronizados con iCloud.
- Pages, Numbers o Keynote: Estas apps guardan automáticamente en iCloud por defecto. Si abriste un documento desde tu disco externo, la app podría mantener una conexión entre el archivo local y una referencia de iCloud.
Para verificar si iCloud es tu bloqueador:
lsof /Volumes/NombreDeTuDisco | grep -i bird
lsof /Volumes/NombreDeTuDisco | grep -i cloudd
Dropbox específicamente
Dropbox es aún más agresivo con el monitoreo de archivos. En versiones modernas de macOS, el cliente de Dropbox usa el framework File Provider de Apple (el enfoque antiguo de extensión del kernel fue deprecado en macOS 12.3) para monitorear operaciones del sistema de archivos en tiempo real.
Si tu carpeta de Dropbox o cualquier carpeta sincronizada con Dropbox está en tu disco externo, Dropbox mantendrá conexiones persistentes a ese volumen. Incluso archivos que terminaron de sincronizarse hace mucho podrían tener archivos abiertos de Dropbox por propósitos de monitoreo.
También puedes ver el proceso fileproviderd de Apple manteniendo archivos abiertos en nombre de Dropbox. Este es el demonio del sistema que gestiona todas las extensiones de File Provider, incluyendo Dropbox, OneDrive y Google Drive. Puede crear archivos abiertos adicionales en volúmenes que esos servicios estén monitoreando.
El enfoque más confiable con Dropbox: cierra la aplicación de Dropbox completamente antes de expulsar. Haz clic en el icono de Dropbox en la barra de menús, haz clic en tu foto de perfil y selecciona Salir. Después de expulsar tu disco, vuelve a abrir Dropbox.
Google Drive y OneDrive
La app de escritorio de Google Drive (Drive para Escritorio) crea un disco virtual que puede interactuar con tus discos externos a través de operaciones de archivos. Si copiaste archivos entre Google Drive y tu disco externo, el cliente de Drive podría mantener referencias.
OneDrive se comporta de manera similar a Dropbox, con monitoreo de archivos en segundo plano. Generalmente es menos agresivo en retener archivos abiertos, pero todavía puede bloquear la expulsión.
Ambos servicios pueden pausarse o cerrarse desde sus iconos en la barra de menús antes de expulsar.
El flujo de trabajo práctico
Si regularmente trabajas con archivos en discos externos y usas servicios de sincronización en la nube, construye el hábito de pausar la sincronización antes de expulsar.
Para iCloud, no hay un botón fácil de pausa, pero puedes deshabilitar temporalmente iCloud Drive en Configuración del Sistema > Apple ID > iCloud > iCloud Drive. Esto es disruptivo, sin embargo.
Para Dropbox, pausa la sincronización desde el icono en la barra de menús. Haz clic en el icono de Dropbox, haz clic en tu perfil y selecciona “Pausar sincronización.”
Para Google Drive, haz clic en el icono de Drive en la barra de menús y selecciona “Pausar sincronización.”
Después de pausar, espera unos segundos para que los archivos abiertos se cierren, luego expulsa tu disco.
Previniendo el problema
El enfoque más limpio es nunca almacenar carpetas sincronizadas en la nube en discos externos. Mantén las carpetas de sincronización en el almacenamiento interno de tu Mac y usa discos externos para datos que no necesitan sincronizarse.
Si debes mantener contenido sincronizado en un disco externo, crea una separación clara. Pon archivos sincronizados en una carpeta y archivos no sincronizados en otra. Cuando necesites expulsar, sabrás qué servicio de sincronización pausar.
Evita abrir archivos de tu disco externo con apps que guardan automáticamente en iCloud (Pages, Numbers, Keynote, Vista Previa). O como mínimo, cierra esas apps y dales un momento para liberar archivos antes de expulsar.
Cuando pausar no es suficiente
A veces has pausado la sincronización, cerrado las apps, y el disco todavía no se expulsa. El servicio de sincronización dejó un archivo abierto obsoleto que persiste incluso después de pausar.
Puedes forzar la liberación de estos archivos matando el proceso específico:
kill $(lsof -t /Volumes/NombreDeTuDisco)
Esto mata cada proceso usando el disco. Es agresivo pero efectivo.
Ejecta maneja esto de forma más quirúrgica. Identifica exactamente qué procesos están reteniendo tu disco, incluyendo demonios de sincronización en la nube, y te permite cerrarlos individualmente. En lugar de matar todo lo conectado al disco, puedes apuntar solo al proceso bird o solo al auxiliar de Dropbox que está causando el problema. Es particularmente útil cuando no estás seguro de cuál de varios servicios de sincronización es el culpable.
La sincronización en la nube y los discos externos no tienen que estar en conflicto. Solo necesitas visibilidad de lo que está pasando tras bambalinas.