OpenWrt固件自动休眠外接移动硬盘脚本OpenWrt安装硬盘休眠插件解决定时休眠无效

2020-11-21
0评论
/
阅读
爱搜啊

此方法适合固件里没有包含 硬盘休眠 功能的固件,推荐几款已经包括 硬盘休眠 功能的固件

斐讯K3-LEDE固件下载支持硬盘休眠

新路由3OpenWRT/LEDE固件支持硬盘休眠

也可以自己编译支持硬盘休眠的固件,参考下面的说明

LuCI -> Applications添加插件应用说明,找到LuCI ---> Applications ---> luci-app-hd-idle  #硬盘休眠编译的时候记得选择上编译。

编译固件的方法《OpenWRT(LEDE)固件编译自定义软件包编译固件添加插件

OpenWrt固件手动安装硬盘休眠插件

如果你在你的路由器上外接了一块硬盘,而你又不是一直在使用它,你可能会想要自动休眠这块硬盘。一是为了减少噪音,二是为了减少热量以避免高温对硬盘造成伤害。

这篇介绍的方法可能不适用于每一个路由器。

QQ浏览器截图20201121174419(1).png

图片是LEDE固件的硬盘休眠截图

hd-idle

首先,你应当尝试使用 hd-idle,它会休眠通过 SCSI 层访问的硬盘。安装并测试它是否能够休眠硬盘(假设你的硬盘是 /dev/sda):

opkg install hd-idle
hd-idle -t sda

如果你听到你的硬盘停转了,接着你就可以去自定义它的配置了,配置文件是 /etc/config/hd-idle

hdparm

如果 hd-idle 不工作,那就尝试一下 hdparm:

opkg install hdparm
hdparm -y /dev/sda

如果这次你听到了硬盘停转,那就去创建一个脚本文件 /etc/spindown 以便启动 hdparm:

#!/bin/sholdstate=''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
    fidone &

接着给脚本添加执行权限:

chmod 777 /etc/spindown

然后添加以下内容到 /etc/rc.local(假设你的硬盘是 /dev/sda 并且设定闲置 20 分钟后休眠硬盘):

/etc/spindown sda 20

一个更简单的方法是:如果 hdparm -y /dev/sda 工作,可以只将以下内容插入 /etc/rc.local 中:

hdparm -S 240 /dev/hda

其中 240 代表 20 分钟,时间编码的设置可以自行搜索 hdparm 的参数设置。

sdparm

第三个尝试的方法是使用 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"

本站附件分享,如果附件失效,可以去找找看

诚通网盘附件百度网盘附件


于2020-11-21发布