O QuickLook está a manter a sua unidade como refém
Navegou por alguns ficheiros, fechou a pasta e agora a sua unidade não ejeta. O QuickLook é provavelmente o culpado. Veja o que se passa e como resolver.
Copiou alguns ficheiros para a sua unidade externa. Fechou a janela do Finder. Clica em ejetar e o macOS diz que não. Não toca na unidade há cinco minutos. O que é que a está a utilizar?
Verifique o Monitor de Atividade para o QuickLookUIService. Há uma grande probabilidade de esse ser o culpado.
O que o QuickLook está a fazer
O QuickLook é o sistema que suporta as pré-visualizações de ficheiros no macOS. Pressione Espaço sobre um ficheiro no Finder e obtém uma janela de pré-visualização. Navegue pelos ficheiros na vista em colunas e verá miniaturas. Abra uma caixa de diálogo de gravação e lá estão as pré-visualizações novamente. O QuickLook está em todo o lado.
Quando navega numa pasta, o QuickLook começa a gerar pré-visualizações para ficheiros que pensa que poderá querer ver. Lê os ficheiros, extrai miniaturas e guarda-as em cache para um acesso mais rápido mais tarde. Para imagens, PDFs, vídeos e documentos, isto significa abrir o ficheiro e processar o seu conteúdo.
O problema é que o QuickLook pode ser lento a libertar os ficheiros depois de terminar de os utilizar. Já mudou para uma pasta diferente. Fechou a janela do Finder completamente. Mas o QuickLookUIService ainda tem handles de ficheiros abertos na sua unidade externa.
Porque é que isto bloqueia a ejeção
O macOS não o deixa ejetar uma unidade enquanto qualquer processo tiver ficheiros abertos nela. Esta é uma funcionalidade de segurança. Se algo estiver a ler ou a escrever ativamente, ejetar poderia corromper dados ou causar o encerramento inesperado da aplicação.
O QuickLook não está a ler nem a escrever nada de importante nesta altura. Está apenas agarrado a handles de ficheiros de que já não precisa. Mas o macOS não distingue entre "utilizar ativamente um ficheiro" e "esqueceu-se de fechar um ficheiro". Um handle é um handle.
O resultado é que não consegue ejetar a sua unidade devido a pré-visualizações que consultou há cinco minutos.
Como resolver
A solução rápida é matar o QuickLookUIService. Abra o Terminal e execute:
killall QuickLookUIService
Isto termina o processo imediatamente. O macOS irá reiniciá-lo automaticamente da próxima vez que precisar de uma pré-visualização. A sua unidade deverá agora ejetar normalmente.
Se quiser ser mais cirúrgico, pode primeiro confirmar se o QuickLook é o problema:
sudo lsof /Volumes/NomeDaSuaUnidade | grep -i quicklook
Se vir o QuickLookUIService no resultado, esse é o seu bloqueador.
Também pode repor a cache do QuickLook, o que por vezes ajuda com problemas persistentes:
qlmanage -r cache
Isto limpa a cache de miniaturas e reinicia o sistema QuickLook.
Porque é que os vídeos são os piores infratores
O QuickLook é particularmente agressivo a manter ficheiros de vídeo. Quando pré-visualiza um vídeo, o QuickLook abre o ficheiro e mantém-no aberto para o caso de querer percorrer ou ver mais. Mesmo depois de fechar a janela de pré-visualização, o handle do ficheiro muitas vezes persiste.
Se tiver ficheiros de vídeo na sua unidade externa e pré-visualizou algum deles (intencionalmente ou acidentalmente ao navegar na vista em colunas), existe uma elevada probabilidade de o QuickLook estar a bloquear a ejeção.
O mesmo problema afeta imagens grandes e PDFs em menor escala. Basicamente, qualquer tipo de ficheiro em que o QuickLook tenha um trabalho real para gerar uma pré-visualização.
Prevenir o problema
Não pode realmente desativar o QuickLook sem perder muita funcionalidade do macOS. Mas pode minimizar o quanto ele interfere com as unidades externas.
Mude para a vista em lista ou ícones ao navegar em unidades externas. A vista em colunas ativa automaticamente o QuickLook para o ficheiro selecionado. As vistas em lista e ícones não geram pré-visualizações a menos que as peça explicitamente.
Evite pressionar Espaço para pré-visualizar ficheiros em unidades externas. Se precisar de verificar um ficheiro, abra-o diretamente em vez de utilizar o QuickLook.
Dê um momento após navegar. O QuickLook acabará por libertar os handles de ficheiros por si próprio. Se acabou de navegar por ficheiros numa unidade externa, aguarde 30 segundos antes de tentar ejetar.
Feche todas as janelas do Finder antes de ejetar. Mesmo que a janela do Finder já não esteja a mostrar a sua unidade externa, pode ter referências do QuickLook persistentes de navegações anteriores.
Nenhuma destas são soluções ideais. São alternativas para um processo do sistema que não faz a limpeza devidamente.
A solução real
O aspeto frustrante do QuickLook bloquear a ejeção é que não tem forma de saber que isso está a acontecer. O macOS diz-lhe que "algo" está a utilizar a unidade. Fecha tudo o que se lembra. A unidade continua sem ejetar.
É suposto adivinhar qual o processo invisível em segundo plano que é o culpado, ou começar a executar comandos de Terminal para investigar. Para algo tão rotineiro como desligar uma unidade, isto é absurdo.
O Ejecta mostra-lhe exatamente o que está a bloquear a ejeção. Quando o QuickLookUIService é o problema, vê-lo-á imediatamente. Um clique encerra o processo e liberta a sua unidade. Sem adivinhas, sem Terminal, sem se perguntar se está prestes a estragar alguma coisa.
O QuickLook é uma funcionalidade útil que ocasionalmente causa problemas desnecessários. Não devia ter de se tornar um detetive Unix para lidar com a sua falha em libertar handles de ficheiros.
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