Cómo evitar que iCloud y Dropbox bloqueen la expulsión de discos
Los servicios de sincronización en la nube son famosos por impedir la expulsión de discos externos en Mac. Aquí te explicamos por qué retienen tus discos y cómo solucionarlo.
Cerraste todas las apps. Guardaste todo. Haces clic en expulsar y macOS dice que el disco sigue en uso. Ejecutas lsof y ves bird, cloudd o Dropbox en la salida. Un servicio de sincronización en la nube tiene tu disco secuestrado.
Esta es una de las causas más comunes y menos comprendidas de las fallas de expulsión en Mac. Los servicios de sincronización en la nube corren constantemente en segundo plano, y están diseñados para monitorear los archivos en busca de cambios. Ese monitoreo significa identificadores de archivos abiertos, y los identificadores de 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 vigilando las carpetas en busca de cambios. Cuando se crea, modifica o elimina un archivo, el servicio lo detecta y sincroniza el cambio a la nube. Para detectar estos cambios, el servicio mantiene identificadores de 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 maneras:
Almacenaste de forma explícita una carpeta de sincronización en el disco. Quizá moviste tu carpeta de Dropbox al disco externo por cuestión de espacio, o ahí guardas una carpeta de proyecto que se comparte 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 el volumen desde el que trabajan.
Spotlight indexó tu disco y un servicio de sincronización captó los datos del índice. Es indirecto, pero pasa.
iCloud en específico
El daemon de sincronización de iCloud en macOS se llama bird (sí, en serio). También verás cloudd manejando algunas operaciones de sincronización. Estos procesos corren como servicios del sistema y se reinician automáticamente si los cierras.
Si bird está bloqueando tu disco, es porque está monitoreando un archivo o una carpeta en ese volumen. Los desencadenantes comunes incluyen:
- iCloud para el Escritorio y Documentos: Si tienes esta función activada y tu disco externo aparece como una ubicación en el Finder, iCloud podría indexar rutas relacionadas con él.
- Vista previa y Vista rápida: Abrir un archivo de tu disco externo en Vista previa puede crear referencias de archivos recientes sincronizadas con iCloud.
- Pages, Numbers o Keynote: Estas apps guardan automáticamente en iCloud de manera predeterminada. 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 en específico
Dropbox es todavía más agresivo con el monitoreo de archivos. En las versiones modernas de macOS, el cliente de Dropbox usa el framework File Provider de Apple (el enfoque más antiguo, basado en extensiones de kernel, se descontinuó en macOS 12.3) para monitorear las 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 con ese volumen. Incluso los archivos que terminaron de sincronizarse hace mucho podrían tener los identificadores de archivos de Dropbox para fines de monitoreo.
También podrías ver el proceso fileproviderd de Apple reteniendo archivos abiertos en nombre de Dropbox. Este es el daemon del sistema que administra todas las extensiones de File Provider, incluyendo Dropbox, OneDrive y Google Drive. Puede crear identificadores de archivos adicionales en los volúmenes que esos servicios están monitoreando.
El enfoque más confiable con Dropbox: cierra la aplicación de Dropbox por completo antes de expulsar. Haz clic en el ícono 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 computadoras) 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 forma similar a Dropbox, con monitoreo de archivos en segundo plano. En general es menos agresivo reteniendo identificadores de archivos, pero aun así puede bloquear la expulsión.
Ambos servicios se pueden pausar o cerrar desde sus íconos en la barra de menús antes de expulsar.
El flujo de trabajo práctico
Si trabajas con frecuencia con archivos en discos externos y usas servicios de sincronización en la nube, adopta el hábito de pausar la sincronización antes de expulsar.
Para iCloud no hay un botón de pausa fácil, pero puedes desactivar temporalmente iCloud Drive en Ajustes del Sistema > ID de Apple > iCloud > iCloud Drive. Aunque esto es disruptivo.
Para Dropbox, pausa la sincronización desde el ícono en la barra de menús. Haz clic en el ícono de Dropbox, haz clic en tu perfil y selecciona “Pausar la sincronización”.
Para Google Drive, haz clic en el ícono de Drive en la barra de menús y selecciona “Pausar la sincronización”.
Después de pausar, espera unos segundos a que se cierren los identificadores de archivos abiertos, y luego expulsa tu disco.
Cómo prevenir el problema
El enfoque más limpio es nunca almacenar carpetas sincronizadas con la nube en discos externos. Mantén las carpetas de sincronización en el almacenamiento interno de tu Mac y usa los discos externos para datos que no necesitan sincronizarse.
Si tienes que guardar contenido sincronizado en un disco externo, crea una separación clara. Pon los archivos sincronizados en una carpeta y los 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 al menos, cierra esas apps y dales un momento para liberar los identificadores de archivos antes de expulsar.
Cuando pausar no es suficiente
A veces pausaste la sincronización, cerraste las apps y el disco sigue sin expulsarse. El servicio de sincronización dejó un identificador de archivo obsoleto que persiste incluso después de pausar.
Puedes forzar la liberación de estos identificadores terminando el proceso específico:
kill $(lsof -t /Volumes/NombreDeTuDisco)
Esto termina todos los procesos que usan 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 los daemons de sincronización en la nube, y te deja cerrarlos uno por uno. En lugar de terminar todo lo conectado al disco, puedes apuntar solo al proceso bird o solo al ayudante 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 por qué estar en conflicto. Solo necesitas visibilidad de lo que pasa tras bambalinas.
Si prefieres no usar la Terminal cada vez, Ejecta te muestra exactamente qué proceso está bloqueando tu disco — y te deja cerrarlo con un solo clic, directo desde tu barra de menús.
Comprar ahora — $9.99