Come espellere il mio disco esterno quando il mio Mac si rifiuta a causa di Spotlight?


40

Ho collegato un disco esterno al mio Mac. Ora voglio espellerlo. Ma il mio Mac rifiuta ostinatamente e dice che un'applicazione potrebbe usare il disco.

Non ho avviato alcuna app né aperto alcun file dal disco.

Ho scaricato e installato l'app  Cosa mi sta trattenendo? Questa app è molto carina. Mi dice che il processo  mdssta usando il mio disco.

Ho ucciso il processo  mdse diversi processi  mdworker. Questi sono per Spotlight. Ma tali processi vengono nuovamente generati.

Come posso espellere il mio disco dal mio Mac?

Ho Mac OS X 10.6.8.


Aspettare che finiscano i processi? Ho trovato che funziona in pratica per me.
Chogg,

Risposte:


27

Disattiva semplicemente l'indicizzazione per l'unità e cancella il contenuto del journal sul volume. Per fare ciò, apri Terminale e inserisci il seguente comando:

sudo mdutil -Ei off "/Volumes/Name_of_Drive"

È necessario eseguire questa procedura come amministratore. Inserisci la tua password quando richiesto. Potrebbe essere necessario un riavvio.

In alternativa, come suggerito da Simon White, basta spegnere la macchina e quindi scollegare l'unità. L'avvertenza è che l'unità inizierà a indicizzare quando sarà nuovamente connessa, tuttavia.


