通过 bash 脚本避免 OSX 下硬盘磁头停放的最佳方法

通过 bash 脚本避免 OSX 下硬盘磁头停放的最佳方法

在将 MacBook Pro(2012 年中)的光驱换成 SATA-II 硬盘后,我遇到了硬盘在短时间使用后磁头停顿的问题。由于我几乎只将 MacBook 用作台式机替代品,因此出于节能和防震安全原因,我不需要这样做。

我已经通过 McKinlay 的工具将 APM 级别设置为最高性能(例如 254,无磁头停车)hpapm01.12.14 10:05:06,503 hdapm[93]: Set APM Level to 0xfe: Success进入 OSX 的控制台,但 HDD 磁头在空闲约 10 秒后仍保持停车状态,因此请避免基于的标准建议hdapm

然后我创建了一个launchd在登录时运行以下 shell 脚本的守护进程。

#!/bin/sh while true; do touch /Volumes/Data/somefolder; sleep 6; done

通过每 6 秒接触一次 HDD 上某个分区上的某个文件夹Data,显然可以防止磁头停放,但缺点是即使在高 HDD-I/O 下也必须不断跳转到该位置。

我现在想通过将此“保持活动”脚本限制到 HDD 空闲阶段来改进该解决方案。

例如,sudo fs_usage | grep "/Volumes/Data"我可以使用 来获取该分区的 I/O 日志。现在我想在每条 I/O 消息上启动一个计时器,并在预定义的时间后执行上述脚本(如果没有进一步的 I/O 消息发生)。

您能帮我一下或者建议一个更好的方法来防止头部停车吗?

相关内容