以下内容均假设硬盘是/dev/sda,闲置20分钟后自动休眠
1、hd-idle
本工具通过SCSI层访问硬盘:
opkg install hd-idle
hd-idle -t sda
硬盘停转了就说明可用,可以去自定义它的配置文件参数位于/etc/config/hd-idle
如果操作之后hd-idle不自动启动,可以手动方式启用:
/etc/init.d/hd-idle enable
/etc/init.d/hd-idle start
也可以通过来判断是否加载了正确的配置文件:
ps | grep hd-idle
2、hdparm
如果hd-idle工作不正常,可以尝试一下hdparm:
opkg install hdparm
hdparm -y /dev/sda
如果这次听到了硬盘停转,那就可以创建一个脚本文件/etc/spindown
,实现定时自动控制:
#!/bin/sh
oldstate=''
n="$2"
while :; do
sleep 60
newstate=$(grep "$1" /proc/diskstats)
if [ "$newstate" = "$oldstate" ]; then
n=$(($n - 1))
[ "$n" != 0 ] || hdparm -y /dev/"$1"
else
n="$2"
oldstate=$newstate
fi
done &
给脚本文件添加如下权限:
chmod 777 /etc/spindown
添加以下内容到/etc/rc.local
,设定sda在20分钟后停转:
/etc/spindown sda 20
还有个更简单的方法是直接将以下内容插入/etc/rc.local
中,参数240就代表20分钟:
hdparm -S 240 /dev/sda
3、sdparm
如果上述工具都不可用就可以尝试本工具:
opkg install sdparm
sdparm -f -C stop /dev/sda
如果这次你听到硬盘停转了,那么就使用和hdparm类似的脚本文件/etc/spindown
,但不同点如下:
[ "$n" != 0 ] || hdparm -y /dev/"$1"
整行替换为
[ "$n" != 0 ] || sdparm -f -C stop /dev/"$1"