diskutil eject: como ejetar discos pelo Terminal do Mac
Use diskutil eject /Volumes/Nome para ejetar discos pelo Terminal do Mac. Guia completo: listar discos, forçar desmontagem, encerrar processos de bloqueio com lsof.
O Finder diz que o disco está em uso. Ele não diz o que o está usando ou o que fazer a respeito. O Terminal faz as duas coisas.
Resposta rápida: Execute
diskutil eject /Volumes/NomeDoSeuDiscopara ejetar um disco pelo Terminal. Se falhar, usesudo lsof /Volumes/NomeDoSeuDiscopara ver o que está bloqueando a ejeção,kill <PID>para encerrar o processo responsável e ejete de novo. Em último caso,diskutil unmountDisk force /dev/diskNforça a saída do disco, mas faça isso apenas quando nada estiver gravando.
Se você se sente confortável com a linha de comando, o Terminal é a maneira mais poderosa de lidar com ejeções de disco persistentes no macOS. E se você ainda não se sente confortável com ele, esses comandos são um bom lugar para começar.
Ejeção básica com diskutil eject
A maneira mais direta de ejetar um disco externo pelo Terminal do Mac:
diskutil eject /Volumes/NomeDoSeuDisco
Substitua NomeDoSeuDisco pelo nome real do seu disco, exatamente como ele aparece no Finder. Se o nome tiver espaços, envolva-o em aspas:
diskutil eject "/Volumes/Meu Disco"
Isso faz o mesmo que clicar no botão ejetar no Finder. Se funcionar, o disco será desmontado de forma limpa e pronto. Se falhar, você receberá uma mensagem de erro mais informativa do que o Finder jamais fornece.
Você também pode desmontar sem ejetar (o disco permanece visível no Utilitário de Disco, mas não está montado):
diskutil unmount /Volumes/NomeDoSeuDisco
A diferença é importante para discos com várias partições. unmount remove um volume. eject remove o dispositivo físico e todos os seus volumes de uma só vez.
Encontrando o identificador do seu disco com diskutil list
Antes de usar comandos mais avançados, você precisa do identificador do seu disco. Liste todos os discos conectados:
diskutil list
A saída mostra cada disco e suas partições. Seu disco externo será algo como disk4 ou disk5. Os discos internos geralmente são disk0 e disk1.
Para uma visão geral mais legível apenas de discos externos:
diskutil list external
Depois de saber o identificador do disco, você também pode ejetar usando o caminho /dev/ em vez do nome do volume:
diskutil eject /dev/disk4
Isso é útil quando o nome do volume contém caracteres incomuns ou quando o volume não está montado, mas o disco ainda está conectado.
Como ejetar todos os discos externos de uma vez
Se você precisar ejetar todos os discos externos com um único comando, existem duas abordagens.
Usando diskutil para encontrar e ejetar todos os discos externos:
diskutil list external | grep -o 'disk[0-9]*$' | while read disk; do diskutil eject "/dev/$disk"; done
Ou usando AppleScript pelo Terminal, que espelha o que o Finder faz:
osascript -e 'tell application "Finder" to eject (every disk whose ejectable is true)'
A abordagem do AppleScript ejeta apenas os discos que o Finder considera ejetáveis. Ele pula seu disco de inicialização e volumes de rede, que é geralmente o que você deseja.
Forçando a desmontagem quando o diskutil eject falha
Se uma ejeção normal falhar com um erro como “couldn’t unmount disk”, force a ação:
diskutil unmount force /Volumes/NomeDoSeuDisco
Ou desmonte todos os volumes em um disco específico de uma só vez:
diskutil unmountDisk force /dev/disk4
A desmontagem forçada diz ao macOS para liberar o volume independentemente do que o esteja usando. É mais controlado do que desconectar fisicamente o disco (o sistema ainda limpa os caches e notifica os processos), mas não espera que os processos fechem os arquivos de forma limpa.
Use a desmontagem forçada quando souber que nada importante está sendo gravado. É o equivalente na linha de comando a forçar a ejeção pelo Utilitário de Disco. Consulte nosso guia sobre quando a ejeção forçada é segura vs. arriscada antes de usar isso em um disco que estava sendo usado ativamente.
Descobrindo o que está bloqueando a ejeção com lsof
Este é o comando que torna o Terminal inestimável para problemas de ejeção:
lsof /Volumes/NomeDoSeuDisco
lsof significa “list open files” (listar arquivos abertos). Ele mostra todos os processos que têm um arquivo aberto naquele volume: o nome do processo, o ID do processo (PID), o usuário que o está executando e qual arquivo está aberto.
Para resultados completos (incluindo processos do sistema), execute-o com sudo:
sudo lsof /Volumes/NomeDoSeuDisco
Sem o sudo, você verá apenas os processos pertencentes à sua conta de usuário. Processos do sistema como o mds do Spotlight ou o backupd do Time Machine não aparecerão. Com o sudo, você vê tudo o que realmente está mantendo o disco aberto.
Lendo a saída do lsof
A saída se parece com isto:
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
mds 123 root 12r REG 1,8 4096 789 /Volumes/MeuDisco/.Spotlight-V100/...
Finder 456 aaron 15r DIR 1,8 1024 2 /Volumes/MeuDisco
Dropbox 789 aaron 8u REG 1,8 8192 345 /Volumes/MeuDisco/Projetos/.dropbox
As colunas que mais importam:
- COMMAND: O nome do processo. Isso diz o que está bloqueando a ejeção.
- PID: O ID do processo. Você usará isso para encerrar o processo, se necessário.
- FD: FD descreve como o arquivo foi aberto: r para leitura, w para gravação, u para ambas. Isso não indica atividade atual nem prova que o volume não tem gravações pendentes.
- NAME: O arquivo específico sendo acessado. Isso geralmente revela exatamente por que o processo está lá.
Culpados comuns: mds (indexação do Spotlight), backupd (Time Machine), Dropbox, Google Drive, o próprio Finder. Veja nossos guias detalhados sobre o Spotlight bloqueando a ejeção e iCloud/Dropbox impedindo a ejeção para correções específicas.
Encerrando processos de bloqueio
Encerre apps compatíveis pela barra de menus. Processos do sistema têm tratamento separado e podem exigir espera ou desligamento. Salve seu trabalho, termine cópias e backups e encerre os apps normalmente antes de tentar ejetar de novo. Forçar o encerramento ou a ejeção pode causar perda de dados; Ejecta não certifica a segurança das gravações.
kill 789
Isso envia um sinal de término normal. O processo tem a chance de fechar arquivos e limpar tudo. Dê a ele alguns segundos para sair e tente ejetar novamente.
Se ele não responder a um encerramento normal:
kill -9 789
Forçar o encerramento é o último recurso. Pode perder trabalho não salvo ou interromper gravações. Salve primeiro e espere as transferências terminarem. Os nomes dos processos do Spotlight não provam acesso somente de leitura. Não force o encerramento de mds ou mds_stores para liberar um disco. Espere, feche seus apps e tente uma ejeção normal. Ejecta identifica esses processos, mas não oferece encerramento comum de processos do sistema. Se o disco continuar bloqueado, salve tudo e desligue completamente o Mac antes de desconectar.
Salve seu trabalho, termine cópias e backups e encerre os apps normalmente antes de tentar ejetar de novo.
Fluxo de trabalho completo de solução de problemas
Salve seu trabalho, termine cópias e backups e encerre os apps normalmente antes de tentar ejetar de novo.
diskutil eject "/Volumes/YourDriveName"
sudo lsof "/Volumes/YourDriveName"
Os nomes dos processos do Spotlight não provam acesso somente de leitura. Não force o encerramento de mds ou mds_stores para liberar um disco. Espere, feche seus apps e tente uma ejeção normal. Ejecta identifica esses processos, mas não oferece encerramento comum de processos do sistema. Se o disco continuar bloqueado, salve tudo e desligue completamente o Mac antes de desconectar.
O nome de um processo ou a lista de arquivos abertos não prova que não há gravações em andamento. Salve seu trabalho, termine cópias e backups e encerre os apps normalmente antes de tentar ejetar de novo. Forçar o encerramento ou a ejeção pode causar perda de dados; Ejecta não certifica a segurança das gravações.
Variações de diagnóstico úteis
Verifique se o Spotlight especificamente está prendendo seu disco:
lsof /Volumes/NomeDoSeuDisco | grep mds
Liste apenas os nomes exclusivos dos processos que bloqueiam a ejeção (sem linhas duplicadas):
lsof /Volumes/NomeDoSeuDisco | awk '{print $1}' | sort -u
Observe o E/S de disco em tempo real para ver se algo está gravando ativamente:
sudo fs_usage -f diskio | grep NomeDoSeuDisco
Isso roda continuamente e mostra cada operação de disco conforme ela acontece. Pressione Control-C para parar. Use isso quando o lsof mostrar um processo, mas você não tiver certeza se ele está gravando ativamente ou apenas mantendo um identificador antigo.
Quando o Terminal dá mais trabalho do que vale a pena
Esses comandos são poderosos e, depois de usá-los algumas vezes, tornam-se naturais. Mas há um custo real em trocar o contexto do seu trabalho por uma janela do Terminal: executar comandos de diagnóstico, analisar saídas técnicas, decidir qual PID é seguro encerrar.
Ejecta: Ejecta oferece diagnóstico gratuito de discos sem teste por tempo limitado. A licença paga libera encerramento e ejeção para apps compatíveis, Ejetar Tudo e controles do Time Machine. Processos do sistema podem exigir espera, autorização ou desligamento. Salve o trabalho e termine as transferências primeiro.
Sem limite de computadores ou ativações. Solicitações de reembolso em até 30 dias.
Ejecta oferece diagnóstico gratuito de discos sem teste por tempo limitado. A licença paga libera encerramento e ejeção para apps compatíveis, Ejetar Tudo e controles do Time Machine. Processos do sistema podem exigir espera, autorização ou desligamento. Salve o trabalho e termine as transferências primeiro.
Comprar agora -Artigos relacionados
Como ejetar um pendrive com segurança no Mac
Todas as formas de ejetar um pendrive no Mac, além do que fazer quando o macOS diz que o disco está em uso e …
Como encontrar, abrir e usar um disco externo no Mac
Conecte um disco externo ao Mac, encontre-o no Finder, abra seus arquivos e desconecte com segurança. Um guia …
Por que seu Mac fica mais lento quando um disco externo está conectado
Conectar um disco externo não deveria desacelerar todo o seu sistema, mas muitas vezes acontece. Veja o que …
Entendendo as permissões de disco do macOS em discos externos
Problemas de permissão podem impedir você de acessar, modificar ou ejetar discos externos no Mac. Veja como …