Il volume non può essere espulso perché è attualmente in uso


100

Dopo aver lavorato con un disco di backup USB esterno, desidero smontare in modo pulito l'unità. Quando si preme il pulsante 'espulsione' Finder mi avvisa con il messaggio:

  • " Il volume non può essere espulso perché è attualmente in uso. "

o

  • " Il disco" Nome disco "non è stato espulso perché potrebbe essere utilizzato da uno o più programmi ".

o quando si tenta di utilizzare il Terminale: umount /Volumes/Diskname

  • " umount (/ Volumes / Diskname): risorsa occupata - prova 'diskutil unmount' "

Per quanto ne so, non sto usando questo disco ma Finder dice che lo faccio, quindi devo sbagliarmi. Preferisco uno smontaggio pulito dell'unità. Poiché sono nel bel mezzo di svolgere più attività, non è preferibile disconnettersi e accedere come l'installazione di software di terze parti.

Il comando terminale lsofpotrebbe essere utile qui, ma personalmente penso che questo sia troppo complesso per un problema così "semplice" e, ad essere sincero, non so come usarlo correttamente.

La mia domanda: come faccio a sapere quale programma utilizza il mio disco in modo da poter uscire correttamente da quel programma ed espellere il mio disco?

Il volume non può essere espulso perché è attualmente in uso. Il disco "Camel" non è stato espulso perché potrebbe essere utilizzato da uno o più programmi. Il disco "Mammtoh" non è stato espulso perché uno o più programmi ... xkcd


2
"Per quanto ne so, non sto usando questo disco ma Finder dice che lo faccio, quindi devo sbagliarmi." Ti fidi troppo delle macchine. ;-) Spesso i computer hanno torto e noi umani abbiamo ragione.
Nicolas Barbulesco,

Quindi quello che stai dicendo è che ho ragione? ;)
Cugina Cocaina,


2
E se Spotlight è il colpevole, risparmiati un po 'di ripetizione: apple.stackexchange.com/a/211616/15417
John2095

Risposte:


130

lsofè davvero la tua scommessa migliore. Il modo più semplice e veloce sarebbe questo: -

sudo lsof /Volumes/myDrive

L'esecuzione può richiedere un paio di minuti, ma una volta completata, ti dà un elenco di file aperti sul disco. L'output sarà simile al seguente:

COMMAND    PID  USER   FD   TYPE DEVICE SIZE/OFF  NODE NAME
mds         89  root   19r   DIR   52,3      432     2 /Volumes/Photos
mds         89  root   23r   DIR   52,3      432     2 /Volumes/Photos
Finder     681 alans   14r   DIR   52,3      432     2 /Volumes/Photos
QuickLook 2158 alans    9r   REG   52,3  1141591 78651 /Volumes/Photos/_tmp_iphone_10_backup/APC_1546.JPG  

In questo caso, è l' QuickLookapplicazione che ha un file aperto. Chiudere direttamente l'applicazione è il modo migliore per risolvere il problema. Tuttavia, ciò non è sempre possibile. Ad esempio, QuickLook non viene visualizzato come un'applicazione accessibile nel Dock.

Se non è possibile chiudere manualmente l'applicazione, è possibile utilizzare il killcomando per terminarla dalla riga di comando. Per fare ciò, usa il PIDdalla seconda colonna come ID per uccidere. Dall'esempio sopra, sarebbe:

kill 2158

Si noti che a volte non funziona e killdeve essere utilizzata una forma più aggressiva . Ecco una serie di aggressività crescente (usando l'esempio PID del 2158):

kill 2158
sudo kill 2158
sudo kill -INT 2158
sudo kill -KILL 2158

Dovresti essere in grado di espellere il disco una volta che il processo / l'applicazione è stata interrotta.

Un'ultima nota, lsofpuò richiedere un minuto o due. Può anche bloccarsi, ma dovresti darlo almeno qualche minuto prima di decidere che è quello che è successo.

Inoltre, a volte il comando di base sudo lsof /Volumes/myDrivenon trova nulla. In tal caso, prova ad aggiungere l' +Dargomento (ad es sudo lsof +D /Volumes/myDrive.). Ciò eseguirà una scansione dall'alto verso il basso del disco. Ci vorrà più tempo, ma dovrebbe raccogliere tutto ciò che rende il disco non espulso.

( Hat hat al post di Alec Jacobson per ulteriori dettagli. )


1
Ho trovato anche questo, ma speravo che qualcuno avesse una soluzione non terminale. In caso contrario, otterrai il tuo più uno;)
CousinCocaine


