Porque é que o Spotlight bloqueia a ejeção do disco
A indexação do Spotlight é uma das razões mais comuns para não conseguir ejetar uma unidade externa. Veja como lidar com o problema.
Tenta ejetar a sua unidade externa e o macOS recusa. Verifica o Monitor de Atividade e vê processos chamados mds ou mds_stores a aceder à sua unidade. Parabéns, conheceu a indexação do Spotlight.
Esta é provavelmente a razão mais comum para as unidades externas não ejetarem no Mac. O Spotlight quer indexar tudo para que possa pesquisar mais tarde e não quer saber que tem de sair para uma reunião em dois minutos.
O que o Spotlight está realmente a fazer
O sistema de indexação do Spotlight corre através de vários processos em segundo plano. O principal é o mds (metadata server), que coordena toda a operação. Depois existe o mds_stores, que gere o armazenamento real dos metadados indexados. Poderá também ver o mdworker ou mdworker_shared a fazer o trabalho pesado de ler e categorizar os seus ficheiros.
Quando liga uma unidade externa, o Spotlight trata-a como um novo território a explorar. Começa a analisar cada ficheiro, extraindo metadados e construindo um índice pesquisável. Isto acontece automaticamente, a menos que tenha dito explicitamente ao Spotlight para deixar essa unidade em paz.
O problema é que o Spotlight mantém handles de ficheiros abertos enquanto trabalha. Enquanto esses handles existirem, o macOS considera a unidade "em utilização" e não o deixa ejetá-la.
Como verificar se o Spotlight é o culpado
Abra o Monitor de Atividade (procure-o no Spotlight, ironicamente) e procure por estes nomes de processos: mds, mds_stores, mdworker ou mdworker_shared. Se algum deles mostrar o nome da sua unidade externa na informação do processo, o Spotlight é o seu bloqueador.
Também pode verificar através do Terminal. Execute este comando, substituindo o nome da unidade pelo seu:
lsof /Volumes/NomeDaSuaUnidade
Se vir processos relacionados com o mds no resultado, o Spotlight está agarrado à sua unidade.
A solução rápida: desativar a indexação temporariamente
A solução mais rápida é desligar a indexação do Spotlight para esse volume específico:
sudo mdutil -i off /Volumes/NomeDaSuaUnidade
Terá de introduzir a sua palavra-passe. Após o comando terminar, o Spotlight liberta a unidade e deverá conseguir ejetar normalmente.
Quando voltar a ligar a unidade mais tarde e quiser a indexação de volta:
sudo mdutil -i on /Volumes/NomeDaSuaUnidade
A solução permanente: excluir a unidade totalmente
Se nunca quiser que o Spotlight indexe uma unidade externa específica, pode adicioná-la à lista de privacidade.
Abra as Definições do Sistema, vá a Siri e Spotlight (ou apenas Spotlight em versões mais antigas do macOS) e clique em "Privacidade do Spotlight" na parte inferior. Arraste a sua unidade externa para esta lista ou clique no botão mais para a adicionar.
As unidades nesta lista são completamente ignoradas pelo Spotlight. Não poderá pesquisar o seu conteúdo a partir do menu Spotlight, mas serão ejetadas instantaneamente todas as vezes.
Existe também um truque utilizando um ficheiro oculto. Crie um ficheiro vazio chamado .metadata_never_index na raiz da sua unidade externa:
touch /Volumes/NomeDaSuaUnidade/.metadata_never_index
O Spotlight verifica a existência deste ficheiro e ignora a indexação de qualquer volume que o tenha. Isto é útil para unidades que partilha entre vários Macs, uma vez que a definição segue a unidade em vez de ficar guardada em cada computador.
Quando o Spotlight não larga a unidade
Por vezes o Spotlight fica bloqueado. Desativou a indexação, mas os processos continuam sem libertar a unidade. No Monitor de Atividade, pode selecionar o processo mds infrator e clicar no botão X para forçar o encerramento.
Tenha em atenção que forçar o encerramento de processos do sistema pode causar comportamentos estranhos temporários. O Spotlight irá reiniciar-se automaticamente, mas poderá notar abrandamentos breves ou ter de esperar um momento até que tudo estabilize.
Se a unidade continuar sem ejetar após matar os processos do Spotlight, algo mais também a está a manter aberta. Execute o comando lsof novamente para ver o que resta.
Porque é que isto continua a acontecer
Cada vez que liga uma unidade externa, o Spotlight começa a indexá-la do zero, a menos que a tenha excluído. Mesmo unidades que já utilizou antes serão reindexadas se o seu índice ficar desatualizado ou corrompido.
As atualizações do macOS também podem repor as definições de privacidade do Spotlight. Alguns utilizadores relataram que, após a atualização para uma nova versão do macOS, unidades que tinham anteriormente excluído estavam subitamente a ser indexadas novamente. Vale a pena verificar a sua lista de Privacidade do Spotlight após grandes atualizações.
Uma abordagem mais simples
Caçar no Monitor de Atividade e no Terminal cada vez que quer desligar uma unidade torna-se cansativo depressa. O Ejecta mostra-lhe exatamente que processos estão a bloquear a ejeção e permite-lhe encerrá-los com um clique. Para o Spotlight especificamente, identifica os processos mds relevantes e gere-os de forma limpa, para que não tenha de adivinhar qual deve matar ou preocupar-se com a estabilidade do sistema.
O problema subjacente (o Spotlight a indexar agressivamente unidades externas) não vai desaparecer tão cedo. Mas lidar com isso não tem de ser um projeto de investigação cada vez que precisa de sair com a sua unidade.
Se prefere não utilizar o Terminal todas as vezes, o Ejecta mostra-lhe exatamente qual o processo que está a bloquear o seu disco — e permite-lhe encerrá-lo com um clique, direto da sua barra de menus.
Comprar Agora — $9.99