NAS重做了系统,据之前使用的体验,OMV各种BUG挺多的,作为NAS系统也搞不出啥花样,就换成了XUbuntu(Debian的安装太烦,还要联网),硬盘休眠一直有些问题,折腾了很久,因此记录一下。

自带hdparm -S设置时间,总是不能休眠,手动hdparm -Y可以。研究了半天,又是APM又是用hd-idle替代,都不好使。

最后发现了有人写了个脚本hdd-spindown.sh,用了一种简单直接的办法,每隔一定时间读取/sys/block/sdX/stat,检查设定时间内有没有数据写入,再判断硬盘当前状态,手动hdparm -Y休眠硬盘。

然而这个脚本我实际使用的时候,需要把的dev_isup "$1" && return 0注释掉(似乎是执行结果会一直得出硬盘处在活跃状态),并且把无数据写入时间和检测间隔设置的很短的情况下才能成功休眠。

有人提到在高版本Linux内核的系统上,脚本会一直判断有数据写入而不会休眠硬盘,然后写了修改版,配置文件有些许区别,同样注释掉出问题的行( 第55行)后,的确能正常使用了。

硬盘休眠状态可以用脚本检测,想看的时候执行一下就行。

#!/bin/bash
dsk=`ls /dev/|grep 'sd[a-z]$'`
echo `date +%c`
for i in $dsk;
do
echo -n "/dev/$i : " ;
echo `smartctl -i -n standby /dev/$i|grep "mode"|awk '{print $4}' `;
done
exit