弹出 USB 驱动器后,diskarbitrarationd 会消耗 100% 的 CPU 达 10 分钟之久

弹出 USB 驱动器后,diskarbitrarationd 会消耗 100% 的 CPU 达 10 分钟之久

最近,我从 Macbook 弹出 Seagate SRD0SP0 USB 2.0 硬盘时遇到了问题。它有两个分区,一个是我的 Time Machine 备份,另一个是用于媒体的 ExFAT 分区。还有一个稀疏捆绑磁盘映像。

弹出时,diskarbitrationd 会占用一个 CPU 的 100%,持续约 10-15 分钟,直到最终弹出。控制台包含以下内容...

1/2/13 6:02:32.097 PM fseventsd[67]: could not open <</Volumes/ExFAT/.fseventsd/fseventsd-uuid>> (No such file or directory)
1/2/13 6:02:32.097 PM fseventsd[67]: log dir: /Volumes/ExFAT/.fseventsd getting new uuid: B0B6D688-5CB1-4236-BA7E-BB90E19D3C10
1/2/13 6:07:58.336 PM fseventsd[67]: Events arrived for /Volumes/DiskImage after an unmount request! Re-initializing.
1/2/13 6:07:58.336 PM fseventsd[67]: creating a dls for /Volumes/DiskImage but it already has one...
1/2/13 6:08:03.755 PM fseventsd[67]: Events arrived for /Volumes/ExFAT after an unmount request! Re-initializing.
1/2/13 6:08:03.755 PM fseventsd[67]: creating a dls for /Volumes/ExFAT but it already has one...
1/2/13 6:08:04.227 PM mds[57]: (Error) LSOF: File '/Volumes/ExFAT' (fd=11) left open on device 16777222
1/2/13 6:15:53.927 PM SystemUIServer[302]: Error getting disk for path /Volumes/Backup: Couldn't stat disk
1/2/13 6:16:08.033 PM SystemUIServer[302]: Error getting disk for path /Volumes/Backup: Couldn't stat disk

我已更改卷名称,以便更明显地知道哪个是哪个。

我在两个分区上运行了 Disk First Aid。这是 OS X 10.8.2,几周前安装的。我没有运行任何特殊软件,但 Sophos An

对于问题可能是什么或者如何进行诊断,您有什么想法吗?

答案1

我不得不说我不确定,但对我来说,记录的“事件”的问题似乎是稀疏束磁盘映像的索引。

我认为“Spotlight”会尝试索引以下两者:

  • 磁盘映像已安装(并索引)卷,因为您可能会编辑某些内容(也许是非自愿的 - 保留查看lsof或类似的东西)。
  • 以及包含该磁盘映像的目录,因为上一点(以及稀疏捆绑磁盘映像的性质)。

我认为后者可能会持续更新其索引,直到前者完成为止……


也许 Mac OS X 会尝试对稀疏束的部分进行碎片整理……

也许(也可能)是防病毒软件被配置为对已安装的卷执行某些操作……(而您可能根本不需要它)


第一个日志让我想到了坏块...也许是驱动器故障?


此外,请考虑 exFAT 针对闪存驱动器而非机械硬盘进行了优化;这可能会在某种程度上影响整体性能……

另外,我曾经读到过(我不记得在哪里)Mac OS X 的 exFAT 实现并不是很好;老实说,我没想到苹果自第一次集成以来就改变了它。


我建议的解决方案(因为日志中主要提到了 Spotlight)是将磁盘映像文件(以及您不需要索引的任何其他文件)移动到子目录,并指示 Spotlight 的元数据服务器不要索引它,也不要索引(如果您不介意的话)相应的已安装卷(您可以使用mdutil命令行工具);但我建议根本不要索引 exFAT 分区,除非您真的需要它。但我会密切关注驱动器的健康状况和 Sophos 的行为……

相关内容