In OS X può capitare che un disco esterno, collegato ad esempio via USB, non si “smonti” quando indichiamo al Mac di espellerlo (lo si fa dal suo menu contestuale con il comando Espelli). Se OS X ha identificato una ragione precisa per cui non può scollegare il disco la indica nell’avviso che ci dice appunto che non può espellere l’unità, in caso contrario si limita a spiegarci genericamente che il disco è in uso e non può essere scollegato.

Tutto ovvio e conseguente, il problema nasce quando il disco non può essere scollegato ma non c’è nessuna applicazione che lo sta usando in modo visibile. Non solo “usando il disco” nella sua totalità, ovviamente, ma anche semplicemente usando un file che vi è conservato. Ad esempio OS X ci impedisce di scollegare un disco esterno che contiene un documento che stiamo modificando in Anteprima.

espulsioneA parte errori di sistema e programmi poco “educati” che non rilasciano i file velocemente, il buon senso ci dice che se per OS X il disco è in uso ci sarà qualche processo non esplicitamente visibile che lo sta usando. Quale? Con l’interfaccia grafica del sistema operativo è impossibile saperlo, ma con il Terminale di OS X è facile avere indicazioni utili.

Un comando, quattro elementi

Apriamo una finestra del Terminale e digitiamo il comando lsof | grep “/Volumes” (attenzione alle virgolette, che servono). Questa stringa apparentemente incomprensibile comprende quattro elementi:

lsof è il comando list open file, che elenca tutti i file aperti in quel momento
| è il carattere pipe o barra verticale (Shift-\ sulla tastiera): indica che l’output del comando che precede (nel nostro caso lsof) va passato al comando che segue (grep)
grep è una utility per l’analisi dei file di testo che riproduce solo le righe che soddisfano dterminate condizioni, in questo caso riceve in input l’elenco dei file aperti (con molti altri parametri, come vedremo) e l’unica condizione è che contengano la stringa /Volumes. Questo perché nella “lingua” di Darwin, il cuore Unix di OS X, il percorso completo dei file su unità esterne la comprende sempre.

lsof
Ecco il file aperto che impedisce l'esplusione, collegato a tre elementi diversi: il Finder, Anteprima (Preview) e Quick Look

Quello che vedremo come risultato del comando è una serie di righe che hanno come ultimo elemento il nome del file aperto e come primo quello che ci interessa di più: il nome del processo o applicazione che lo mantiene aperto. Esaminiamo i processi coinvolti alla ricerca di programmi che non dovrebbero essere attivi e che invece lo sono. Possono essere applicazioni bloccate (e allora serve l'uscita forzata) o estensioni che ci siamo dimenticati di eliminare.

LASCIA UN COMMENTO