본문 바로가기

추천팁/문제해결

OS X 스팟라이트(Spotlight) 인덱스 재생성으로 해결할 수 있는 문제 유형

맥 운영체제는 디스크 안에 있는 정보와 데이터를 손쉽게 찾을 수 있도록 '스팟라이트(Spotlight)'라는 기능이 준비돼 있습니다.

메뉴 막대에 있는 스팟라이트 아이콘이나 control + space 키를 사용해 검색 필드를 띄우고, 그 안에 검색할 내용을 입력하기 시작하면 키워드와 가장 연관성 높은 파일을 찾기 시작하죠. 각각의 파일은 응용 프로그램과 도큐멘트, 폴더, 이미지 등 여러 범주로 나뉘어 쉽게 구분할 수 있으며, 키워드를 구체적으로 입력할 수록 검색 결과도 더 향상되는 방식입니다.

스팟라이트가 결과를 신속하고, 또 능동적으로 찾아낼 수 있는 비결은 바로 스팟라이트 데이터베이스에 있습니다.

* 백그라운드에서 스팟라이트 데이터베이스를 관리해주는 mds와 mdworker 프로세스

스팟라이트 데이터베이스는 일종의 캐시 파일인데, 파일의 이름과 경로, 내용물을 목차로 정리해 두었다 필요할 때 불러내는 식으로 작동합니다. 매번 하드디스크를 통째로 스캔할 필요가 없으므로 체감 성능이 좋고, 하드디스크의 용량 현황을 빠르게 파악할 수 있다는 장점이 있습니다. 여러분이 맥을 쓰지 않고 있을 때도 mds와 mdworker라는 프로세스(위 이미지)가 백그라운드에 열심히 돌아가며 이 데이터베이스를 꾸준히 갱신하고 관리해줍니다.

그런데 예기치 않은 오류로 인해 이 두 프로세스가 오동작을 일으키면 데이터베이스에 잘못된 정보가 기입되거나 손상을 일으키고, 스팟라이트가 검색 결과를 제대로 표시하지 못하거나 디스크 용량이 엉뚱하게 집계되는 등의 여러 이상 증상이 나타납니다.

이번 글은 스팟라이트 데이터베이스가 손상되었을 때 구체적으로 어떤 증상이 일어나는지, 또 손상된 데이터베이스를 어떻게 재생성(rebuild)하여 문제를 해결하는지를 알아보겠습니다.

대표적인 이상 증상

증상 1. 잘못된 스팟라이트 검색결과

스팟라이트에 문제가 생겼을 때 나타나는 가장 대표적인 오류는 검색 결과가 이상하게 표시되는 것입니다. 예를 들어, 스팟라이트 검색창에 'calc'를 입력하면 당연히 '계산기(calcuator)'를 찾아줘야 하는데, 엉뚱하게도 캘린더(calendar)가 가장 연관된 항목난에 표시되는 문제가 발생할 수 있습니다. 그 밖에 파일을 이름으로는 검색할 수 있는데 내용물로는 검색하지 못하는 증상, 캘린더나 연락처 앱은 잘 검색되지만 그 안에 있는 이벤트나 연락처 항목을 검색하지 못하는 현상이 발생할 수 있습니다.

증상 2. 스팟라이트 결과 없음

스팟라이트가 특정 폴더에 있는 문서나 응용 프로그램을 찾지 못하는 것도 데이터베이스 오류의 대표적인 예입니다. 데이터베이스가 완전히 손상되었거나 스팟라이트 관련 프로세스가 오류로 정지된 상황에서 파일을 복사/이동한 이력이 있으면 이러한 증상으로 이어질 수 있습니다. 당연히 스팟라이트 데이터베이스를 반드시 새로 인덱싱해주어야 합니다.

증상 3. 스팟라이트 결과 중복 표시

같은 파일이 여러번 중복으로 표시되거나 잘못된 카테고리에 속해 있는 것도 이상 징후로 볼 수 있습니다. 물론 실제로 같은 이름의 파일이 여러 개 존재할 가능성도 있으므로 파일 각각의 위치를 잘 살펴봐야 합니다. 참고로 키보드 방향키로 해당 파일을 강조한 뒤 command 키를 누르면 파일의 정확한 경로를 보여줍니다.

증상 4. 저장공간 용량 표시 오류