4
è sufficiente interrompere semplicemente il processo. sudo mdutil -i off "/Volumes/Name_of_Drive"( -Ecancella e ricostruisce l'indice). Dovrebbe ricominciare la scansione la prossima volta che si monta l'unità. per disabilitare la scansione permanente dell'unità, utilizzare -d( sudo mdutil -d "/Volumes/Name_of_Drive"). Vedi tutti questi argomenti e altro digitando mdutilnella tua riga di comando.
Dannid,

2
Mi è piaciuto il suggerimento, ma per favore non suggerire di uscire dopo il comando ... Non me ne sono accorto e ho perso la cronologia dell'output che avevo lì.
ravemir,

@njboot - No. Il comando "history" mi dà solo la cronologia dei comandi inseriti, non mi restituisce il loro risultato.
Nicolas Barbulesco,

1
Dopo aver emesso il comando mdutil, non riuscivo ancora a espellere il disco. Quindi ho anche pubblicato "sudo killall mds", e questo ha funzionato.
Thomas Tempelmann,

21

Puoi provare a smontarlo dalla riga di comando:

diskutil unmount /Volumes/MountPoint

o con forza:

diskutil unmount force /Volumes/MountPoint

Se il problema persiste, controlla cosa sta usando il tuo disco:

sudo fs_usage -w -f filesys | grep Volumes

O usando lsof:

sudo lsof | grep Volumes

(Alcuni processi si presentano solo quando lsof viene eseguito come amministratore.)


Per disabilitare Spotlight temporaneo, eseguire:

sudo mdutil -a -i off

Quindi sudo mdutil -a -i onriattivare.


Altre app che possono essere utili: Whats Keeping Me .


2
Ho appena scoperto che Spotlight (mds, mds_store, mdworker) non verrà elencato quando corro lsofcome utente. Tuttavia, sudo lsof | grep Volumesfunziona bene. ("Whats Keeping Me" ha una casella di controllo "Come amministratore", rispettivamente.)
hans_meine,

5

Spesso trovo che mds mi sta impedendo di smontare un volume.

sudo killall mds

E poi (rapidamente) prova a espellere di nuovo il volume.

Nel mio caso, sto montando il volume principale di un altro Mac sul mio Mac attuale. Non voglio disabilitare Spotlight poiché desidero riprendere l'indicizzazione quando il volume esterno viene restituito all'altro Mac (come volume di avvio).


Interessante. Forse il "rapidamente" è la chiave!
Nicolas Barbulesco,

Grazie! Questa è l'unica risposta che ha funzionato per me oltre all'espulsione forzata, cosa che non vorrei fare.
Addison

2

Per impedire a Spotlight di indicizzare l'unità, creare un file di testo normale in TextEdit senza contenuto, solo il titolo di .metadata_never_index e salvarlo all'esterno. Deseleziona usa l'estensione "txt" ... e dì a TextEdit che sì, vuoi salvarlo con un punto sul davanti (che lo renderà invisibile).

Non sono sicuro se questo lo fermerà in questo momento, ma lo impedirà in futuro.

In alternativa, trasforma questo Applescript in un'app, per forzare l'espulsione [con i soliti avvertimenti sull'espulsione forzata ...] ... credito a The MacTipper Blog

    property show_credits : true

set the_volumes to do shell script "ls /Volumes/"
tell application "Finder" to set the_HD to path to home folder as string

set ejectable_volumes to {}
repeat with i in (every paragraph of the_volumes)
    if the_HD does not start with i then
        set end of ejectable_volumes to (i as string)
    end if
end repeat
if (count of items of ejectable_volumes) is 0 then
    tell me to activate
    display dialog "Sorry, but there are no ejectable volumes."
else if (count of items of ejectable_volumes) is 1 then
    tell me to activate
    set the_result to item 1 of ejectable_volumes as string
    display dialog ("Eject \"" & the_result & "\"?") buttons {"No", "Yes"} default button 2 cancel button "No"
    set the_path to quoted form of ("/Volumes/" & the_result as string)
    do shell script "hdiutil eject -force " & the_path
else
    tell me to activate
    set the_result to choose from list ejectable_volumes with prompt "Please choose a volume to eject (You can select multiple items):" with multiple selections allowed
    if the_result is not false then
        repeat with j in the_result
            set the_path to quoted form of ("/Volumes/" & j as string)
            do shell script "hdiutil eject -force " & the_path
        end repeat
    end if
end if

if show_credits is true then
    tell me to activate
    set the_credits to button returned of (display dialog "This applescript brought to you by The MacTipper Blog.\n\nhttp://mactipper.com" buttons {"Don't Show Again", "Visit TMB", "OK"} default button 3) as string
    if the_credits is "Don't Show Again" then
        set show_credits to false
    else if the_credits is "Visit TMB" then
        open location "http://mactipper.com"
    end if
end if

Grazie. Ma ... "forzare l'espulsione [con i soliti avvertimenti sull'espulsione forzata ...]" Questo è preoccupante. Se avessi accettato di correre il rischio di corrompere il disco, lo avrei semplicemente disconnesso.
Nicolas Barbulesco,

Quindi imposta il flag no spotlight e attendi che venga visualizzato e interrompi l'indicizzazione.
Tetsujin,

Oppure, è possibile eseguire sudo diskutil unmountDisk force /Volumes/Name_of_Volumedal terminale per farlo forzatamente. Quella sceneggiatura non è necessaria.
njboot,

@NicolasBarbulesco Questi non sono gli stessi. Smontare forzatamente un volume non equivale a staccare la spina. In quest'ultimo caso, si sta fisicamente rimuovendo l'alimentazione dal dispositivo in modo improvviso, che, come si immagina, può causare danni a un disco magnetico che ruota a diversi K rpm. Nel primo, stai semplicemente forzando il dispositivo a smontare il volume. Il disco quindi si gira correttamente e si stacca la spina normalmente. È molto più sicuro.
njboot,

@njboot - Non ho provato il tuo diskutilcomando. Ma ho provato l'equivalente con Utility Disco - senza risultati.
Nicolas Barbulesco,

2

Puoi provare a chiudere forzatamente Finder, questo ha funzionato per me. Il Finder era sospeso sull'unità USB, quindi la chiusura forzata e il rilancio rilasciavano qualunque fosse il blocco.


come si farebbe? forzare uscire da finder?
Ruskes,

Opzione + Comando + ESC!
sdive,

Ma può funzionare nel caso Spotlight della mia domanda?
Nicolas Barbulesco,

1

Se non riesci a disconnettere un'unità per qualsiasi motivo, puoi semplicemente spegnere il computer. Quando il computer è spento, è possibile scollegare l'unità in modo sicuro. Quindi avviare il computer. Questo non solo ti consentirà di scollegare in modo sicuro l'unità, ma assicurerà che il processo mds si riavvii nel caso in cui sia effettivamente bloccato.

Se hai deciso di non voler utilizzare Spotlight con quell'unità, tutto ciò che devi fare per impedire che venga indicizzato è aggiungere l'unità alla scheda Privacy del riquadro Spotlight delle Preferenze di Sistema. Spotlight ignorerà l'unità.

In alternativa, se si desidera utilizzare Spotlight su quell'unità, creare un indice la prima volta che il computer vede l'unità è un male necessario. Una volta creato l'indice, viene aggiornato con ogni modifica a ogni file, quindi non ti farà aspettare di nuovo. Ma se non vedi una barra di avanzamento nel menu Spotlight, è probabile che mds sia bloccato. Ancora una volta, basta spegnere il computer in quel caso e scollegare l'unità.


1
Sicuramente posso spegnere il Mac. Ma questa non è un'opzione.
Nicolas Barbulesco,

Mi piace l'idea che Spotlight conosca il mio disco. Ma per il momento ho provato a fare in modo che Spotlight ignorasse il mio disco. Usando le Preferenze di Sistema → Spotlight. Questo non ha funzionato: "Impossibile a causa di un errore sconosciuto." Ottimo messaggio di errore! Apple deve aver assunto un disertore da Micro $ oft! Ho anche provato a lasciare agire il tempo. Sono andato al lavoro e ho lasciato che Spotlight indicizzasse il disco per tutto il giorno. La sera sono tornato e il problema era sempre lo stesso.
Nicolas Barbulesco,

In realtà penso che il problema sia che mdsnon sta dicendo al sistema che ha finito con l'unità o che non si è chiuso dopo che è stato fatto e, facendo ciò, mantiene l'unità fino a quando il processo non viene ucciso in qualche modo (come un arresto). Se vedo il mdsnon utilizzo della CPU mentre dichiaro di utilizzare l'unità, forzo l'espulsione dell'unità.
bauerMusic

@bauerMusic - Come "forza l'espulsione del drive"?
Nicolas Barbulesco,

@NicolasBarbulesco La 'Forza espulsione unità' è un'opzione che il sistema offre dopo un po '. Se si tenta di espellere, dovrebbe essere visualizzato il messaggio "Tentativo di espulsione dell'unità" (o simile) e dopo circa un minuto (in caso di esito negativo), mostrare un altro popup con un'opzione per forzare l'espulsione.
bauerMusic,

1

Un'altra semplice opzione è quella di espellerlo tramite Utility Disco.


Hai letto i commenti nella risposta di Tetsujin? Utility Disco non offre l'opzione "force"
klanomath

Provalo e basta. Una semplice espulsione tramite Disk Utilities funziona sempre per me quando un'unità esterna di qualsiasi tipo non viene espulsa perché è "in uso".
Tim Undheim,

Ho provato a espellere l'unità con Utility Disco. Ma questo non ha funzionato.
Nicolas Barbulesco,

1
Mi dispiace sentirlo. Utility Disco espelle dischi "in uso" non montabili perfettamente sulla mia unità che funziona su 10.7.5. Potresti esaminare DiskWarrior.
Tim Undheim,

1
Per qualsiasi motivo, l'utilizzo del comando di disinstallazione di Utility Disco ha funzionato per me su un disco con problemi.
MiB

0

Puoi dire a Spotlight che non dovrebbe mai indicizzare quell'unità e quindi non dovrai preoccuparti.

Nelle Preferenze di Sistema 10.11 c'è una voce per 'Spotlight', che ha una scheda chiamata 'Privacy'. Fai clic su "+", seleziona l'unità e il gioco è fatto. Chiudi le Preferenze di Sistema, attendi qualche secondo affinché il sistema rilevi l'aggiornamento e dovresti essere in grado di espellere. Ora non inizierà a indicizzare il disco la prossima volta che ti connetti, quindi non avrai più il problema in futuro.


Ci ho provato. Quello non ha funzionato. Vedi il mio commento qui: apple.stackexchange.com/questions/142459/…
Nicolas Barbulesco
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.