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 "mode"|awk '{print $4}'
注意:如果hdparm使用立即休眠有效果,而定时休眠不生效,可以尝试设置下面命令。
创建脚本
XML/HTML代码
- vi /etc/spindown
代码如下:
XML/HTML代码
- #!/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 &
设置文件权限
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
硬盘休眠主要是针对机械盘,固态硬盘就无所谓了。其他系统自测。