Comment empêcher iCloud et Dropbox de bloquer l'éjection des disques

Les services de synchronisation cloud sont réputés pour empêcher l'éjection des disques externes sur Mac. Voici pourquoi ils retiennent vos disques et comment contourner le problème.

Vous avez fermé toutes les applications. Vous avez tout enregistré. Vous cliquez sur éjecter et macOS répond que le disque est encore en cours d’utilisation. Vous exécutez lsof et vous voyez bird, cloudd ou Dropbox dans la sortie. Un service de synchronisation cloud retient votre disque en otage.

C’est l’une des causes les plus courantes et les moins comprises des échecs d’éjection sur Mac. Les services de synchronisation cloud tournent en permanence en arrière-plan, et ils sont conçus pour surveiller les fichiers afin de détecter les changements. Cette surveillance implique des fichiers ouverts, et des fichiers ouverts signifient que votre disque ne s’éjecte pas.

Pourquoi les services de synchronisation bloquent l’éjection

Les services de synchronisation cloud fonctionnent en surveillant les dossiers à la recherche de changements. Lorsqu’un fichier est créé, modifié ou supprimé, le service le détecte et synchronise la modification vers le cloud. Pour détecter ces changements, le service maintient des fichiers ouverts ou utilise des observateurs d’événements du système de fichiers sur les répertoires qu’il surveille.

Le problème survient lorsque l’un de ces chemins surveillés se trouve sur votre disque externe. Cela peut arriver de plusieurs façons :

Vous avez explicitement stocké un dossier de synchronisation sur le disque. Peut-être avez-vous déplacé votre dossier Dropbox sur le disque externe pour gagner de la place, ou vous y conservez un dossier de projet partagé via iCloud Drive.

Une application a créé un fichier sur le disque qu’un service de synchronisation a revendiqué. Certaines apps enregistrent des fichiers temporaires, des caches ou des métadonnées de projet sur le volume depuis lequel elles travaillent.

Spotlight a indexé votre disque et un service de synchronisation a capté les données de l’index. C’est indirect, mais ça arrive.

iCloud en particulier

Le démon de synchronisation d’iCloud sur macOS s’appelle bird (oui, vraiment). Vous verrez aussi cloudd gérer certaines opérations de synchronisation. Ces processus s’exécutent comme des services système et redémarrent automatiquement si vous les quittez.

Si bird bloque votre disque, c’est qu’il surveille un fichier ou un dossier sur ce volume. Les déclencheurs courants incluent :

  • Bureau et Documents iCloud : si vous avez activé cette fonctionnalité et que votre disque externe apparaît comme emplacement dans le Finder, iCloud peut indexer des chemins qui lui sont liés.
  • Aperçu et Coup d’œil : ouvrir un fichier de votre disque externe dans Aperçu peut créer des références de fichiers récents synchronisées avec iCloud.
  • Pages, Numbers ou Keynote : ces apps enregistrent automatiquement dans iCloud par défaut. Si vous avez ouvert un document depuis votre disque externe, l’app peut maintenir une liaison entre le fichier local et une référence iCloud.

Pour vérifier si iCloud est votre bloqueur :

lsof /Volumes/YourDriveName | grep -i bird
lsof /Volumes/YourDriveName | grep -i cloudd

Dropbox en particulier

Dropbox est encore plus agressif dans la surveillance des fichiers. Sur les versions récentes de macOS, le client Dropbox utilise le framework File Provider d’Apple (l’ancienne approche par extension du noyau a été abandonnée dans macOS 12.3) pour surveiller en temps réel les opérations du système de fichiers.

Si votre dossier Dropbox ou n’importe quel dossier synchronisé avec Dropbox se trouve sur votre disque externe, Dropbox maintiendra des connexions persistantes vers ce volume. Même des fichiers dont la synchronisation est terminée depuis longtemps peuvent avoir des descripteurs de fichiers Dropbox ouverts à des fins de surveillance.

Vous pouvez aussi voir le processus fileproviderd d’Apple maintenir des fichiers ouverts pour le compte de Dropbox. C’est le démon système qui gère toutes les extensions File Provider, y compris Dropbox, OneDrive et Google Drive. Il peut créer des descripteurs de fichiers supplémentaires sur les volumes que ces services surveillent.

