diskutil eject: come espellere i dischi dal Terminale del Mac
Espelli qualsiasi disco del Mac dal Terminale con diskutil, inclusi lo smontaggio forzato di un volume che non si espelle e l'uso di lsof per scoprire cosa lo trattiene.
Il Finder ti dice che il disco è in uso. Ma non ti dice cosa lo sta usando né cosa farci. Il Terminale fa entrambe le cose.
Risposta rapida: esegui
diskutil eject /Volumes/YourDriveNameper espellere un disco dal Terminale. Se non funziona, usasudo lsof /Volumes/YourDriveNameper vedere cosa blocca l’espulsione,kill <PID>per fermare il processo responsabile, poi espelli di nuovo. Come ultima risorsa,diskutil unmountDisk force /dev/diskNforza la disconnessione del disco, ma fallo solo quando nulla sta scrivendo attivamente.
Se hai dimestichezza con la riga di comando, il Terminale è il modo più potente per gestire le espulsioni ostinate su macOS. E se non ce l’hai ancora, questi comandi sono un buon punto di partenza.
Espulsione di base con diskutil eject
Il modo più diretto per espellere un disco esterno dal Terminale del Mac:
diskutil eject /Volumes/YourDriveName
Sostituisci YourDriveName con il nome reale del tuo disco, esattamente come appare nel Finder. Se il nome contiene spazi, mettilo tra virgolette:
diskutil eject "/Volumes/My Drive"
Fa la stessa cosa che fa il clic sul pulsante di espulsione nel Finder. Se funziona, il disco si smonta in modo pulito e hai finito. Se non funziona, ottieni un messaggio di errore più informativo di quanto il Finder offra mai.
Puoi anche smontare senza espellere (il disco resta visibile in Utility Disco ma non è montato):
diskutil unmount /Volumes/YourDriveName
La differenza conta per i dischi con più partizioni. unmount rimuove un solo volume. eject rimuove il dispositivo fisico e tutti i suoi volumi in un colpo solo.
Trovare l’identificatore del disco con diskutil list
Prima di usare i comandi più avanzati, ti serve l’identificatore del disco. Elenca tutti i dischi collegati:
diskutil list
L’output mostra ogni disco e le sue partizioni. Il tuo disco esterno sarà qualcosa come disk4 o disk5. I dischi interni sono di solito disk0 e disk1.
Per una panoramica più leggibile dei soli dischi esterni:
diskutil list external
Una volta che conosci l’identificatore del disco, puoi anche espellere usando il percorso /dev/ invece del nome del volume:
diskutil eject /dev/disk4
È utile quando il nome del volume contiene caratteri insoliti oppure quando il volume non è montato ma il disco è ancora collegato.
Come espellere tutti i dischi esterni in una volta
Se devi espellere ogni disco esterno con un solo comando, ci sono due approcci.
Usando diskutil per trovare ed espellere tutti i dischi esterni:
diskutil list external | grep -o 'disk[0-9]*$' | while read disk; do diskutil eject "/dev/$disk"; done
Oppure usando AppleScript dal Terminale, che replica ciò che fa il Finder:
osascript -e 'tell application "Finder" to eject (every disk whose ejectable is true)'
L’approccio con AppleScript espelle solo i dischi che il Finder considera espellibili: salta il disco di avvio e i volumi di rete, che di solito è proprio quello che vuoi.
Smontaggio forzato quando diskutil eject fallisce
Se una normale espulsione fallisce con un errore tipo «couldn’t unmount disk», forzala:
diskutil unmount force /Volumes/YourDriveName
Oppure smonta tutti i volumi di un disco specifico in una volta sola:
diskutil unmountDisk force /dev/disk4
Lo smontaggio forzato dice a macOS di rilasciare il volume a prescindere da cosa lo sta usando. È più controllato dello scollegare fisicamente il disco (il sistema svuota comunque le cache e avvisa i processi), ma non aspetta che i processi chiudano i file in modo pulito.
Usa lo smontaggio forzato quando sai che non si sta scrivendo nulla di importante. È l’equivalente da riga di comando dell’espulsione forzata da Utility Disco. Consulta la nostra guida su quando l’espulsione forzata è sicura e quando è rischiosa prima di usarlo su un disco che era in uso attivo.
Trovare cosa blocca l’espulsione con lsof
Questo è il comando che rende il Terminale prezioso per i problemi di espulsione:
lsof /Volumes/YourDriveName
lsof sta per «list open files». Mostra ogni processo che ha un file aperto su quel volume: il nome del processo, l’ID del processo (PID), l’utente che lo esegue e quale file è aperto. (Per una spiegazione mirata dei flag e degli schemi d’uso di lsof, consulta la nostra guida al comando lsof per utenti Mac.)
Per risultati completi (compresi i processi di sistema), eseguilo con sudo:
sudo lsof /Volumes/YourDriveName
Senza sudo vedi solo i processi di proprietà del tuo account utente. I processi di sistema come mds di Spotlight o backupd di Time Machine non compaiono. Con sudo vedi tutto ciò che sta davvero tenendo aperto il disco.
Leggere l’output di lsof
L’output ha più o meno questo aspetto:
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
mds 123 root 12r REG 1,8 4096 789 /Volumes/MyDrive/.Spotlight-V100/...
Finder 456 aaron 15r DIR 1,8 1024 2 /Volumes/MyDrive
Dropbox 789 aaron 8u REG 1,8 8192 345 /Volumes/MyDrive/Projects/.dropbox
Le colonne che contano di più:
- COMMAND: il nome del processo, cioè ciò che ti dice cosa blocca l’espulsione.
- PID: l’ID del processo, che userai per terminarlo se necessario.
- FD: FD descrive come è stato aperto il file: r per lettura, w per scrittura, u per entrambe. Non indica l’attività attuale né dimostra l’assenza di scritture in sospeso sul volume.
- NAME: il file specifico a cui si sta accedendo, che spesso rivela esattamente perché quel processo è lì.
Sospettati frequenti: mds (indicizzazione di Spotlight), backupd (Time Machine), Dropbox, Google Drive, il Finder stesso. Vedi i nostri approfondimenti su Spotlight che blocca l’espulsione e su iCloud/Dropbox che impediscono l’espulsione per soluzioni mirate.
Terminare i processi che bloccano
Chiudi le app supportate dalla barra dei menu. I processi di sistema sono gestiti separatamente e possono richiedere attesa o spegnimento. Salva il lavoro, completa copie e backup e chiudi normalmente le app prima di riprovare. Forzare l’uscita o l’espulsione può causare perdita di dati; Ejecta non certifica la sicurezza delle scritture.
kill 789
Questo invia un segnale di terminazione ordinata. Il processo ha la possibilità di chiudere i file e fare pulizia. Dagli qualche secondo per uscire, poi riprova a espellere.
Se non risponde a un kill ordinato:
kill -9 789
L’uscita forzata è l’ultima risorsa. Può perdere lavoro non salvato o interrompere scritture. Salva prima e lascia terminare i trasferimenti. I nomi dei processi Spotlight non dimostrano un accesso in sola lettura. Non forzare l’uscita di mds o mds_stores per liberare un disco. Attendi, chiudi le app e riprova con l’espulsione normale. Ejecta identifica questi processi, ma non offre la normale chiusura dei processi di sistema. Se il disco resta bloccato, salva tutto e spegni completamente il Mac prima di scollegarlo.
Salva il lavoro, completa copie e backup e chiudi normalmente le app prima di riprovare.
Procedura completa di risoluzione
Salva il lavoro, completa copie e backup e chiudi normalmente le app prima di riprovare.
diskutil eject "/Volumes/YourDriveName"
sudo lsof "/Volumes/YourDriveName"
I nomi dei processi Spotlight non dimostrano un accesso in sola lettura. Non forzare l’uscita di mds o mds_stores per liberare un disco. Attendi, chiudi le app e riprova con l’espulsione normale. Ejecta identifica questi processi, ma non offre la normale chiusura dei processi di sistema. Se il disco resta bloccato, salva tutto e spegni completamente il Mac prima di scollegarlo.
Il nome di un processo o l’elenco dei file aperti non dimostra che non ci siano scritture in corso. Salva il lavoro, completa copie e backup e chiudi normalmente le app prima di riprovare. Forzare l’uscita o l’espulsione può causare perdita di dati; Ejecta non certifica la sicurezza delle scritture.
Varianti diagnostiche utili
Controlla se è proprio Spotlight a trattenere il disco:
lsof /Volumes/YourDriveName | grep mds
Elenca solo i nomi univoci dei processi che bloccano l’espulsione (senza righe duplicate):
lsof /Volumes/YourDriveName | awk '{print $1}' | sort -u
Osserva l’I/O del disco in tempo reale per vedere se qualcosa sta scrivendo attivamente:
sudo fs_usage -f diskio | grep YourDriveName
Questo gira in continuazione e mostra ogni operazione sul disco man mano che avviene. Premi Control-C per fermarlo. Usalo quando lsof mostra un processo ma non sei sicuro se stia scrivendo attivamente o se stia solo tenendo un handle obsoleto.
Quando il Terminale è più fatica di quanto valga
Questi comandi sono potenti e, dopo averli usati qualche volta, diventano una seconda natura. Ma c’è un costo reale nel passare dal tuo lavoro a una finestra del Terminale: eseguire comandi diagnostici, interpretare output tecnici, decidere quale PID è sicuro terminare.
Ejecta: Ejecta offre la diagnosi gratuita dei dischi senza una prova a tempo. La licenza a pagamento sblocca uscita ed espulsione per le app supportate, Espelli tutto e i controlli Time Machine. I processi di sistema possono richiedere attesa, autorizzazione o spegnimento. Salva il lavoro e completa prima i trasferimenti.
Nessun limite di computer o attivazioni. Richieste di rimborso entro 30 giorni.
Ejecta offre la diagnosi gratuita dei dischi senza una prova a tempo. La licenza a pagamento sblocca uscita ed espulsione per le app supportate, Espelli tutto e i controlli Time Machine. I processi di sistema possono richiedere attesa, autorizzazione o spegnimento. Salva il lavoro e completa prima i trasferimenti.
Acquista ora -Articoli correlati
Come espellere una chiavetta USB dal Mac in sicurezza
Tutti i modi per espellere una chiavetta USB su Mac, e cosa fare quando macOS dice che il disco è in uso e non …
Come trovare, aprire e usare un disco esterno su Mac
Collega un disco esterno al Mac, trovalo nel Finder, apri i tuoi file e scollegalo in sicurezza. Una guida …
Perché il tuo Mac rallenta quando colleghi un disco esterno
Collegare un disco esterno non dovrebbe rallentare l'intero sistema, ma spesso accade. Ecco cosa succede …
Capire i permessi dei dischi su macOS e i dischi esterni
I problemi di permessi possono impedirti di accedere, modificare o espellere i dischi esterni su Mac. Ecco …