既然把猫盘定位为一个使用频率很低的轻量级NAS,那自然做就做到极致,把硬盘不工作时待机作为必须目标来实现。不为省电,只为延长硬盘使用寿命、降低设备工作温度、降低噪音、延长风扇寿命。
猫盘的刷机是照葫芦画瓢,完全按照 猫盘 (ARMADA A3720) 刷机教程 进行的,非常顺利,在此再次感谢原作者精准而周到的文字记录!!!
刷机成功后,从废笔记本上拆下硬盘,西数320G,WD Scorpio Blue蓝盘,具体型号是WD3200BPVT。安装进猫盘后,按照教程末尾提到的方法,修改了待机时间为10分钟,即把 /etc/udev/rules.d/99-hdparm.rules 里面的 hdparm -S 后面的参数改成120。
在没有精确计时的情况下 ,猫盘一直放置着,过了一段时间后硬盘的确是停止了工作,检测方法是用手触摸,感觉不到硬盘的转动。也可以用命令行 hdparm -C /dev/sda ,输出为standby表示已经待机,如果是active/idle则表示还在工作状态。
既然硬盘待机没问题,那么就开始编写我的控制脚本。第一次写Linux Shell,边学边写,大概半天时间也就搞定了。 另外,为了检测硬盘温度,安装了smartmontools 。脚本一开始运行的效果似乎不错,但经过仔细测试,发现在硬盘待机上存在问题:
这两个现象的并存,让我几乎人格分裂。(1)会让你觉得脚本有问题,导致没有待机,(2)则证明脚本并不会 *** 作硬盘,不会触发唤醒。
进一步搜索资料,发现有人说使用 hdparm -S 设置待机等待时间的命令,必须要先使用 hdparm -B 数字 来设置APM节能级别,数字大于127时不会待机。通过 hdparm -B /dev/sda 我能看到当前APM数值为254,可之前硬盘明明是能待机的... 还是试试吧,于是在 /etc/udev/rules.d/99-hdparm.rules 中的命令中增加了 -B127 ,但结果是没有看到任何变化。
在种种现象的相互矛盾、各种参数设置无法达到预计效果的情况下,不由的开始怀疑硬盘并没有按照软件预想进行工作。在搜了很多资料后,发现 这一篇文章
提到,hdparm的-B、-S参数可能在西数的某些硬盘上不能按设计工作,甚至有人遇到问题的硬盘型号跟我的一模一样:
又经过几天零零碎碎的调查、测试,得出以下结论(此处省略描写辛酸的1万字):
在我的这块硬盘上,使用 hdparm -B127 -S120 /dev/sda ,并且不安装smartmontools,可以按照预期,在硬盘无 *** 作10分钟后进入待机状态。如果需要调整为等待15分钟,则-S参数设置为180,以此类推。
在上面提到的那篇帖子中,提到了终极解决方法, 使用 hd-idle 来控制硬盘待机。其原理好像是监控 /proc/diskstats 中的硬盘读写计数器,当持续不变的时间达到预设值时,就发送指令让硬盘待机。这样相当于利用 *** 作系统的监控能力,避开了硬盘厂商五花八门的电源管理机制,理论上在任何硬盘上都能工作,的确是一个好办法。不过因为我已经把这块硬盘的待机工作机制基本研究清楚,就没有再试了。
自定义就是自己设置的时间,例如你把时间设置为1分钟,那样的话如果你在一分钟内没有对电脑进行 *** 作,系统就会在一分钟后进入待机状态,就是进入到功耗最低的状态;另外如果你的系统是XP或其他的系统,在不用电脑又不想关机的情况下建议让电脑待机,如果系统是Linux的话建议你不要让电脑待机,因为现在有人检测到Linux *** 作系统在待机的情况下比在开启的时候功耗还要高欢迎分享,转载请注明来源:内存溢出
评论列表(0条)