3
→ Paolo: ti suggerirei di migliorare il comando suggerito come:/usr/bin/sudo lsof /Volumes/myDrive
dan

3
Oh eccellente, ho fatto lsof senza sudo che dà una serie di risultati totalmente diversi.
Alper,

2
Sì, sudo è sicuramente necessario in molti casi. Nel mio caso questo ha rivelato che era dovuto a Spotlight che cercava di indicizzare il disco, quindi la soluzione era disabilitare Spotlight per il disco, quindi arrestare / riavviare manualmente Spotlight.
Tom,

30

Ci hai provato $ diskutil unmount /Volumes/Diskname?

Oppure $ diskutil unmount force /Volumes/Diskname?

Come sottolinea la manpage :

A causa della natura complessa e intrecciata di Mac OS X, umount potrebbe non riuscire spesso. Si consiglia di utilizzare diskutil (1) (come in "diskutil unmount / mnt").

Se il tuo volume ha spazi nel nome, assicurati di sfuggire agli spazi con \, ad esempio:

$ diskutil unmount /Volumes/Disk\ Name

Oppure usa le virgolette per evitare confusione.

$ diskutil unmount "/Volumes/Disk Name"

1
Credo di aver provato questo e non ha funzionato. Ma la prossima volta lo proverò di nuovo e aggiornerò il mio post di conseguenza.
CousinCocaine,

Il tuo esempio ha virgolette, non apostrofi. Che è una buona cosa
Nicolas Barbulesco,

1
@NicolasBarbulesco: Grazie per averlo sottolineato, ho apportato correzioni alla risposta. Buona pesca!
Jason Robinson,

1
Ha funzionato -> sudo diskutil unmount force / Volumes / Diskname
tgkprog

1
@tgkprog Sono contento di sentirlo, anche grazie per il sudocomando, che può aiutare anche gli altri.
Jason Robinson,

15

Il problema è probabilmente causato dal processo  mds : Spotlight indicizza il tuo disco.

Ho questo problema e non ho ancora trovato una soluzione.


Ecco come disabilitare / riattivare l'indicizzazione Spotlight: iclarified.com/49187/…
rstackhouse

Ho anche scoperto che il servizio mds lo utilizza. Ho provato a disabilitare il servizio mds per flash drive usando "sudo mdutil -i off / Volumes / 16GB" ma non mi ha aiutato. Ho dovuto riavviare il Finder utilizzando "Opzione + clic" su FInder.
Aruna,

6

Potresti provare l'applicazione donationware " Cosa mi sta trattenendo? " Che mostra quale processo / applicazione sta usando il volume / cartella / file.

Questo programma è certificato dallo sviluppatore per Mac OS X 10.6 Snow Leopard, ma la pagina RoaringApps per questa applicazione lo elenca come funzionante su OS X 10.7 Lion e OS X 10.8 Mountain Lion.

Cosa mi sta trattenendo?

Hai mai avuto il problema di non poter svuotare il cestino o espellere un disco perché qualcosa ti sta impedendo? Di solito il motivo è che alcune applicazioni hanno un file aperto e quindi non è possibile eliminare il disco o eliminare il file. Ecco perché abbiamo realizzato What Keeping Me! Ciò che mi tiene identificherà l'applicazione che tiene aperto l'oggetto. È quindi possibile utilizzare Cosa mi sta trattenendo per chiudere l'applicazione problematica (o ucciderla se necessario) in modo da poter eseguire l'attività. Quello che mi sta trattenendo include un flusso di lavoro di Automator in modo da poter eseguire ricerche anche direttamente dal Finder!


1
Sembra un software valido, ma preferisco davvero le soluzioni native di OS X.
Cugina Cocaina,

Per nativo intendi qualcosa che Apple fornisce? Non c'è niente di simile sul fronte della GUI. Inoltre, WKM è in circolazione da diversi anni.
MK

Grazie per la tua aggiunta. Nativo non è la parola corretta, ciò che intendevo era "non di terze parti". WKM è una buona soluzione, ma personalmente preferisco lsof.
Cugina Cocaina,

Ho appena testato l'app in High Sierra e funziona ancora. È anche a 64 bit.
dianeoforegon,

4

Ho ricevuto questo messaggio nonostante sia sicuro che non ci siano file aperti sul volume . Ho controllato questo con Why Not Unmount , uno strumento GUI che può indicare i file aperti su un disco.

Nel mio caso, era un segno che il file system era corrotto. L'esecuzione di Utility Disco (o, se ciò non bastasse, DiskWarrior) ha risolto il problema e reso il disco nuovamente espulso.


1
Nel mio caso, il sistema non era corrotto.
Cugina Cocaina,

