Como ejetar minha unidade externa quando o meu Mac se recusa por causa do Spotlight?

40

Conectei um disco externo ao meu Mac. Agora, eu quero ejetar. Mas meu Mac teimosamente recusa e diz que um aplicativo pode estar usando o disco.

Não iniciei nenhum aplicativo nem abri nenhum arquivo do disco.

Eu baixei e instalei o aplicativo  O que está me mantendo? Este aplicativo é muito bom. Ela me diz que o processo  mdsestá usando meu disco.

Eu matei o processo  mdse vários processos  mdworker. Estes são para o Spotlight. Mas esses processos são gerados novamente.

Como posso ejetar meu disco do meu Mac?

Eu tenho o Mac OS X 10.6.8.

Nicolas Barbulesco
fonte
Apenas aguardar o término do processo? Descobri que isso funciona na prática para mim.
Chogg 28/08

Respostas:

27

Simplesmente desative a indexação da unidade e apague o conteúdo do diário no volume. Para fazer isso, abra o Terminal e digite o seguinte comando:

sudo mdutil -Ei off "/Volumes/Name_of_Drive"

Você deve executar este procedimento como administrador. Digite sua senha quando solicitado. Uma reinicialização pode ser necessária.

Como alternativa, conforme sugerido por Simon White, basta desligar a máquina e desconectar a unidade. A ressalva é que a unidade começará a indexação quando conectada novamente, no entanto.

njboot
fonte
4
basta parar o processo. sudo mdutil -i off "/Volumes/Name_of_Drive"( -Eapaga e recria o índice). Ele deve começar a digitalizar novamente na próxima vez que você montar a unidade. para desativar a verificação permanente da unidade, use -d( sudo mdutil -d "/Volumes/Name_of_Drive"). Veja todos esses argumentos e muito mais, digitando mdutilna sua linha de comando.
Dannid
2
Gostei da dica, mas por favor não sugira sair após o comando ... Não notei e perdi o histórico de saída que tinha lá.
Ravemir
@njboot - Não. O comando "history" apenas me fornece o histórico dos comandos inseridos, não me devolve o resultado.
Nicolas Barbulesco
1
Depois de emitir o comando mdutil, ainda não consegui ejetar o disco. Então, eu também emiti "sudo killall mds", e isso fez funcionar.
Thomas Tempelmann 24/03
21

Você pode tentar desmontá-lo na linha de comando:

diskutil unmount /Volumes/MountPoint

ou com força:

diskutil unmount force /Volumes/MountPoint

Se ainda estiver falhando, verifique o que está usando seu disco:

sudo fs_usage -w -f filesys | grep Volumes

Ou usando lsof:

sudo lsof | grep Volumes

(Alguns processos só aparecem quando lsof é executado como administrador.)


Para desativar o Spotlight temporário, execute:

sudo mdutil -a -i off

Depois, sudo mdutil -a -i onpara reativar.


Outros aplicativos que podem ser úteis: O que está me mantendo .

kenorb
fonte
2
Acabei de descobrir que o Spotlight (mds, mds_store, mdworker) não será listado quando eu executar lsofcomo usuário. No entanto, sudo lsof | grep Volumesfunciona bem. ( "O que é que mantem me" tem uma caixa "como administrador", respectivamente.)
hans_meine
5

Muitas vezes, acho que é o mds que está me impedindo de desmontar um volume.

sudo killall mds

E então (rapidamente) tente ejetar o volume novamente.

No meu caso, estou montando o volume principal de outro Mac no meu Mac atual. Não quero desativar o Spotlight, pois desejo que a indexação seja retomada quando o volume externo for retornado ao outro Mac (como seu volume de inicialização).

Colin
fonte
Interessante. Talvez o "rápido" seja a chave!
Nicolas Barbulesco 19/02
Obrigado! Esta é a única resposta que funcionou para mim, além da ejeção forçada, que eu não gostaria de fazer.
23416 addison
2

Para impedir que o Spotlight indexe a unidade, crie um arquivo de texto sem formatação no TextEdit sem conteúdo, apenas o título de .metadata_never_index e salve no externo. Desmarque usar a extensão "txt" ... e diga ao TextEdit que sim, você deseja salvá-lo com um ponto à frente (o que o tornará invisível).

Não tenho certeza se isso vai impedi-lo agora, mas evitará isso no futuro.

Como alternativa, transforme este Applescript em um aplicativo, para forçar a ejeção [com as advertências usuais sobre a ejeção de força ...] ... crédito para o 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
Tetsujin
fonte
Obrigado. Mas ... "forçar a ejeção [com as advertências usuais sobre a ejeção da força ...]" Isso é preocupante. Se eu concordasse em correr o risco de corromper o disco, simplesmente o desconectaria.
Nicolas Barbulesco
Em seguida, defina o sinalizador sem destaque e aguarde até que seja exibido e pare a indexação.
Tetsujin
Ou, você pode executar a sudo diskutil unmountDisk force /Volumes/Name_of_Volumepartir do Terminal para fazê-lo à força. Esse script não é necessário.
Njboot
@NicolasBarbulesco Estes não são os mesmos. Desmontar à força um volume não é o mesmo que puxar o plugue. Neste último caso, você está fisicamente removendo a energia do dispositivo de repente, o que, como se imagina, pode causar danos ao disco magnético que gira a várias krpm. No primeiro, você está simplesmente forçando o dispositivo a desmontar o volume. O disco gira para baixo corretamente e você puxa o plugue como faria normalmente. É muito mais seguro.
Njboot 20/08/14
@njboot - Eu não tentei o seu diskutilcomando. Mas tentei o equivalente com o Disk Utility - sem sucesso.
Nicolas Barbulesco
2

