QuickLook이 드라이브를 인질로 잡고 있습니다

파일을 좀 둘러보고, 폴더를 닫았는데, 이제 드라이브가 추출되지 않습니다. 아마 QuickLook이 범인일 것입니다. 무슨 일이 벌어지는지, 그리고 어떻게 고치는지 알아봅니다.

외장 드라이브에 파일을 좀 복사했습니다. Finder 창을 닫았습니다. 추출을 클릭했는데 macOS가 안 된다고 합니다. 5분 동안 드라이브를 건드리지도 않았습니다. 무엇이 사용 중일까요?

활성 상태 보기에서 QuickLookUIService를 확인하세요. 그것이 범인일 가능성이 큽니다.

QuickLook이 하는 일

QuickLook은 macOS에서 파일 미리보기를 구동하는 시스템입니다. Finder에서 파일에 Space를 누르면 미리보기 창이 나옵니다. 열 보기로 파일을 둘러보면 썸네일이 보입니다. 저장 대화상자를 열면 또 그 미리보기가 있습니다. QuickLook은 어디에나 있습니다.

폴더를 둘러보면, QuickLook은 곧 보게 될 만한 파일의 미리보기를 생성하기 시작합니다. 파일을 읽고, 썸네일을 추출하고, 나중에 더 빠르게 접근하도록 캐시합니다. 이미지, PDF, 동영상, 문서의 경우 이는 파일을 열어 그 내용을 처리한다는 뜻입니다.

문제는 QuickLook이 일을 마친 뒤 파일을 놓아주는 데 굼뜰 수 있다는 점입니다. 다른 폴더로 넘어갔습니다. Finder 창을 완전히 닫았습니다. 그런데도 QuickLookUIService가 여전히 외장 드라이브의 파일 핸들을 열어 두고 있습니다.

이것이 추출을 막는 이유

macOS는 어떤 프로세스가 드라이브의 파일을 열어 두고 있는 동안에는 추출을 허용하지 않습니다. 이는 안전 기능입니다. 무언가가 활발히 읽거나 쓰고 있다면, 추출은 데이터를 손상시키거나 앱을 충돌시킬 수 있습니다.

이 시점에 QuickLook은 중요한 무언가를 읽거나 쓰고 있지 않습니다. 그저 더 이상 필요 없는 파일 핸들을 붙들고 있을 뿐입니다. 하지만 macOS는 “파일을 활발히 사용 중"과 “파일을 닫는 것을 잊음"을 구분하지 않습니다. 핸들은 핸들입니다.

그 결과, 5분 전에 슬쩍 본 미리보기 때문에 드라이브를 추출할 수 없게 됩니다.

고치는 방법

빠른 해결책은 QuickLookUIService를 죽이는 것입니다. 터미널을 열고 다음을 실행하세요.

killall QuickLookUIService

이는 프로세스를 즉시 종료합니다. macOS는 다음에 미리보기가 필요할 때 자동으로 다시 시작합니다. 이제 드라이브가 정상적으로 추출되어야 합니다.

더 정밀하게 하고 싶다면, 먼저 QuickLook이 문제인지 확인할 수 있습니다.

sudo lsof /Volumes/YourDriveName | grep -i quicklook

출력에 QuickLookUIService가 보이면, 그것이 막는 것입니다.

QuickLook의 캐시를 재설정할 수도 있는데, 지속적인 문제에 때때로 도움이 됩니다.

qlmanage -r cache

이는 썸네일 캐시를 지우고 QuickLook 시스템을 다시 시작합니다.

동영상이 최악의 범인인 이유

QuickLook은 동영상 파일을 붙드는 데 특히 공격적입니다. 동영상을 미리보면, QuickLook은 파일을 열고 구간을 넘기거나 더 보고 싶어 할 경우에 대비해 열어 둡니다. 미리보기 창을 닫은 뒤에도 파일 핸들이 남아 있는 경우가 많습니다.

외장 드라이브에 동영상 파일이 있고 (의도적으로든 열 보기로 둘러보다 우연히든) 그중 어느 것이라도 미리봤다면, QuickLook이 추출을 막고 있을 가능성이 높습니다.

같은 문제가 큰 이미지와 PDF에도 정도는 덜하지만 영향을 줍니다. 기본적으로 QuickLook이 미리보기를 생성하느라 실제 작업을 하는 모든 파일 유형이 그렇습니다.

문제 예방하기

macOS 기능을 많이 잃지 않고는 QuickLook을 사실상 비활성화할 수 없습니다. 하지만 그것이 외장 드라이브를 방해하는 정도는 최소화할 수 있습니다.

외장 드라이브를 둘러볼 때 목록 보기나 아이콘 보기로 전환하세요. 열 보기는 선택한 파일에 대해 자동으로 QuickLook을 유발합니다. 목록 보기와 아이콘 보기는 명시적으로 요청하지 않는 한 미리보기를 생성하지 않습니다.

외장 드라이브의 파일을 미리보려고 Space를 누르는 것을 피하세요. 파일을 확인해야 한다면, QuickLook을 쓰는 대신 직접 여세요.

둘러본 뒤 잠깐의 여유를 주세요. QuickLook은 결국 스스로 파일 핸들을 놓아줍니다. 외장 드라이브의 파일을 막 둘러봤다면, 추출을 시도하기 전에 30초 기다리세요.

추출하기 전에 모든 Finder 창을 닫으세요. Finder 창이 더 이상 외장 드라이브를 보여 주지 않더라도, 앞서 둘러본 데서 남은 QuickLook 참조가 있을 수 있습니다.

이 중 어느 것도 훌륭한 해결책은 아닙니다. 뒷정리를 제대로 하지 않는 시스템 프로세스에 대한 임시방편일 뿐입니다.

진짜 해결책

QuickLook이 추출을 막는 데서 답답한 점은, 그것이 일어나고 있다는 것을 알 길이 없다는 것입니다. macOS는 “무언가"가 드라이브를 사용 중이라고만 합니다. 떠올릴 수 있는 모든 것을 닫습니다. 그래도 드라이브가 추출되지 않습니다.

보이지 않는 어느 백그라운드 프로세스가 범인인지 추측하거나, 조사하려고 터미널 명령을 실행하기 시작해야 합니다. 드라이브를 뽑는 것처럼 일상적인 일에 이는 터무니없습니다.

Ejecta는 무엇이 추출을 막는지 정확히 보여 줍니다. QuickLookUIService가 문제일 때 즉시 보입니다. 클릭 한 번으로 프로세스를 종료하고 드라이브를 풀어 줍니다. 추측도, 터미널도, 무언가를 망가뜨리는 건 아닌지 걱정하는 일도 없습니다.

QuickLook은 가끔 불필요한 문제를 일으키는 유용한 기능입니다. 그것이 파일 핸들을 놓아주지 못하는 일을 처리하려고 Unix 탐정이 되어야 할 필요는 없습니다.

매번 터미널을 쓰고 싶지 않다면, Ejecta가 어떤 프로세스가 드라이브를 막고 있는지 정확히 보여주고 메뉴 막대에서 클릭 한 번으로 종료할 수 있게 해줍니다.

지금 구입 — $9.99