Todos os artigos

Como ejetar um disco que diz estar em uso no Mac

· 6 min de leitura

Quando você ejeta um disco externo e o macOS responde que o disco não foi ejetado porque um ou mais programas podem estar usando-o, algo ainda tem um arquivo aberto nesse disco. O macOS se recusa a desmontá-lo para que nada se perca no meio de uma gravação. A solução é sempre a mesma: descobrir o que está segurando o disco, fechar, ejetar de novo e forçar a ejeção só como último recurso.

Veja como encontrar o culpado com as ferramentas do macOS, e como o Folia Files pode dizer o nome dele para você.

Por que o macOS diz que o disco está em uso

Um disco não pode ser desmontado enquanto algum processo mantiver nele um arquivo, uma pasta ou um diretório de trabalho aberto. Os suspeitos de sempre:

  • Um app com um documento aberto do disco: um vídeo num player, um projeto num editor, uma fototeca.
  • Spotlight, indexando um disco que acabou de descobrir (processos chamados mds_stores ou mdworker). Um disco recém-conectado costuma ficar ocupado por alguns minutos.
  • Time Machine, fazendo backup nesse disco ou verificando-o.
  • Visualização Rápida, gerando miniaturas dos arquivos que você acabou de ver.
  • Uma janela do Terminal cuja pasta atual está no disco. Nada parece aberto, mas o próprio shell segura o disco.
  • Uma cópia ainda em andamento, às vezes em outro app.

O Finder às vezes cita o app no alerta, mas muitas vezes você recebe só a mensagem genérica, sem pista do responsável.

Primeiro, feche o óbvio e tente de novo

  1. Salve e feche todos os documentos que estão no disco. Se não souber qual app o usa, encerre os apps em que você abriu arquivos dele.
  2. Feche as janelas do Finder que mostram o disco. No Terminal, digite cd ~ em cada janela que estava trabalhando nele.
  3. Se o disco acabou de ser conectado, ou um backup do Time Machine está em andamento, espere um minuto.
  4. Ejete de novo: selecione o disco na barra lateral do Finder e pressione ⌘E, ou clique no botão de ejetar ao lado do nome.

Isso resolve a maioria dos casos. Se o disco continuar recusando, descubra exatamente quem o está segurando.

Descubra o que usa o disco com o Terminal

O lsof («list open files», a lista de arquivos abertos) vem com o macOS. Abra o Terminal e digite o seguinte, trocando MeuDisco pelo nome do disco como aparece no Finder:

lsof /Volumes/MeuDisco

Com o ponto de montagem de um disco, o lsof lista todos os arquivos abertos nele. Se o nome tiver espaços, coloque-o entre aspas: lsof "/Volumes/Meu Disco".

Como ler o resultado

Cada linha é um arquivo aberto. As colunas que importam:

  • COMMAND: o processo, por exemplo QuickTime, zsh ou mds_stores.
  • PID: o número dele, o mesmo que aparece no Monitor de Atividade.
  • FD: cwd quer dizer que a pasta atual do processo está no disco (em geral, uma janela do Terminal).
  • NAME: o próprio arquivo.

Se nada aparecer mas o disco continuar recusando, rode o mesmo comando como sudo lsof /Volumes/MeuDisco e digite sua senha: serviços do sistema como o Spotlight e o Time Machine rodam com outro usuário, e só um administrador vê os arquivos deles.

Depois encerre o app normalmente (salve seu trabalho antes) e ejete de novo. Evite matar um processo que esteja gravando no disco: é justamente a perda de dados da qual a recusa protege você.

O Monitor de Atividade, se preferir não digitar

No Monitor de Atividade, clique duas vezes num processo e abra a aba que lista os arquivos e portas abertos dele: se aparecerem caminhos dentro de /Volumes/MeuDisco, é ele. Funciona, mas você precisa adivinhar qual processo inspecionar, um de cada vez. O lsof responde à pergunta de uma vez só.

