最近我的电脑一直卡顿,彩虹转圈圈一直出现,屏幕一会儿冻结一会儿恢复。就算把所有应用都关掉也毫无改善。
我脑子里首先闪过的念头:
M4 Pro 芯片的电脑竟然这样?什么情况?难道我花那么多钱就是为了体验这个?!
为了确认到底是谁占用了 CPU, 我打开了 应用程序 → 实用工具 → 活动监视器 结果发现罪魁祸首是 Spotlight 无限循环索引 。
1. 什么是 Spotlight?
在顶部菜单栏的时钟旁边,有一个放大镜图标。
▲ macOS 菜单栏中的 Spotlight 图标
点击它会出现“Spotlight 搜索”窗口。Mac 用户通常使用它来查找文件或应用。
Spotlight 是 macOS 的内置搜索引擎功能。 它会扫描电脑里的所有文件、应用、邮件与文档,并将它们记录在索引数据库中。 当你输入关键词时,Spotlight 就使用这个索引来快速返回搜索结果,就像一个迷你版的 Google。
但问题是:如果索引过程因为某些原因陷入“错误 → 重新索引 → 再次错误”的无限循环, CPU 占用就会飙升,整个系统会变得超级卡。 我当时把索引给删掉了,但却忘了让它重新生成,所以突然发现 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 文件系统) 结构。 所谓“卷”,就是存储空间的分区容器。现代 Mac 一般包含以下卷:
- Macintosh HD(只读系统卷)
- Macintosh HD – Data(用户数据)
- Preboot(启动所需)
- Recovery(恢复模式)
- VM(虚拟内存)
操作系统(如 macOS Sequoia)安装在 Macintosh HD 上, 而用户安装的应用和文件则位于 Macintosh HD – Data 上。
但 Finder 不会展示真实的结构。 它会将这两个卷“合并”,以一个“Macintosh HD”形式展示出来。 (后台真正是分开的,只是 Finder 选择隐藏真实结构而已。)
因此即使 /System/Volumes/Data 真实存在,它在 Finder 里仍然不可见。
5. Data 卷里实际包含什么?
可以在终端中查看:
ls -al /System/Volumes/Data
里面不仅有用户文件,还有很多 macOS 运行所需的系统文件夹。
- .Spotlight-V100 – Spotlight 索引数据库
- .DocumentRevisions-V100 – 文档版本记录
- .fseventsd – 文件系统事件记录
- private – 系统设置、日志、缓存
- usr – 可执行文件与库
- Library – 应用数据与缓存
- Users – 用户文件的真实位置
- Applications – 用户安装的应用
有趣的是:
在 Finder 的根目录下,你能看到 Library、Users、System、Applications。 打开自己的用户文件夹,会看到桌面、下载、文档等。 打开应用程序文件夹,可以看到所有应用。
但这些都不是文件真正的物理位置。 实际文件都存放在 Data 卷(System → Volumes → Data)中。 Finder 显示的“用户”“应用程序”只是被虚拟映射出来的位置。
那么,我们能直接查看 Spotlight 索引文件内容吗?
很遗憾,不能。macOS 会严格阻止你访问它们。
……下一篇要研究的主题:SIP(系统完整性保护)