L’approche la plus fiable avec Dropbox : quittez complètement l’application Dropbox avant d’éjecter. Cliquez sur l’icône Dropbox dans la barre des menus, cliquez sur votre photo de profil et sélectionnez Quitter. Après avoir éjecté votre disque, rouvrez Dropbox.

Google Drive et OneDrive

L’app de bureau de Google Drive (Drive pour ordinateur) crée un disque virtuel qui peut interagir avec vos disques externes via des opérations sur fichiers. Si vous avez copié des fichiers entre Google Drive et votre disque externe, le client Drive peut conserver des références.

OneDrive se comporte de façon similaire à Dropbox, avec une surveillance des fichiers en arrière-plan. Il est généralement moins agressif dans la rétention des descripteurs de fichiers, mais il peut tout de même bloquer l’éjection.

Les deux services peuvent être mis en pause ou quittés depuis leurs icônes dans la barre des menus avant d’éjecter.

Le flux de travail pratique

Si vous travaillez régulièrement sur des fichiers stockés sur des disques externes et que vous utilisez des services de synchronisation cloud, prenez l’habitude de mettre la synchronisation en pause avant d’éjecter.

Pour iCloud, il n’y a pas de bouton de pause simple, mais vous pouvez désactiver temporairement iCloud Drive dans Réglages Système > identifiant Apple > iCloud > iCloud Drive. C’est toutefois perturbant.

Pour Dropbox, mettez la synchronisation en pause depuis l’icône de la barre des menus. Cliquez sur l’icône Dropbox, cliquez sur votre profil et sélectionnez « Suspendre la synchronisation ».

Pour Google Drive, cliquez sur l’icône Drive dans la barre des menus et sélectionnez « Suspendre la synchronisation ».

Après la mise en pause, attendez quelques secondes que les fichiers ouverts se ferment, puis éjectez votre disque.

Prévenir le problème

L’approche la plus propre est de ne jamais stocker de dossiers synchronisés sur le cloud sur des disques externes. Gardez les dossiers de synchronisation sur le stockage interne de votre Mac et réservez les disques externes aux données qui n’ont pas besoin d’être synchronisées.

Si vous devez conserver du contenu synchronisé sur un disque externe, créez une séparation claire. Placez les fichiers synchronisés dans un dossier et les fichiers non synchronisés dans un autre. Lorsque vous devrez éjecter, vous saurez quel service de synchronisation mettre en pause.

Évitez d’ouvrir les fichiers de votre disque externe avec des apps qui enregistrent automatiquement dans iCloud (Pages, Numbers, Keynote, Aperçu). Ou au minimum, fermez ces apps et laissez-leur un instant pour libérer les fichiers avant d’éjecter.

Quand la mise en pause ne suffit pas

Parfois, vous avez mis la synchronisation en pause, quitté les apps, et le disque refuse toujours de s’éjecter. Le service de synchronisation a laissé un descripteur de fichier obsolète qui persiste même après la pause.

Vous pouvez forcer la libération de ces descripteurs en tuant le processus concerné :

kill $(lsof -t /Volumes/YourDriveName)

Cela tue tous les processus utilisant le disque. C’est agressif mais efficace.

Ejecta gère cela de façon plus chirurgicale. L’app identifie exactement quels processus retiennent votre disque, y compris les démons de synchronisation cloud, et vous permet de les quitter individuellement. Au lieu de tuer tout ce qui est connecté au disque, vous pouvez cibler uniquement le processus bird ou uniquement l’assistant Dropbox qui pose problème. C’est particulièrement utile lorsque vous ne savez pas lequel de plusieurs services de synchronisation est le coupable.

La synchronisation cloud et les disques externes ne sont pas condamnés à être en conflit. Il vous suffit d’avoir de la visibilité sur ce qui se passe en coulisses.

Si vous préférez ne pas passer par le Terminal à chaque fois, Ejecta vous montre exactement quel processus bloque votre disque — et vous permet de le quitter d'un seul clic, directement depuis la barre des menus.

Acheter — $9.99