Apple () 메뉴 ▸ 이 Mac에 관하여 ▸ 저장 공간 탭에 표시되는 정보도 스팟라이트 데이터베이스로 산출한 결과입니다. 따라서 스팟라이트 데이터베이스에 문제가 있으면 데이터 사용량에도 오류가 생길 수 있습니다. 예컨대 하드디스크 총 용량보다 App 영역 용량이 더 크게 표시된다든가, 여유 공간이 비정상적으로 적게 표시되는 등의 증상을 목격할 수 있습니다.

증상 5. 런처 프로그램 검색 오류

스팟라이트 데이터베이스는 스팟라이트뿐만 아니라 알프레드를 비롯한 각종 런처 프로그램과 파일 검색 프로그램과도 공유됩니다. 따라서 데이터베이스에 문제가 생기면 이런 프로그램에도 직관접적인 영향을 끼칩니다. 위에서 나열한 증상과 비슷한 문제가 나타날 수 있는 것입니다.

결론은 스팟라이트 데이터베이스 재생성(Rebuild)

1. Apple () 메뉴에서 시스템 환경설정을 선택하고, Spotlight를 클릭합니다. ▼

2. 개인 정보 탭을 클릭합니다. ▼

3. Finder를 열고 타이틀바에 있는 폴더 이름을 우클릭합니다. 현재 폴더의 상위 폴더가 주루룩 나타나는데 여기서 전체 볼륨(최상위 폴더)를 선택합니다. ▼

4. 전체 볼륨을 Spotlight 개인정보 탭의 검색 방지 목록으로 드래그합니다. ▼

5. 확인 메시지가 표시되면 승인을 클릭하고 Spotlight 환경설정을 닫습니다. ▼

6. 방금 추가한 볼륨을 클릭한 다음 빼기("-") 단추를 클릭하여 제거합니다.▼

7. 스팟라이트 검색창을 띄우면 좌측 상단에 '인덱싱...'이라는 문구와 진척사항을 알려주는 상태표시바가 나타납니다. 인덱싱 작업에 걸리는 시간은 하드디스크 성능과 용량, 파일 개수에 따라 크게 차이날 수 있습니다. ▼

인덱싱이 완료되면 스팟라이트가 검색 결과를 올바르게 표시하기 시작합니다.

터미널 명령어로도 가능

위와 동일한 작업, 즉 스팟라이트 개인 정보 탭에 드라이브를 추가하고 제거하는 작업은 터미널 명령어로도 진행할 수 있습니다.

터미널은 응용 프로그램 ▸ 유틸리티 폴더 안에 있습니다. 터미널 실행 후 다음 명령어를 입력하고 사용자 암호를 입력하면 하드디스크 전체에 대한 스팟라이트 데이터베이스를 다시 생성합니다. ▼

sudo mdutil -E /

명령어에 붙는 '-E'는 기존의 스팟라이트 데이터베이스를 삭제하고 재생성할 것을 지시하는 플래그입니다. 이 외에도 스팟라이트를 비활성화시킨다든가 verbose 모드로 진행하는 등의 여러 플래그가 준비돼 있으니 관심 있는 분은 메뉴얼 페이지를 참고하시기 바랍니다. 자. 이제 명령어가 성공적으로 수행되면 스팟라이트 검색창에 키워드를 입력했을 때 작업 진척을 알려주는 상태표시바가 표시됩니다.

만일 맥에 연결한 외장하드 또는 NAS 같은 네트워크 드라이브 안에 있는 파일이 제대로 검색되지 않는다면, 해당 드라이브에 대한 스팟라이트 인덱스를 따로 진행하는 것이 도움이 될 수 있습니다. 기본적으로 위와 같은 명령어를 사용하지만 명령어 끝에 드라이브 경로와 이름을 정확히 지정해주어야 합니다. ▼

sudo mdutil -E /Volumes/[드라이브명]


참조
Apple Mac Developer Library - mdutil(1)
Apple - Spotlight: 폴더 또는 볼륨을 다시 인덱스하는 방법

관련 글
맥의 하드웨어 담당하는 PRAM과 SMC의 차이와 초기화로 해결할 수 있는 문제 유형
OS X 시스템 복구 기능에 대한 이해와 설명… '로컬 복구? 인터넷 복구? 무슨 차이야'
OS X 맥 앱스토어에서 앱을 다운로드할 수 없거나 업데이트 기능에 문제가 생겼을 때 해결 방법
OS X에 내장된 메일(Mail) 앱을 초기화하는 방법
OS X 독 막대와 런치패드를 공장초기화 상태로 복원하는 방법