Tip:在大雕的Ubuntu 20.04下,利用/etc/hdparm.conf设置硬盘休眠的方式无效。经过研究,利用以下方式可以实现机械硬盘休眠。
首先安装hdparm:
apt-get install hdparm
查看本机所有磁盘,找到挂载的硬盘(本教程为/dev/sda,大家根据实际情况修改)
fdisk -l
安装smartctl:
apt-get install smartmontools
查看硬盘状态,ACTIVE(活动)STANDBY(休眠):
smartctl -i -n standby /dev/sda |grep "mode"|awk '{print $4}'
测试:让硬盘进入休眠模式:
hdparm -y /dev/sda
smartctl -i -n standby /dev/sda |grep "mode"|awk '{print $4}'
如反馈:STANDBY,说明硬盘支持休眠。
重点!!!接下来,我们分步骤设置开机启动硬盘定时休眠。
第一步:在/etc下创建spindown脚本:
vi /etc/spindown
输入以下内容:
#!/bin/bash
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 &
输入:wq保存退出。
设置文件权限:
chmod 777 /etc/spindown
第二步:vim /lib/systemd/system/rc-local.service,在文尾添加以下内容:
[Install]
WantedBy=multi-user.target
Alias=rc-local.service
第三步:创建开机启动程序文件rc.local:
vi /etc/rc.local
输入以下内容:
#!/bin/sh
/etc/spindown sda 20 #sda硬盘20分钟后休眠
exit 0
设置可执行权限:
chmod +x /etc/rc.local
第四步:创建软链接:
ln -s /lib/systemd/system/rc-local.service /etc/systemd/system/rc-local.service
reboot重启系统, rc.local就生效了!
文章出处:http://www2.junzeng.top/blog/index.php/archives/7/