让你的硬盘冷静下来!hdparm硬盘休眠

2022-02-03 17:01:47 17点赞 167收藏 13评论

该篇教程主要讲解设置hdparm让硬盘自动休眠,如果你打算用arm设备作为Linux备份机na

Tip:该教程只适用相关系统硬盘不能自动休眠或无休眠设置项,设置需要按实际情况设置。

查看是否已安装hdparm

hdparm

让你的硬盘冷静下来!hdparm硬盘休眠

安装hdparm

sudo apt-get install hdparm

查看本机所有磁盘

fdisk -l

让你的硬盘冷静下来!hdparm硬盘休眠

查看硬盘是否支持写入缓存,有* (星号),表示支持

sudo hdparm -I /dev/sda | grep 'Write cache'

让你的硬盘冷静下来!hdparm硬盘休眠

让硬盘进入待机模式

hdparm -y /dev/sda1

让硬盘进入睡眠模式

hdparm -Y /dev/sda1

设置定时休眠

5分钟无操作休眠(参数是5的倍数,比如60*5是300秒也就是5分钟)

hdparm -S 60 /dev/sda1

查看hdparm配置

sudo vim /etc/hdparm.conf

让你的硬盘冷静下来!hdparm硬盘休眠

查看是否已安装smartctl

smartctl

让你的硬盘冷静下来!hdparm硬盘休眠

安装smartctl

sudo apt-get install smartmontools

查看硬盘状态,ACTIVE(活动)STANDBY(休眠)

smartctl -i -n standby /dev/sda |grep "mode"|awk '{print $4}'

重点!!!

如果hdparm使用立即休眠有效果,而定时休眠不生效,可以尝试设置下面命令。

创建脚本

vi /etc/spindown

复制

让你的硬盘冷静下来!hdparm硬盘休眠

#!/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

执行脚本,sda硬盘20分钟后休眠

/etc/spindown sda 20

放入开机程序启动

vi /etc/rc.local

让你的硬盘冷静下来!hdparm硬盘休眠

作者声明本文无利益相关,欢迎值友理性交流,和谐讨论~

展开 收起
13评论

  • 精彩
  • 最新
  • 转着不读写估计没什么影响,一会停一会儿转怕是影响大很多

    校验提示文案

    提交
    要看清楚适合人群啊!

    校验提示文案

    提交
    收起所有回复
  • 适合长期不对硬盘做读写,有任何读取或写入就启动,停停转转,硬盘就很快可以换新的了 [赞一个]

    校验提示文案

    提交
    嗯,适合冷备份机,一天只运行一次或者一个星期备份一次这种。

    校验提示文案

    提交
    收起所有回复
  • 看了半天没看出来是啥nas的系统
    群会 qnap 万由
    还是啥呀

    校验提示文案

    提交
    这些不都是基于Linux吗 [铁茄子] ,而且这个只建议在没有合适nas系统上使用,有nas系统一般都有相关选项设置。也就是只合适低功耗arm设备。

    校验提示文案

    提交
    收起所有回复
  • 内容非常受用,在用PVE虚拟黑群晖,没搞好群晖的硬盘休眠正好用这个方法可以让PVE控制休眠,就是不知道这样跟群晖的硬盘操作有没有冲突

    校验提示文案

    提交
    如果是黑群晖的话建议看看是不是sata口没对好,一般6版本之前的应该都能休眠

    校验提示文案

    提交
    收起所有回复
  • 最后脚本我试过了,一个很大问题就是$2输入的值一旦超过30分钟就不行,进入一个反复的循环。比如输入spindown sdc 60,我还专门把n值echo到终端屏幕上验证,每次走完30分钟后就又返回到60,苦恼。是因为/proc/diskstats即使不做读写,30分钟后也会发生变化吗?

    校验提示文案

    提交
    现在是变通的办法,增加第三个变量,分区,我把/proc/diskstats的检测指向硬盘的分区而不是整盘,这样的话30分钟不会被清零了,可以设置超过1小时的闲置休眠。但总是很奇怪,而且不适用于多分区的硬盘,不明白根源的问题出在哪里

    校验提示文案

    提交
    这个不是太清楚了,我也是看论坛有些大佬写的,感觉好像没问题就用了

    校验提示文案

    提交
    收起所有回复
  • 不错,试试

    校验提示文案

    提交
  • 好文,收藏了,教程基本通用

    校验提示文案

    提交
提示信息

取消
确认
评论举报

相关文章推荐

更多精彩文章
更多精彩文章
最新文章 热门文章
167
扫一下,分享更方便,购买更轻松