最近、Mac がずっとカクついて、虹色のクルクルが何度も表示され、画面が固まったり戻ったりを繰り返していた。起動中のアプリを全部閉じても状況は全く変わらなかった。
まず頭に浮かんだのは、
M4 Pro チップなのに? なぜ…? まさかこのためにあの金額を払ったわけじゃないよね?!
CPU を占有しているプロセスを確認するために、 アプリケーション → ユーティリティ → アクティビティモニタ を開いてみたところ、原因は Spotlight の無限インデックス化 だった。
1. Mac の Spotlight(スポットライト)とは?
メニューバーの時計の横には、虫眼鏡のアイコンがある。
▲ macOS メニューバーにある Spotlight アイコン
ここをクリックすると「Spotlight 検索」のウィンドウが開く。Mac ユーザーはファイルやアプリを探す際にこの機能をよく使う。
Spotlight は macOS に標準搭載されている検索エンジン機能である。 Mac 内のファイル、アプリ、メール、ドキュメントなどをスキャンし、インデックス(索引データ)としてデータベースに保存する。 そしてキーワードを入力すると、そのインデックスをもとに高速で検索結果を返す——まるで小さな Google のように。
しかし問題なのは、何らかの原因でインデックス処理が「エラー → 再インデックス → エラー」の無限ループに陥ることがある点だ。 そうなると CPU 使用率が急上昇し、Mac 全体が重くなってしまう。 私は一度インデックスを削除したのだが、再構築させることを忘れてしまい、Spotlight が突然何も検索できなくなり混乱した。-_-
2. Spotlight に関連する基本的なターミナルコマンド
Spotlight のインデックスを管理する主なコマンドは以下のとおり。
# Spotlight インデックスを停止 sudo mdutil -i off / # Spotlight インデックスを再有効化 sudo mdutil -i on / # Spotlight インデックスを完全削除(初期化) sudo mdutil -E / # インデックス状態の確認 mdutil -s / # mds/mdworker を強制再起動(問題がある時のみ) sudo killall mds sudo killall mdworker
これらのコマンドはターミナルのどこからでも実行できる。 無限インデックス化ループが発生した場合は、次の順序で解決できる:
① インデックス停止 → ② インデックス削除 → ③ 再有効化
その後 macOS が自動的に全ファイルを再インデックス化する。 インデックスが再構築されれば、Spotlight 検索は再び正常に動作するようになる!
3. 深掘り:Spotlight のインデックスはどこに保存されているのか?
そこで、ふと疑問が湧いた。
「Spotlight のインデックスデータは実際どこに保存されているのか?」
まず Finder で見えるルート階層(“/”)を確認してみよう。
▲ Finder に表示されるルート構造
次に /System フォルダへ。
▲ macOS のシステムフォルダ
そして /System/Volumes を見てみる。
▲ システム内部にある隠れた Volumes 領域
しかしここには「Data」ボリュームが見当たらない。
▲ Finder では Data ボリュームは表示されない
だが Spotlight のインデックスの実際のパスは次のとおり:
/System/Volumes/Data/.Spotlight-V100/
つまり、Data ボリュームは確かに存在するが、Finder からは隠されているのだ。
4. なぜ Finder では Data ボリュームが見えないのか?
これは macOS が APFS(Apple File System) 構造を採用しているため。 ボリュームとはストレージのコンテナのことで、現在の Mac には通常以下のものがある:
- Macintosh HD(読み取り専用、システム)
- Macintosh HD – Data(ユーザーデータ)
- Preboot(起動に必要)
- Recovery(復旧モード)
- VM(仮想メモリ)
OS(macOS Sequoia など)は Macintosh HD に保存され、 ユーザーのアプリやファイルは Macintosh HD – Data に保存される。
しかし Finder はこの本来の構造をそのまま見せない。 2 つのボリュームを 1 つの「Macintosh HD」として表示し、仮想的に統合してしまう。 (実際は分かれているが、Apple がユーザー向けに見え方を単純化している。)
そのため /System/Volumes/Data は確実に存在するにもかかわらず、Finder では見えないのである。
5. Data ボリュームには実際に何が入っているのか?
ターミナルでは次のコマンドで確認できる。
ls -al /System/Volumes/Data
この中にはユーザーファイルだけでなく、macOS が使用する多くのシステムフォルダも含まれている。
- .Spotlight-V100 – Spotlight インデックスデータベース
- .DocumentRevisions-V100 – ドキュメントのバージョン履歴
- .fseventsd – ファイルシステムイベント
- private – システム設定・ログ・キャッシュ
- usr – 実行ファイルとライブラリ
- Library – アプリデータやキャッシュ
- Users – ユーザーフォルダの実際の場所
- Applications – ユーザーがインストールしたアプリ
興味深いのはここから。
Finder のルート階層には「ライブラリ」「ユーザ」「システム」「アプリケーション」が表示され、 自分のユーザフォルダを開くとデスクトップ・ダウンロード・書類が見える。 アプリケーションを開くとインストール済みアプリが一覧で表示される。
しかしこれらは“実際の物理的な場所”ではない。 本当のファイルは Data ボリューム(System → Volumes → Data)に保存されており、 Finder に見えるフォルダは、そこへリンクされた“仮想的な表示”にすぎない。
では、Spotlight のインデックスファイルの中身を直接見られるのか?
残念ながら、それは不可能。macOS はアクセスを厳しく制限している。
…次に調べたいテーマ:SIP(System Integrity Protection)