Come impedire a iCloud e Dropbox di bloccare l'espulsione del disco
I servizi di sincronizzazione cloud sono famosi per impedire l'espulsione dei dischi esterni su Mac. Ecco perché si aggrappano ai tuoi dischi e come aggirare il problema.
Hai chiuso ogni app. Hai salvato tutto. Fai clic su espelli e macOS dice che il disco è ancora in uso. Esegui lsof e tra i risultati vedi bird, cloudd o Dropbox. Un servizio di sincronizzazione cloud tiene il tuo disco in ostaggio.
È una delle cause più comuni e meno comprese dei fallimenti di espulsione su Mac. I servizi di sincronizzazione cloud girano di continuo in background e sono progettati per monitorare i file alla ricerca di modifiche. Questo monitoraggio comporta descrittori di file aperti, e descrittori di file aperti significano che il disco non si espelle.
Perché i servizi di sincronizzazione bloccano l’espulsione
I servizi di sincronizzazione cloud funzionano osservando le cartelle alla ricerca di modifiche. Quando un file viene creato, modificato o eliminato, il servizio se ne accorge e sincronizza il cambiamento sul cloud. Per rilevare queste modifiche, il servizio mantiene descrittori di file aperti o usa degli osservatori di eventi del filesystem sulle directory che controlla.
Il problema si presenta quando uno dei percorsi monitorati si trova sul tuo disco esterno. Può succedere in diversi modi:
Hai messo di proposito una cartella sincronizzata sul disco. Magari hai spostato la cartella di Dropbox sul disco esterno per questioni di spazio, oppure ci tieni una cartella di progetto condivisa tramite iCloud Drive.
Un’applicazione ha creato sul disco un file che un servizio di sincronizzazione ha poi rivendicato. Alcune app salvano file temporanei, cache o metadati di progetto su qualunque volume stiano usando.
Spotlight ha indicizzato il disco e un servizio di sincronizzazione ha intercettato i dati dell’indice. È un effetto indiretto, ma succede.
iCloud nello specifico
Il daemon di sincronizzazione di iCloud su macOS si chiama bird (sì, proprio così). Vedrai anche cloudd occuparsi di alcune operazioni di sincronizzazione. Questi processi girano come servizi di sistema e si riavviano automaticamente se li chiudi.
Se bird blocca il tuo disco, sta monitorando un file o una cartella su quel volume. Tra le cause più comuni:
- iCloud Scrivania e Documenti: se hai attivato questa funzione e il tuo disco esterno compare come posizione nel Finder, iCloud potrebbe indicizzare percorsi a esso correlati.
- Anteprima e QuickLook: aprire un file del disco esterno in Anteprima può creare riferimenti a file recenti sincronizzati con iCloud.
- Pages, Numbers o Keynote: queste app salvano automaticamente su iCloud per impostazione predefinita. Se hai aperto un documento dal disco esterno, l’app potrebbe mantenere un collegamento tra il file locale e un riferimento iCloud.
Per verificare se è iCloud a bloccarti:
lsof /Volumes/YourDriveName | grep -i bird
lsof /Volumes/YourDriveName | grep -i cloudd
Dropbox nello specifico
Dropbox è ancora più aggressivo nel monitoraggio dei file. Sulle versioni recenti di macOS, il client Dropbox usa il framework File Provider di Apple (il vecchio approccio con estensione del kernel è stato dismesso in macOS 12.3) per monitorare in tempo reale le operazioni sul filesystem.
Se la tua cartella Dropbox o una qualsiasi cartella sincronizzata con Dropbox si trova sul disco esterno, Dropbox manterrà connessioni persistenti verso quel volume. Persino i file che hanno finito di sincronizzarsi da tempo possono avere su di sé descrittori di Dropbox a scopo di monitoraggio.
Potresti vedere anche il processo fileproviderd di Apple tenere aperti dei file per conto di Dropbox. È il daemon di sistema che gestisce tutte le estensioni File Provider, comprese Dropbox, OneDrive e Google Drive. Può creare descrittori di file aggiuntivi sui volumi che quei servizi stanno monitorando.
L’approccio più affidabile con Dropbox: chiudi completamente l’applicazione Dropbox prima di espellere. Fai clic sull’icona di Dropbox nella barra dei menu, clicca sulla tua foto profilo e scegli Esci. Dopo aver espulso il disco, riapri Dropbox.
Google Drive e OneDrive
L’app desktop di Google Drive (Drive per computer) crea un’unità virtuale che può interagire con i tuoi dischi esterni tramite le operazioni sui file. Se hai copiato file tra Google Drive e il disco esterno, il client Drive potrebbe mantenere dei riferimenti.
OneDrive si comporta in modo simile a Dropbox, con monitoraggio dei file in background. In genere è meno aggressivo nel tenere aperti i descrittori di file, ma può comunque bloccare l’espulsione.
Entrambi i servizi possono essere messi in pausa o chiusi dalle loro icone nella barra dei menu prima di espellere.
Il flusso di lavoro pratico
Se lavori spesso con file su dischi esterni e usi servizi di sincronizzazione cloud, prendi l’abitudine di mettere in pausa la sincronizzazione prima di espellere.
Per iCloud non c’è un comodo pulsante di pausa, ma puoi disattivare temporaneamente iCloud Drive in Impostazioni di Sistema > ID Apple > iCloud > iCloud Drive. È però un’operazione invasiva.
Per Dropbox, metti in pausa la sincronizzazione dall’icona nella barra dei menu. Fai clic sull’icona di Dropbox, clicca sul tuo profilo e scegli «Sospendi sincronizzazione».
Per Google Drive, fai clic sull’icona di Drive nella barra dei menu e scegli «Metti in pausa la sincronizzazione».
Dopo aver messo in pausa, attendi qualche secondo perché i descrittori di file aperti si chiudano, poi espelli il disco.
Prevenire il problema
L’approccio più pulito è non tenere mai cartelle sincronizzate sul cloud sui dischi esterni. Conserva le cartelle di sincronizzazione sull’archiviazione interna del Mac e usa i dischi esterni per i dati che non hanno bisogno di essere sincronizzati.
Se proprio devi tenere contenuti sincronizzati su un disco esterno, crea una separazione netta. Metti i file sincronizzati in una cartella e quelli non sincronizzati in un’altra. Quando dovrai espellere, saprai quale servizio di sincronizzazione mettere in pausa.
Evita di aprire i file del disco esterno con app che salvano automaticamente su iCloud (Pages, Numbers, Keynote, Anteprima). O quanto meno, chiudi quelle app e concedi loro un momento per rilasciare i descrittori di file prima di espellere.
Quando la pausa non basta
A volte hai messo in pausa la sincronizzazione, chiuso le app, e il disco continua a non espellersi. Il servizio di sincronizzazione ha lasciato un descrittore di file obsoleto che persiste anche dopo la pausa.
Puoi forzare il rilascio di questi descrittori terminando il processo specifico:
kill $(lsof -t /Volumes/YourDriveName)
Questo termina ogni processo che usa il disco. È aggressivo ma efficace.
Ejecta gestisce la cosa in modo più chirurgico. Individua esattamente quali processi stanno trattenendo il tuo disco, daemon di sincronizzazione cloud compresi, e ti permette di chiuderli uno per uno. Invece di terminare tutto ciò che è collegato al disco, puoi prendere di mira solo il processo bird o solo il processo di supporto di Dropbox che sta causando il problema. È particolarmente utile quando non sai bene quale, tra diversi servizi di sincronizzazione, sia il responsabile.
Sincronizzazione cloud e dischi esterni non devono per forza essere in conflitto. Ti serve solo visibilità su cosa succede dietro le quinte.
Se preferisci non usare il Terminale ogni volta, Ejecta ti mostra esattamente quale processo sta bloccando il disco — e ti permette di chiuderlo con un clic, direttamente dalla barra dei menu.
Acquista ora — $9.99