<?xml version="1.0"?>
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/ DTD/wml_1.1.xml">

<wml>
<head>
<meta http-equiv="cache-control" content="max-age=180,private" />
</head>
<card title="Linux系统hdparm硬盘休眠">
<p>
作者:<a href="index.php?action=showuser&amp;userid=1&amp;hash=">admin</a><br />时间:2025-05-15 07:58<br />分类:<a href="index.php?action=list&amp;cid=3&amp;hash=">电脑技术</a><br />内容:
Linux系统hdparm硬盘休眠


查看是否已安装hdparm




XML/HTML代码


    hdparm







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

安装hdparm(Debian为例)


XML/HTML代码


    sudo apt-get -y install hdparm





查看本机所有磁盘


XML/HTML代码


    fdisk -l





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

查看硬盘是否支持写入缓存，有* (星号)，表示支持


XML/HTML代码


    sudo hdparm -I /dev/sda | grep 'Write cache'





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

让硬盘进入待机模式


XML/HTML代码


    hdparm -y /dev/sda1





让硬盘进入睡眠模式


XML/HTML代码


    hdparm -Y /dev/sda1





设置定时休眠


5分钟无操作休眠（参数是5的倍数，比如60*5是300秒也就是5分钟）


XML/HTML代码


    hdparm -S 60 /dev/sda1





查看hdparm配置


XML/HTML代码


    sudo vim /etc/hdparm.conf





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

查看是否已安装smartctl


XML/HTML代码


    smartctl





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

安装smartctl


XML/HTML代码


    sudo apt-get install smartmontools





查看硬盘状态，ACTIVE（活动）STANDBY（休眠）


XML/HTML代码


    smartctl -i -n standby /dev/sda |grep &quot;mode&quot;|awk '{print $4}'





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

创建脚本


XML/HTML代码


    vi /etc/spindown





代码如下：




XML/HTML代码


    #!/bin/sh

    oldstate=''

    n=&quot;$2&quot;

    while :; do

    sleep 60

    newstate=$(grep &quot;$1&quot; /proc/diskstats)

    if [ &quot;$newstate&quot; = &quot;$oldstate&quot; ]; then

    n=$(($n - 1))

     [ &quot;$n&quot; != 0 ] || hdparm -y /dev/&quot;$1&quot; 

    else 

    n=&quot;$2&quot; 

    oldstate=$newstate     

    fi

    done &amp;







设置文件权限


XML/HTML代码


    chmod 777 /etc/spindown





执行脚本，sda硬盘20分钟后休眠


XML/HTML代码


    /etc/spindown sda 20





放入开机程序启动


XML/HTML代码


    vi /etc/rc.local





添加代码




XML/HTML代码


    /etc/spindown sda 20







简单操作


硬盘休眠(没有hdparm的话需安装)


查看硬盘id


XML/HTML代码


    ls /dev/disk/by-id





显示为


ata-.....


编辑/etc/hdparm.conf文件，增加(60为5分钟)：


XML/HTML代码


    /dev/disk/by-id/ata-... {

        apm  = 127

        spindown_time = 60

        write_cache = on

    }





查看休眠状态：


XML/HTML代码


    hdparm -C /dev/sda





硬盘休眠主要是针对机械盘，固态硬盘就无所谓了。其他系统自测。
</p><p>
<a href="index.php?action=login&amp;hash=">立即登陆发表评论</a><br />
</p>
<p><a href="index.php?action=list&amp;hash=">返回日志列表</a><br /><a href="index.php?action=index&amp;hash=">返回主页</a></p>
</card>
</wml>
