Como descobrir que processo está a usar uma unidade no Mac

O Mac não ejeta a sua unidade? Eis como descobrir exatamente que processo a está a bloquear: usando o Monitor de Atividade, o Terminal e um método mais rápido com um clique.

(Updated )

Quando o macOS se recusa a ejetar uma unidade externa, diz-lhe que algo a está a usar, e fica-se por aí. Sem nome, sem pista, sem indício. Descobrir o culpado por conta própria requer alguns passos, mas é perfeitamente possível. Este guia percorre todos os métodos, desde as ferramentas integradas que a Apple disponibiliza até aos comandos do Terminal que revelam o que a interface gráfica esconde.

Porque é que o macOS simplesmente não lhe diz

Isto é uma frustração genuína, não um erro do utilizador. O macOS sempre mostrou o erro de “disco em uso” sem nomear o processo responsável. O sistema operativo sabe que processo mantém uma referência a um ficheiro aberto no volume. Apenas não revela essa informação no Finder nem na janela de ejeção.

O resultado: fecha todas as apps visíveis, nada muda, e a unidade continua sem ejetar. Como explicado no guia de resolução do erro ‘Disco em uso’ do macOS, o bloqueador é muitas vezes um processo em segundo plano (a indexação do Spotlight, o QuickLook a gerar miniaturas ou um daemon de sincronização na nuvem) e não algo que se lembraria de encerrar manualmente.

Método 1: Monitor de Atividade (limitado, mas um ponto de partida)

O Monitor de Atividade é o primeiro sítio onde a maioria das pessoas procura. Não é ideal para esta tarefa específica, mas pode ajudar a restringir as hipóteses.

  1. Abra o Monitor de Atividade (Aplicações → Utilitários → Monitor de Atividade, ou pesquisa no Spotlight).
  2. Clique no separador Disco no topo.
  3. Ordene por Bytes lidos ou Bytes escritos para ver que processos estão ativamente a ler ou a escrever.

O problema: o Monitor de Atividade mostra a atividade do disco em todos os volumes, não apenas na sua unidade externa. Um processo no topo da lista pode estar a escrever no seu SSD interno, e não na sua unidade USB. Aqui não consegue filtrar por volume.

Ainda assim, se vir algo inesperado (um daemon de cópia de segurança, uma app de multimédia, um serviço de sincronização), vale a pena encerrá-lo e tentar ejetar novamente.

Método 2: Terminal com lsof (a abordagem fiável)

lsof significa “list open files” (listar ficheiros abertos) e, no macOS, cada volume montado é um caminho de ficheiro. Este comando mostra-lhe todos os processos com uma referência aberta a uma unidade específica.

Encontrar o ponto de montagem da sua unidade

Primeiro, confirme o nome exato da sua unidade tal como o macOS a vê:

ls /Volumes/

Isto lista todos os volumes montados. A sua unidade externa aparecerá aqui. Anote o nome exato, incluindo maiúsculas e espaços.

Executar o lsof sobre o volume

lsof /Volumes/NomeDaSuaUnidade

Substitua NomeDaSuaUnidade pelo nome real do volume. O resultado lista todos os processos com um ficheiro aberto nesse volume, incluindo:

  • COMMAND: o nome do processo
  • PID: o identificador do processo
  • USER: a conta de utilizador que o está a executar
  • NAME: o caminho específico do ficheiro a ser acedido

O que vai normalmente ver

Culpados comuns que aparecem no resultado do lsof:

  • mds ou mds_stores: indexação do Spotlight
  • QuickLookUIService: geração de miniaturas do QuickLook
  • cloudd, bird ou com.apple.iCloudDrive: sincronização do iCloud
  • backupd: Time Machine
  • Finder: janelas do Finder abertas a apontar para a unidade
  • Apps de multimédia como o Final Cut Pro ou o Premiere com ficheiros de projeto abertos

Dica: Se o lsof não devolver qualquer resultado, tente executá-lo com sudo para obter permissões elevadas: sudo lsof /Volumes/NomeDaSuaUnidade. Alguns processos do sistema só aparecem com acesso de root.

Para uma análise mais aprofundada do que o lsof consegue fazer (incluindo filtrar por PID e terminar processos diretamente a partir da linha de comandos), veja O comando lsof explicado para utilizadores de Mac.

Encerrar o processo a partir do Terminal

O nome de um processo ou a lista de ficheiros abertos não prova que não há escritas em curso. Guarde o trabalho, termine cópias e backups e feche as apps normalmente antes de tentar ejetar novamente. Forçar a saída ou a ejeção pode causar perda de dados; Ejecta não certifica a segurança das escritas. Os nomes dos processos do Spotlight não provam acesso apenas de leitura. Não force a saída de mds ou mds_stores para libertar um disco. Espere, feche as apps e tente uma ejeção normal. Ejecta identifica estes processos, mas não oferece a saída habitual de processos do sistema. Se o disco continuar bloqueado, guarde tudo e desligue completamente o Mac antes de o desligar do computador.

