Pergunta

Depois de trabalhar com um disco de backup USB externo, quero desmontar a unidade de forma limpa.Ao pressionar o botão 'ejetar', o Finder me avisa com a mensagem:

  • "O volume não pode ser ejetado porque está em uso."

ou

  • "O disco "Diskname" não foi ejetado porque um ou mais programas podem estar utilizando-o.".

ou ao tentar usar o Terminal: umount /Volumes/Diskname

  • "umount(/Volumes/Nome do disco):Recurso ocupado - tente 'diskutil unmount'"

Pelo que sei, não estou usando este disco, mas o Finder diz que sim, então devo estar errado.Eu prefiro uma desmontagem limpa da unidade.Como estou realizando várias tarefas, o logout e o login não são preferidos, assim como a instalação de software de terceiros.

Comando terminal lsof pode ser útil aqui, mas pessoalmente acho que isso é muito complexo para um problema tão “simples” e, para ser sincero, não sei como usá-lo corretamente.

Minha pergunta:Como posso saber qual programa está usando minha unidade para poder sair desse programa corretamente e ejetar minha unidade?

The volume can't be ejected because it's currently in use. The disk "Camel" wasn't ejected because one or more programs may be using it. The disk "Mammtoh" wasn't ejected because one or more programs... xkcd

Foi útil?

Solução

lsof é de fato sua melhor aposta.A maneira mais rápida e fácil seria esta: -

sudo lsof /Volumes/myDrive

A execução pode levar alguns minutos, mas, quando concluída, você verá uma lista de arquivos abertos no disco.A saída será semelhante a esta:

COMMAND    PID  USER   FD   TYPE DEVICE SIZE/OFF  NODE NAME
mds         89  root   19r   DIR   52,3      432     2 /Volumes/Photos
mds         89  root   23r   DIR   52,3      432     2 /Volumes/Photos
Finder     681 alans   14r   DIR   52,3      432     2 /Volumes/Photos
QuickLook 2158 alans    9r   REG   52,3  1141591 78651 /Volumes/Photos/_tmp_iphone_10_backup/APC_1546.JPG  

Neste caso, é o QuickLook aplicativo que possui um arquivo aberto.Fechar o aplicativo diretamente é a melhor maneira de corrigir o problema.No entanto, isso nem sempre é possível.Por exemplo, QuickLook não aparece como um aplicativo que você pode acessar no Dock.

Se não conseguir fechar o aplicativo manualmente, você pode usar o kill comando para encerrá-lo a partir da linha de comando.Para fazer isso, use o PID da segunda coluna como o ID para matar.Do exemplo acima, seria:

kill 2158

Observe que às vezes isso não funciona e uma forma mais agressiva de kill deve ser usado.Aqui está uma série de agressividade crescente (usando o exemplo PID de 2158):

kill 2158
sudo kill 2158
sudo kill -INT 2158
sudo kill -KILL 2158

Você poderá ejetar o disco assim que o processo/aplicativo for encerrado.

Uma nota final, lsof pode demorar um ou dois minutos.Ele também pode travar, mas você deve aguardar pelo menos alguns minutos antes de decidir o que aconteceu.

Além disso, às vezes o comando base sudo lsof /Volumes/myDrive não encontrará nada.Se isso acontecer, tente adicionar o +D argumento (ou seja, sudo lsof +D /Volumes/myDrive).Isso fará uma varredura de cima para baixo do disco.Demorará mais, mas deverá detectar qualquer coisa que esteja fazendo com que o disco não seja ejetável.

(Gorjeta de chapéu para Postagem de Alec Jacobson para detalhes extras.)

Outras dicas

Você tentou $ diskutil unmount /Volumes/Diskname ?

Ou $ diskutil unmount force /Volumes/Diskname ?

Enquanto o página de manual destaca:

Devido à natureza complexa e interligada do Mac OS X, o umount pode falhar com frequência.Recomenda -se que o Diskutil (1) (como em, "Diskutil UNMONT /MNT") seja usado.

Se o seu volume tiver espaços no nome, escape dos espaços com \, por exemplo:

$ diskutil unmount /Volumes/Disk\ Name

Ou use aspas para evitar confusão.

$ diskutil unmount "/Volumes/Disk Name"

Seu problema provavelmente é causado pelo processomds:Spotlight indexando seu disco.

Estou com esse problema e (ainda) não encontrei uma solução.

Você poderia experimentar o aplicativo de doação "O que está me impedindo?" que mostra qual processo/aplicativo está usando o volume/pasta/arquivo.

Este programa é certificado pelo desenvolvedor para Mac OS X 10.6 Snow Leopard, mas o Página RoaringApps para este aplicativo o lista como funcionando bem no OS X 10.7 Lion e no OS X 10.8 Mountain Lion.

Sobre O que está me prendendo?

