我が家のMacBook Pro Early 2011はだいぶ前からSpotlightが不調でした。よくあるmdsの暴走でCPU占有率が上がったりファンがうなりつづけたり。で、ググると無効化したりインデックス再構築する方法が出てくるんですが、ついにウチは正常化にいたらずしばらく放置してありました。
ところが今日になってMac AppStoreのアプリの更新で通知されていないものがあることに気付き、どうもSpotlightでアプリのインデックスができてないとそうなるということらしい。ということでもういちど気合いを入れてSpotlight正常化に挑戦しました。
現象としては、「コンソール」にspotlight関連のエラーが延々と表示。
そして左サイドバーから「システム診断レポート」を開くと、十数秒置きに下記エラーが作成されていました。
Version: ??? (???)
Code Type: X86-64 (Native)
Parent Process: launchd [1]
Date/Time: 2012-05-28 02:58:46.552 +0900
OS Version: Mac OS X 10.7.3 (11D50)
Report Version: 9
Anonymous UUID: B50639EE-C9EB-4547-AE92-F0194F197C9D
Crashed Thread: 0
Exception Type: EXC_BREAKPOINT (SIGTRAP)
Exception Codes: 0x0000000000000002, 0x0000000000000000
Application Specific Information:
dyld: launch, loading dependent libraries
Dyld Error Message:
Library not loaded: /System/Library/PrivateFrameworks/SpotlightIndex.framework/Versions/A/SpotlightIndex
Referenced from: /System/Library/Frameworks/CoreServices.framework/Frameworks/Metadata.framework/Support/mds
Reason: no suitable image found. Did find:
/System/Library/PrivateFrameworks/SpotlightIndex.framework/Versions/A/SpotlightIndex: open() failed with errno=-22
(以下略)
赤字部分に注目。/System/Library/PrivateFrameworks/SpotlightIndex.framework/Versions/A/フォルダにあるSpotlightIndexというフォルダが正常に読み込めないっぽい。ということで、とりあえず、このファイルをデスクトップに待避。
$ sudo mv /System/Library/PrivateFrameworks/SpotlightIndex.framework/Versions/A/SpotlightIndex ~/Desktop
すると次は当該部分が下の様に変化。
Dyld Error Message:
Library not loaded: /System/Library/PrivateFrameworks/SpotlightIndex.framework/Versions/A/SpotlightIndex
Referenced from: /System/Library/Frameworks/CoreServices.framework/Frameworks/Metadata.framework/Support/mds
Reason: image not found
(以下略)
SpotlightIndexファイルが「読み込めない」よ、から「無いよ」に変わったわけです。まぁ当たり前ですね。この状態でOSを再起動したり、インデックス再作成コマンドを打ったりしてみてもSpotlightIndexファイルは再作成されませんでした。
そこで最後の手段とばかりに、別のMacから同ファイルをコピーw。そしたら数秒後にはインデックス作成が始まりました!
待避したものと持って来たものではサイズが全く違うので、このファイルがインデックスの実態っぽいですね。だとするともってきた方のMacのファイル情報が無駄に含まれていてトラブルの元になる可能性があるので、念のため「システム環境設定」->「Spotlight」->プライバシー」で除外する場所にMacintosh HDを追加。これでインデックス再作成が中断されたので、少し間を置いてから除外指定を解除。これでまた再作成が始まりました。多分これで一旦リセットされたんじゃないかなぁ、と期待。
なんとかOS再インストールは免れそうです。