Método 3: fuser como alternativa

O fuser é outro comando do Terminal que indica que processos estão a usar um ficheiro ou um sistema de ficheiros. É menos detalhado do que o lsof, mas mais rápido de ler:

sudo fuser /Volumes/NomeDaSuaUnidade

O resultado é apenas uma lista de PID. Para obter os nomes dos processos a par deles, combine-o com o ps:

sudo fuser /Volumes/NomeDaSuaUnidade | xargs ps -p

Isto é útil quando quer uma resposta rápida sem analisar uma longa tabela do lsof.

Processos bloqueadores comuns e o que fazer quanto a eles

Spotlight (mds, mds_stores)

Os nomes dos processos do Spotlight não provam acesso apenas de leitura. Não force a saída de mds ou mds_stores para libertar um disco. Espere, feche as apps e tente uma ejeção normal. Ejecta identifica estes processos, mas não oferece a saída habitual de processos do sistema. Se o disco continuar bloqueado, guarde tudo e desligue completamente o Mac antes de o desligar do computador.

QuickLook (QuickLookUIService)

O nome de um processo ou a lista de ficheiros abertos não prova que não há escritas em curso. Guarde o trabalho, termine cópias e backups e feche as apps normalmente antes de tentar ejetar novamente. Forçar a saída ou a ejeção pode causar perda de dados; Ejecta não certifica a segurança das escritas.

iCloud e Dropbox

Os serviços de sincronização tratam as unidades externas como qualquer outra pasta se tiver guardado dados de sincronização nelas. Mantêm os ficheiros abertos durante o carregamento ou a resolução de conflitos. Como impedir que o iCloud e o Dropbox bloqueiem a ejeção de unidades explica como pausar a sincronização antes de ejetar.

Finder

O próprio Finder pode bloquear a ejeção se tiver uma janela aberta a mostrar o conteúdo da unidade, ou se estiver uma cópia de ficheiros em curso. Feche todas as janelas do Finder que apontam para a unidade, ou encerre e reinicie o Finder a partir do menu Apple.

Apps de multimédia e criativas

O Final Cut Pro, o Premiere, o Logic e apps semelhantes mantêm os ficheiros de projeto abertos enquanto o projeto estiver carregado. Feche o projeto (não apenas a janela da app) antes de ejetar. Veja Usar unidades externas com o Final Cut Pro sem problemas de ejeção para conselhos específicos de fluxo de trabalho.

Porque é que o Terminal é inconveniente para uso regular

A abordagem com lsof funciona, mas tem atrito. Precisa de:

  1. Abrir o Terminal
  2. Saber o nome exato do volume
  3. Analisar resultados pouco familiares
  4. Procurar PID e nomes de processos
  5. Executar um comando kill separado
  6. Voltar ao Finder para ejetar

Se é programador ou administrador de sistemas que vive no Terminal, tudo bem. Se é um editor de vídeo ou um utilizador comum de Mac que só quer desligar uma unidade em segurança, é muita cerimónia para uma tarefa que devia demorar dois segundos.

Aviso: Evite arrancar a unidade sem a ejetar, mesmo que esteja impaciente: pode corromper o sistema de ficheiros, sobretudo em unidades formatadas como exFAT ou NTFS. Os riscos são reais e estão detalhados em Desligar uma unidade externa sem ejetar pode danificá-la?

A forma mais rápida: ver o processo bloqueador num relance

Ejecta: Ejecta oferece diagnóstico gratuito de discos sem período de teste limitado. A licença paga desbloqueia saída e ejeção para apps compatíveis, Ejetar tudo e controlos do Time Machine. Processos do sistema podem exigir espera, autorização ou desligar o Mac. Guarde o trabalho e termine primeiro as transferências.

Referência rápida: que método usar

Situação Melhor método
Quer perceber o que se está a passar lsof no Terminal
Precisa de uma resposta rápida e pontual fuser no Terminal
Faz isto regularmente e não quer atrito App Ejecta na barra de menus
Está a resolver um processo de sistema teimoso Os nomes dos processos do Spotlight não provam acesso apenas de leitura. Não force a saída de mds ou mds_stores para libertar um disco. Espere, feche as apps e tente uma ejeção normal. Ejecta identifica estes processos, mas não oferece a saída habitual de processos do sistema. Se o disco continuar bloqueado, guarde tudo e desligue completamente o Mac antes de o desligar do computador.

Se está regularmente a embater na parede do “disco em uso”, descarregue o Ejecta e coloque o nome do processo bloqueador a um clique de distância, sem Terminal.

Ejecta oferece diagnóstico gratuito de discos sem período de teste limitado. A licença paga desbloqueia saída e ejeção para apps compatíveis, Ejetar tudo e controlos do Time Machine. Processos do sistema podem exigir espera, autorização ou desligar o Mac. Guarde o trabalho e termine primeiro as transferências.

Comprar Agora - $29 $9.99