Spotlight가 디스크 추출을 막는 이유

Spotlight 색인은 외장 드라이브를 추출할 수 없는 가장 흔한 이유 중 하나입니다. 어떻게 대처하는지 알아봅니다.

외장 드라이브를 추출하려는데 macOS가 거부합니다. 활성 상태 보기를 확인하니 mdsmds_stores라는 프로세스가 드라이브에 접근하는 것이 보입니다. 축하합니다, Spotlight 색인을 만난 것입니다.

이것은 아마 Mac에서 외장 드라이브가 추출되지 않는 가장 흔한 이유일 것입니다. Spotlight는 나중에 검색할 수 있도록 모든 것을 색인하려 하고, 2분 뒤에 회의에 가야 한다는 사정 따위는 신경 쓰지 않습니다.

Spotlight가 실제로 하는 일

Spotlight의 색인 시스템은 여러 백그라운드 프로세스로 실행됩니다. 주된 것은 mds(메타데이터 서버)로, 전체 작업을 조율합니다. 그다음 mds_stores가 색인된 메타데이터의 실제 저장을 처리합니다. 파일을 읽고 분류하는 무거운 일을 하는 mdworkermdworker_shared도 보일 수 있습니다.

외장 드라이브를 연결하면, Spotlight는 그것을 탐험할 새 영토처럼 취급합니다. 모든 파일을 스캔하고, 메타데이터를 추출하고, 검색 가능한 색인을 구축하기 시작합니다. 그 드라이브를 그냥 두라고 Spotlight에 명시적으로 알리지 않는 한 이 일은 자동으로 일어납니다.

문제는 Spotlight가 작업하는 동안 파일 핸들을 열어 둔다는 점입니다. 그 핸들이 존재하는 한, macOS는 드라이브를 “사용 중"으로 여겨 추출을 허용하지 않습니다.

Spotlight가 범인인지 확인하는 방법

활성 상태 보기를 열고(역설적이게도 Spotlight에서 검색해서) 다음 프로세스 이름을 찾으세요. mds, mds_stores, mdworker, 또는 mdworker_shared. 이 중 어느 것이라도 프로세스 정보에 외장 드라이브 이름을 표시한다면, Spotlight가 막는 것입니다.

터미널에서도 확인할 수 있습니다. 드라이브 이름을 자신의 것으로 바꿔 이 명령을 실행하세요.

lsof /Volumes/YourDriveName

출력에 mds 관련 프로세스가 보이면, Spotlight가 드라이브를 붙들고 있는 것입니다.

빠른 해결책: 색인을 일시적으로 비활성화하기

가장 빠른 해결책은 그 특정 볼륨에 대해 Spotlight 색인을 끄는 것입니다.

sudo mdutil -i off /Volumes/YourDriveName

암호를 입력해야 합니다. 명령이 완료되면 Spotlight가 드라이브를 놓아주고 정상적으로 추출할 수 있게 됩니다.

나중에 드라이브를 다시 연결해 색인을 되돌리고 싶을 때:

sudo mdutil -i on /Volumes/YourDriveName

영구적인 해결책: 드라이브를 완전히 제외하기

특정 외장 드라이브를 Spotlight가 절대 색인하지 않기를 원한다면, 개인정보 보호 목록에 추가할 수 있습니다.

시스템 설정을 열고, Siri 및 Spotlight(구형 macOS 버전에서는 그냥 Spotlight)로 간 다음, 하단의 “Spotlight 개인정보 보호"를 클릭하세요. 외장 드라이브를 이 목록으로 끌어다 놓거나 더하기 버튼을 클릭해 추가하세요.

이 목록의 드라이브는 Spotlight가 완전히 무시합니다. Spotlight 메뉴에서 그 내용을 검색할 수는 없지만, 매번 즉시 추출됩니다.

숨겨진 파일을 쓰는 요령도 있습니다. 외장 드라이브의 루트에 .metadata_never_index라는 빈 파일을 만드세요.

touch /Volumes/YourDriveName/.metadata_never_index

Spotlight는 이 파일을 확인하여 그것이 있는 볼륨은 색인을 건너뜁니다. 이 설정은 각 컴퓨터에 저장되는 대신 드라이브를 따라다니므로, 여러 Mac 사이에 공유하는 드라이브에 유용합니다.

Spotlight가 놓아주지 않을 때

때로는 Spotlight가 멈춰 버립니다. 색인을 비활성화했는데도 프로세스가 여전히 드라이브를 놓아주지 않습니다. 활성 상태 보기에서 문제의 mds 프로세스를 선택하고 X 버튼을 클릭해 강제 종료할 수 있습니다.

시스템 프로세스를 강제 종료하면 일시적으로 이상한 현상이 생길 수 있다는 점에 유의하세요. Spotlight는 스스로 다시 시작되지만, 잠시 속도 저하가 보이거나 모든 것이 안정될 때까지 잠깐 기다려야 할 수 있습니다.

Spotlight 프로세스를 죽인 뒤에도 드라이브가 추출되지 않으면, 다른 무언가도 그것을 열어 두고 있는 것입니다. lsof 명령을 다시 실행해 무엇이 남았는지 보세요.

이런 일이 계속 생기는 이유

외장 드라이브를 연결할 때마다, 제외해 두지 않았다면 Spotlight가 새로 색인을 시작합니다. 전에 쓰던 드라이브조차 색인이 오래되거나 손상되면 다시 색인됩니다.

macOS 업데이트도 Spotlight의 개인정보 보호 설정을 재설정할 수 있습니다. 새 macOS 버전으로 업그레이드한 뒤, 이전에 제외해 두었던 드라이브가 갑자기 다시 색인되고 있더라는 보고를 한 사용자들도 있습니다. 주요 업데이트 후에는 Spotlight 개인정보 보호 목록을 확인할 만합니다.

더 간단한 방법

드라이브를 뽑고 싶을 때마다 활성 상태 보기와 터미널을 뒤지는 일은 금세 지칩니다. Ejecta는 어떤 프로세스가 추출을 막는지 정확히 보여 주고 클릭 한 번으로 종료하게 해 줍니다. Spotlight에 한정하면, 관련된 mds 프로세스를 찾아 깔끔하게 처리하므로, 어느 것을 죽여야 할지 추측하거나 시스템 안정성을 걱정할 필요가 없습니다.

근본 문제(Spotlight가 외장 드라이브를 공격적으로 색인하는 것)는 곧 사라지지 않습니다. 하지만 드라이브를 들고 나가야 할 때마다 그것을 처리하는 일이 연구 과제일 필요는 없습니다.

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

지금 구입 — $9.99