Sembra improbabile. Più probabilmente Spotlight o qualche altra app o servizio ha un blocco sul disco.
Tom,

3

Sia la soluzione a riga di comando che Cosa mi sta mantenendo funzionano alla grande.

Per ricapitolare, la riga di comando nel terminale è:

lsof | grep /Volumes/myDrive

L'applicazione GUI è What's Keeping Me, disponibile presso Hamsoft Engineering .

Schermate di entrambi con la stessa ricerca in corso.

Uscita dalla riga di comando GUI per Cosa mi sta trattenendo

Preferisco leggermente la riga di comando, poiché è sempre lì con te. D'altra parte, What's Keeping Me è più veloce e più facile da usare se è installato.


3

NOTA: fseventerfunziona fino a quando OS X 10.10 Yosemite e la pagina dello sviluppatore http://www.fernlightning.com nel frattempo sono offline. Quindi i collegamenti al prodotto sono stati rimossi. Con brew cask install fseventeresso potrebbe essere ancora disponibile nelle versioni precedenti di macOS.

Esiste un'alternativa alla GUI dell'app CLI lsof:
fseventerè un'ottima utility di monitoraggio dell'accesso al file system per vari scopi . Funziona con autorizzazioni super utente ( sudo), quindi vede tutti gli accessi in lettura / scrittura a tutti i file system montati e li presenta in una panoramica molto chiara.

La mia esperienza: ho avuto un volume che costantemente non poteva essere espulso correttamente (come negli screenshot dell'OP), e avevo sempre bisogno di un "espulsione forzata", a volte anche di una disconnessione fisica forzata (né raccomandato! disco) o un arresto del sistema per bypassare quel metodo bruto.

La mia correzione: Riassunto: il problema di espulsione può essere causato da contenuti di file corrotti o legacy su quel volume. La rimozione del contenuto problematico può risolvere questo problema in modo permanente. In dettaglio:

  1. Determinare a quale file si accede (con lsofo fseventer). Nel mio caso si trattava di un classico file Mac OS con un fork di risorse che rimaneva aperto, probabilmente con il processo di analisi del disco in background (Spotlight, QuickLook o simile).

  2. Esegui il backup dei dati problematici in un archivio di file (che conserva i dati delle risorse specifiche per Mac (classici). Ho semplicemente usato la funzione "Comprimi" nativa di Finder dal menu contestuale.

  3. Elimina il file / la cartella problematica.

    • Con Finder come al solito. Probabilmente questo fallirà, in quanto si tratta di un "file / cartella problematico".
    • Con Finder plus tieni premuto ALT mentre svuoti il ​​Cestino. Questo crea un po 'più di forza, ma probabilmente fallirà comunque.
    • Attraverso il terminale con sudo rm -R /path/to/troublesome/FileOrFolder. Questo alla fine ha funzionato dopo che i tentativi di eliminazione del Finder sono falliti.
  4. Prova a smontare di nuovo il volume. Potrebbe ancora fallire, poiché i processi in background, che hanno fallito, potrebbero essere ancora in uno stato irrecuperabile .

  5. Ricomincia. Quindi riprovare a smontare. Da allora il volume ha funzionato di nuovo bene. Operazioni normali di montaggio, smontaggio, lettura / scrittura. Solo quando un file è stato effettivamente aperto da un processo utente, è stato impedito lo smontaggio. Comportamento perfettamente normale.


1

Soluzione Accertarsi che tutti i programmi siano chiusi. Fai clic sull'icona Apple nella parte superiore sinistra dello schermo, quindi fai clic su Uscita forzata. Nell'elenco fai clic su Finder. Ora fai clic sul pulsante Riavvia. Quindi prova a espellere nuovamente l'unità.


Hai visto che questa soluzione funziona?
Nicolas Barbulesco,

1

Prova a riavviare il Finder. Qui funziona


Non sono sicuro del motivo per cui questo è stato sottoposto a downgrade; Nel mio caso, QuickLook e mds hanno entrambi bloccato (nonostante nessuna finestra di ricerca attiva aperta). Potrei riavviare mds, ma qlmanage -rho detto che stava "resettando quicklookd" ma ha comunque tenuto il file aperto secondo lsof +D /path/to/volume. Un riavvio del Finder lo ha chiarito e sono stato in grado di espellere il volume.
Capehart AC

-2

Ho riavviato il mio Mac e l'ho risolto :-)


1
Preferisco uno smontaggio pulito dell'unità. Dato che sono nel mezzo di svolgere più attività, non è preferibile disconnettersi e accedere come l'installazione di software di terze parti.
Cugina Cocaina,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.