Você já teve o problema de não conseguir esvaziar a Lixeira ou ejetar um disco porque algo está impedindo você?Normalmente, o motivo é porque algum aplicativo tem um arquivo aberto e, portanto, você não consegue se livrar do disco ou jogar o arquivo na lixeira.É por isso que fizemos What’s Keep Me!O que está me mantendo identificará o aplicativo que mantém o item aberto.Você pode então usar o que está me mantendo para encerrar o aplicativo problemático (ou eliminá-lo, se necessário) para poder executar sua tarefa.O que está me mantendo inclui um fluxo de trabalho do Automator para que você também possa realizar pesquisas diretamente no Finder!

Eu recebi esta mensagem apesar de ter certeza de que não há arquivos abertos no volume.Eu verifiquei isso com Por que não desmontar, uma ferramenta GUI que pode indicar arquivos abertos em um disco.

No meu caso, foi um sinal de que o sistema de arquivos está corrompido.A execução do Utilitário de Disco (ou, se isso não bastasse, o DiskWarrior) resolveu o problema e tornou o disco ejetável novamente.

Tanto a solução de linha de comando quanto o What's Keep Me funcionam muito bem.

Para recapitular, a linha de comando no terminal é:

lsof | grep /Volumes/myDrive

A aplicação GUI é What's Keeping Me, disponível em Hamsoft Engenharia.

Capturas de tela de ambos com a mesma pesquisa em andamento.

Command line output GUI for What's Keeping Me

Prefiro um pouco a linha de comando, pois ela está sempre presente com você.Por outro lado, What's Keeping Me é mais rápido e fácil de usar se você o tiver instalado.

OBSERVAÇÃO: fseventer funciona até o OS X 10.10 Yosemite e a página do desenvolvedor http://www.fernlightning.com entretanto, fiquei offline.Conseqüentemente, os links dos produtos foram removidos.Com brew cask install fseventer ainda pode estar disponível em versões mais antigas do macOS.

Existe uma alternativa GUI para o aplicativo CLI lsof:
fseventer é um ótimo utilitário de monitoramento de acesso ao sistema de arquivos para vários propósitos.Ele é executado com permissões de superusuário (sudo), para que ele veja todos os acessos de leitura/gravação de todos os sistemas de arquivos montados e os apresente em uma visão geral muito clara.

Minha experiência: Eu tinha um volume que constantemente não conseguia ser ejetado corretamente (como nas capturas de tela do OP), e sempre precisava de uma "ejeção forçada", às vezes até de uma desconexão física forçada (nem recomendada!pode danificar seu(s) sistema(s) de arquivos nesse disco) ou um desligamento do sistema para contornar esse método bruto.

Minha correção: Resumido: O problema de ejeção pode ser causado por conteúdo de arquivo corrompido ou legado nesse volume.A remoção do conteúdo problemático pode resolver isso permanentemente. Em detalhe:

  1. Determine qual arquivo é acessado (com lsof oufseventer). No meu caso, era um arquivo clássico do Mac OS com uma bifurcação de recursos que permaneceu aberta, provavelmente porque algum processo de análise de disco em segundo plano (Spotlight, QuickLook ou semelhante) estava pendurado nele.

  2. Faça backup desses dados problemáticos em um arquivo compactado (que preserva dados de recursos específicos do Mac (clássico)). Eu simplesmente usei a função nativa "Compactar" do Finder no menu de contexto.

  3. Exclua o arquivo/pasta problemático.

    • Com o Finder como de costume. Provavelmente isso falhará, pois é um "arquivo/pasta com problemas".
    • Com o Finder e mantendo pressionada a tecla ALT enquanto esvazia a Lixeira. Isso cria um pouco mais de força, mas provavelmente ainda falhará.
    • Através do Terminal com sudo rm -R /path/to/troublesome/FileOrFolder. Isso eventualmente funcionou depois que as tentativas de exclusão do Finder falharam.
  4. Tente desmontar o volume novamente. Ele ainda pode falhar, pois os processos em segundo plano que falharam ainda podem estar em um estado irrecuperável.

  5. Reiniciar.Em seguida, tente desmontar novamente. A partir daí o Volume funcionou bem novamente.Operações normais de montagem, desmontagem e leitura/gravação.Somente quando um arquivo foi realmente aberto por um processo do usuário, a desmontagem foi evitada.Comportamento perfeitamente normal novamente.

Tente reiniciar o Finder.Aqui funciona

Solução Verifique se todos os programas estão fechados.Clique no ícone da Apple no canto superior esquerdo da tela e clique em Forçar Encerrar.Na lista, clique em Finder.Agora clique no botão Reiniciar.Em seguida, tente ejetar a unidade novamente.

Eu reiniciei meu Mac e isso resolveu :-)

Licenciado em: CC-BY-SA com atribuição
Não afiliado a apple.stackexchange
scroll top