Quando é o Spotlight ou o Time Machine

Se o lsof mostrar mds, mds_stores ou mdworker, o Spotlight está indexando o disco. Espere terminar ou, para um disco em que você nunca faz buscas, desative a indexação com sudo mdutil -i off /Volumes/MeuDisco (ou adicione o disco à lista de privacidade do Spotlight nos Ajustes do Sistema).

Se mostrar backupd, o Time Machine está trabalhando com esse disco. Deixe o backup terminar, ou interrompa-o pelo Time Machine antes de ejetar: desconectar um disco de backup no meio do backup pode danificá-lo.

Forçar a ejeção: quando, e o que se arrisca

Quando nada funciona, o Finder pode oferecer forçar a ejeção, e o Terminal também sabe fazer isso:

diskutil unmount force /Volumes/MeuDisco

Uma ejeção forçada fecha os arquivos sem aviso para os apps: o que eles ainda não salvaram no disco se perde, e uma cópia em andamento é interrompida. Use só com um disco em que você sabe que ninguém está gravando, por exemplo uma imagem de disco travada, nunca com um disco no meio de uma cópia ou de um backup.

Deixe o Folia Files dizer quem está segurando o disco

O Folia Files é um gerenciador de arquivos para macOS, e trata uma ejeção recusada como uma pergunta que merece resposta, não como um beco sem saída. Quando um disco não ejeta, um aviso diz Não foi possível ejetar “MeuDisco” e lista o que o está usando, com nomes reconhecíveis: o próprio app, Spotlight (indexação do disco), Time Machine ou Visualização Rápida. Logo abaixo:

  • Encerrar “App” encerra o app que segura o disco (no máximo dois apps são oferecidos) e depois ejeta de novo sozinho.
  • Tentar Novamente simplesmente tenta outra vez, por exemplo quando o Spotlight terminou.
  • Forçar Ejeção… pede confirmação antes e diz o que se arrisca.

Folia Files: o disco Travel SSD não é ejetado e o aviso mostra que o Atlas está usando-o, com Tentar Novamente e Forçar Ejeção…

Para ejetar tudo de uma vez, clique com o botão direito num disco da barra lateral esquerda e escolha Ejetar os 3 discos (o número acompanha o que está conectado), ou use o mesmo comando no menu do Folia Files na barra de menus. Ele ejeta discos externos e imagens de disco, nunca compartilhamentos de rede.

Ejetar antes do repouso (versão do site)

Desconectar os discos de um notebook enquanto ele está em repouso é o que costuma disparar o aviso do macOS sobre um disco ejetado incorretamente. Em Ajustes › Arquivos e Rede › Discos externos, Ejetar os discos externos antes do repouso e montá-los de novo ao despertar os desmonta antes de o Mac entrar em repouso (eles continuam conectados) e os monta de novo ao despertar. Um disco em uso nesse momento continua montado, e o Folia Files avisa ao despertar.

Ajustes › Arquivos e Rede › Discos Externos: ejetar os discos externos antes do repouso e montá-los de novo ao despertar

Dizer quem segura um disco, Forçar Ejeção… e a ejeção antes do repouso estão na versão do site do Folia Files. A sandbox da versão da App Store não vê os arquivos abertos por outros apps: lá, o aviso mostra a mensagem do macOS com Tentar Novamente, e o lsof no Terminal continua sendo o jeito de achar o culpado.

Lista rápida

  1. Salve e feche os documentos do disco; cd ~ no Terminal.
  2. Espere um minuto se o Spotlight ou o Time Machine puderem estar trabalhando.
  3. lsof /Volumes/MeuDisco e depois sudo lsof /Volumes/MeuDisco para ver quem o segura.
  4. Encerre esse app e ejete de novo com ⌘E.
  5. Force a ejeção só com um disco em que ninguém está gravando.

Se preferir ter a resposta sem abrir o Terminal, baixe o Folia Files: o próximo disco que se recusar a ejetar vai dizer por quê.