最近、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 には通常以下のものがある:

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 が使用する多くのシステムフォルダも含まれている。

興味深いのはここから。

Finder のルート階層には「ライブラリ」「ユーザ」「システム」「アプリケーション」が表示され、 自分のユーザフォルダを開くとデスクトップ・ダウンロード・書類が見える。 アプリケーションを開くとインストール済みアプリが一覧で表示される。

しかしこれらは“実際の物理的な場所”ではない。 本当のファイルは Data ボリューム(System → Volumes → Data)に保存されており、 Finder に見えるフォルダは、そこへリンクされた“仮想的な表示”にすぎない。

では、Spotlight のインデックスファイルの中身を直接見られるのか?

残念ながら、それは不可能。macOS はアクセスを厳しく制限している。

…次に調べたいテーマ:SIP(System Integrity Protection)