Você pode tentar forçar o encerramento do Finder, isso funcionou para mim. O Finder estava pendurado na unidade USB; portanto, a saída forçada e o relançamento liberavam qualquer que fosse o problema.

user128242
fonte
como alguém faria isso? força sair do localizador?
Ruskes
Option + Command + ESC!
Sdive
Mas isso pode funcionar no caso Spotlight da minha pergunta?
Nicolas Barbulesco 19/02
1

Se não puder desconectar uma unidade por qualquer motivo, basta desligar o computador. Quando o computador está desligado, você pode desconectar a unidade com segurança. Então inicie o computador. Isso não apenas permitirá que você desconecte com segurança a unidade, mas também garantirá que o processo mds seja reiniciado caso esteja realmente travado.

Se você decidiu que não deseja usar o Spotlight com essa unidade, tudo o que você precisa fazer para impedir a indexação é adicionar a unidade à guia Privacidade do painel Spotlight das Preferências do sistema. O Spotlight ignorará a unidade.

Como alternativa, se você deseja usar o Spotlight nessa unidade, crie um índice na primeira vez que o computador vir a unidade como um mal necessário. Depois que o índice é criado, ele é atualizado a cada alteração em cada arquivo, para que você não espere novamente. Mas se você não vir uma barra de progresso no menu Spotlight, é provável que o mds esteja travado. Novamente, basta desligar o computador nesse caso e desconectar sua unidade.

Simon White
fonte
1
Certamente eu posso desligar o Mac. Mas isso não é uma opção.
Nicolas Barbulesco
Gosto da ideia de que o Spotlight conheça meu disco. Mas tentei fazer o Spotlight ignorar meu disco no momento. Usando as Prefs do Sistema → Spotlight. Isso não funcionou: "Impossível por causa de um erro desconhecido". Ótima mensagem de erro! A Apple deve ter contratado um desertor da Micro $ oft! Eu também tentei deixar o tempo agir. Fui trabalhar e deixei o Spotlight indexar o disco durante o dia inteiro. Na noite em que voltei, e o problema ainda era o mesmo.
Nicolas Barbulesco
Na verdade, acho que o problema é que ele mdsnão está dizendo ao sistema que terminou a unidade ou não saiu depois que está pronto e, ao fazer isso, mantém a unidade até que o processo seja interrompido de alguma forma (como um desligamento). Se eu vir a mdsnão usar a CPU enquanto afirmo usar a unidade, forço a ejetar a unidade.
bauerMusic
@bauerMusic - Como você "força a ejetar a unidade"?
Nicolas Barbulesco 19/02
@NicolasBarbulesco O 'Force eject drive' é uma opção que o sistema oferece depois de um tempo. Se você tentar ejetar, ele deve dizer 'Tentando ejetar sua unidade' (ou similar) e depois de um minuto ou mais (sem êxito), mostre outro pop-up que tenha uma opção para forçar a ejeção.
bauerMusic
1

Outra opção simples é ejetar através dos Utilitários de Disco.

Tim Undheim
fonte
Você leu os comentários na resposta de Tetsujin? O Utilitário de Disco não oferece a opção "force"
klanomath
Apenas tente. Uma simples ejeção através dos Utilitários de Disco sempre funciona para mim quando qualquer unidade externa de qualquer tipo não é ejetada porque está "em uso".
Tim Undheim
Eu tentei ejetar a unidade com o Disk Utility. Mas isso não funcionou.
Nicolas Barbulesco 23/12
1
Desculpe ouvir sobre isso. O Utilitário de Disco ejeta discos "em uso" desmontáveis ​​que funcionam perfeitamente na minha unidade, que é executada em 10.7.5. Você pode procurar no DiskWarrior.
precisa
1
Por qualquer motivo, o uso do comando desmontar do Disk Utility funcionou para mim em um disco com problema.
MiB
0

Você pode dizer ao Spotlight que ele nunca deve indexar essa unidade e não precisará se preocupar com isso.

Nas Preferências do sistema 10.11, há uma entrada para 'Spotlight', que possui uma guia chamada 'Privacidade'. Clique em '+', selecione sua unidade e pronto. Apenas feche as Preferências do Sistema, aguarde alguns segundos para que o sistema observe a atualização e você poderá ejetar. Agora, ele não começará a indexar o disco na próxima vez que você se conectar, para que não tenha o problema novamente no futuro.

David K. Storrs
fonte
Eu tentei isso. Isso não deu certo. Veja meu comentário aqui: apple.stackexchange.com/questions/142459/…
Nicolas Barbulesco