自从更新到10.7.5以来,Spotlight和Time Machine都非常慢。
- 要索引正常的系统驱动器,Spotlight计算需要花费几天的时间。
- 结果,Time Machine最多需要一个小时或更长时间才能完成约100 Mib的增量备份。
这些缓慢的Time Machine备份和Spotlight索引有什么解决方案?
自从更新到10.7.5以来,Spotlight和Time Machine都非常慢。
这些缓慢的Time Machine备份和Spotlight索引有什么解决方案?
Answers:
2012年10月4日发布的OS X Lion 10.7.5补充更新包括:
解决了可能导致Time Machine备份花费很长时间才能完成的问题
经过测试,这似乎已经完全解决了问题。
请注意,对我来说,安装此更新后的第一次备份仍然花费了很长时间,并且包含许多com.apple.backupd[423]: Waiting for index to be ready (100)
消息,因此Spotlight可能尚未正确重新索引驱动器。现在,几个小时后,小型备份以其通常的快速速度完成,一切都很好。
ocspd
(尽管mdworker内容没有更改)。/System/Library/Sandbox/Profiles/com.apple.xpchelper.sb
补充后看起来像什么?
我在该主题中发布了此变通办法。就是这样(这不是解决方案,只是临时的解决方法,可以让我的备份和Spotlight在发布修复程序之前起作用)。
使用终端:
我禁用了Spotlight索引:
sudo launchctl unload -w /System/Library/LaunchDaemons/com.apple.metadata.mds.plist
我删除了所有驱动器(包括备份驱动器)中的Spotlight索引:
sudo rm -rf /.Spotlight-V100/Store-V1 /.Spotlight-V100/Store-V2 /.Spotlight-V100/VolumeConfiguration.plist
sudo rm -rf /TimeMachineDrive/.Spotlight-V100/Store-V1 /TimeMachineDrive/.Spotlight-V100/Store-V2 /TimeMachineDrive/.Spotlight-V100/VolumeConfiguration.plist
(rm -rf /.Spotlight-V100/*
这对我不起作用。)(这也可以通过使用Spotlight的隐私设置排除整个驱动器,然后重新包含它来完成。)
我删除了/var/folders
内容(请参阅本主题以了解原因):
sudo rm -rf /var/folders/*
我.inProgress
从Backups.backupdb
子文件夹中删除了文件(放入垃圾箱然后清空垃圾箱是这样做的唯一方法)。
可能需要重新格式化备份驱动器,而不是仅删除.inProgress
文件。
我重新启动,然后重新启动Spotlight:
sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.metadata.mds.plist
sudo mdutil -i on -E /
我等到Spotlight完成索引过程
我使用TimeMachine启动了新的备份
我向苹果公司打开了一个错误报告,标题为:“在Mac OS X 10.7下使用Spotlight时,TimeMachine挂起”,并祈祷许多其他人也将这样做以将此错误作为优先事项。
某些步骤可能没有用,但我通过阅读有关慢速TM和Spotlight的不同主题来掌握所有知识。
sudo rm -rf /var/folders/*
在我的案例中做到了这一点
检查您的控制台日志文件并查找类似以下的行(真实的日志行将具有进程ID和日期):
sandboxd: mdworker deny mach-lookup com.apple.ls.boxd
mdworker: Unable to talk to lsboxd
如果您看到了,那可能是问题的根源。Appple使用此最新版本进行了一些操作(也影响Mountain Lion 10.8.2)。
我不知道到底发生了什么,只是说mdworker
(最终会扫描并索引文件以查找Spotlight)调用LSCopyLibraryItemURLs()
最终将消息发送到lsboxd
。沙盒策略不允许这样做,因此该工作人员被杀死。
因此,也许策略文件是错误的,或者mdworker
不应该进行该调用。我不知道。但是,修复策略文件相对容易。 潜在危险,但容易。
以根用户身份编辑这些文件:
/usr/share/sandbox/mdworker.sb
/usr/share/sandbox/mdworker-bundle.sb
在文件中,您将找到以下行:
(allow mach-lookup (global-name "com.apple.ocspd"))
在其下面,添加以下行:
(allow mach-lookup (global-name "com.apple.ls.boxd"))
而已!
如果您想要额外的舒适感,也许要重启。也许删除您的Spotlight索引并重新开始:
sudo mdutil -E /
实际上,我仍然mdworker: Unable to talk to lsboxd
在日志文件中看到,但至少现在索引将完成并且Time Machine再次快速移动。
mdworker-lsb.sb
,mdworker-scan.sb
,和mdworker.sb
。它们都只包含行,(allow mach-lookup)
但不包含(allow mach-lookup (global-name "com.apple.ocspd"))
。
mdworker.sb
我有了(allow mach-lookup) (allow mach-lookup (global-name "com.apple.ls.boxd"))
,在添加该行之后,我重新启动了。然而,时间机器仍在缓慢发展。你能帮忙吗?
mdworker.sb
已经拥有了(allow mach-lookup)
(1),那么您永远都不会sandboxd: mdworker deny mach-lookup com.apple.ls.boxd
在日志中看到它;(2)编辑文件将无济于事。@ user15380
您可以cannot talk to lsboxd
通过编辑system.sb
配置文件(而不是mdworker的错误)来完全解决控制台中所有与mdworker相关的沙箱错误(包括)。在沙箱下运行的所有Apple系统进程(包括mdworker)都使用system.sb文件。如果您将此文件(位于中/System/Library/Sandbox/Profiles
)修改为包括:
(allow mach-lookup (global-name "com.apple.ls.boxd"))
(allow mach-lookup (local-name "com.apple.ls.boxd"))
这将停止所有与lsbox相关的mdworker问题。
如果Spotlight从未完成索引的建立,则可能是因为索引始终在某些文件上停止。几年前,由于这个问题,我进行了全新安装,但在还原旧文件后,安装又恢复了。我最终仅通过将文件夹添加到“系统偏好设置”中的“隐私”选项卡来缩小了引起该问题的文件的范围。
超级用户某人运行opensnoop以查找mdworker停止了哪些文件:
sudo opensnoop -n mdworker
根据用户37651的建议编辑:
我在上面运行了opensnoop命令,它显示〜/ Library / Developer中的文件存在问题,这些文件是从以前的Time Machine还原放到那里的。(我目前未安装XCode。)我删除了该文件夹,并且Spotlight索引仅在30分钟内完成。我的Time Machine备份现在似乎可以正常工作了。
可以删除Spotlight索引,然后强制Mac OS X从头开始创建新的索引。在像您这样的情况下,通常值得尝试。
恐怕我不知道执行此操作的终端命令。当需要执行此操作时,我使用Koingo Software的商业程序MacPilot,价格为20美元。它们具有功能齐全的试用版,您可以使用15天。如果您觉得有用,则可以决定付款。
我想还有其他工具也可以做到这一点。
当然,一旦删除了现有的Spotlight索引,就需要等待Spotlight创建新索引。只要完全生成一台新Mac,您就应该让Mac不间断运行。
我在写一个不同的答案只是为了概述我所采取的具体步骤(我必须清楚地指出,它们只是此处已写内容的一部分,而不是我的贡献),因为在采取这些步骤之后,不仅Time Machine运行得更快,但是我的启动时间从1分钟10秒减少到40秒!我的启动时间总是很吸引我,因为我不断看到人们报告相同规格的启动时间要短得多,而且这些步骤将启动时间缩短了30秒(是的,我测试了不止一次,是的,缓存还可以,我在采取这些措施之前采取了许多步骤,包括修复权限,修复磁盘,甚至使用iDefrag2进行碎片整理,所有这些都没有结果。到现在为止:P
sudo mkdir ~/trash_backup
sudo mv /var/folders ~/trash_backup/ # backup just in case
之后,编辑
/usr/share/sandbox/mdworker.sb
和/usr/share/sandbox/mdworker-bundle.sb
,在两个文件(allow mach-lookup (global-name "com.apple.ls.boxd"))
的行下方添加
(allow mach-lookup (global-name "com.apple.ocspd"))
。
最后,
sudo mdutil -i on -E /; sudo reboot
感谢lauhub和Old Pro。谁能解释启动时间的减少以及对盒装物品的查找和可能的安全性问题?谢谢大家:)
因此,我遭受了与其他所有人相同的痛苦,但是不幸的是,没有按正确的顺序读取所有多个线程,因此基本上丢失了我原来的TM备份,然后丢失了我的Spotlight数据库,但修复失败。
一个我无法再次找到的线程(我认为这更多是关于缓慢的Spotlight索引)来自一个刚刚重新安装了10.7.5的家伙的帖子,一切恢复正常。所以我做到了,它奏效了。
重新安装完成后,我关闭了TM并允许Spotlight编制索引。我出去兜风,回来后就完成了-不到90分钟的时间即可达到149GB。而且有效,我已经在HD上搜索了东西。
然后,我打开TM,花了2个小时9分钟完成操作。
因此,如果您考虑将时间和带宽降级到10.7.4,则不妨考虑重新安装10.7.5。
根据https://discussions.apple.com/thread/4324046?start=60&tstart=0的说明,禁用Spotlight可以$ sudo launchctl unload -w /System/Library/LaunchDaemons/com.apple.metadata.mds.plist
提高Time Machine备份速度。