一般来说,使用 hdparm hd-idle 和 sdparm 就可以解决问题

有些硬盘只支持这其中的1~2种

注意:频繁唤醒硬盘会因为转动惯性让机械轴心产生较大的压力,一般情况下最短间隔5分钟(当然如果一整天都在使用就别让它自动休眠了....

首先查看硬盘设备名,一般就是/dev/sda,dev/sdb之类的。

如:

$ blkid
/dev/mmcblk0p1: LABEL="SYSTEM" UUID="2CF2-FD50" TYPE="vfat" PARTLABEL="EFI system partition" PARTUUID="6daa21c3-5cdf-4860-b435-f00328e5fb96"
/dev/mmcblk0p3: UUID="EA02891C0288EEBF" TYPE="ntfs" PARTLABEL="Basic data partition" PARTUUID="e8ef6337-4653-4eba-8175-3a2721dfa30e"
/dev/mmcblk0p4: LABEL="Recovery" UUID="5494FEC794FEAA9E" TYPE="ntfs" PARTLABEL="Basic data partition" PARTUUID="eb372b02-bd8e-42f9-95c6-54457d71b50a"
...
$ 

因此,假如你的磁盘是/dev/mmcblk0p1,那么PARTUUID="6daa21c3-5cdf-4860-b435-f00328e5fb96"中引号内的就是你的磁盘id,一般情况下在不擦除格式化,它是不会变化的(我认为它和分区绑定,而不是硬件绑定,也就是分区没了,这个id就没了)

1.hdparm

sudo apt-get install hdparm -y

sudo hdparm -y /dev/sdb

/dev/sda:

 issuing standby command

SG_IO: bad/missing sense data, sb[]: 70 00 05 00 00 00 00 0a 00 00 00 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00(没有这句表示支持,有什么bad/missing就是不支持,不支持就换一个吧)

然后修改/etc/hdparm.conf文件

文件末尾加入

/dev/sdb {

write_cache = on

spindown_time = 120 #其中120是10分钟误操作自动休眠的意思,是 10×60/5得到的时间

}

2.sdparm

有的硬盘不支持hdparm命令,就得用用sdparm实现硬盘自动休眠,执行:

sudo apt-get install sdparm
利用cron计划任务来执行硬盘休眠任务,运行
执行:crontab -e

在最下面添一行

/10 * * * * sdparm --command=stop /dev/sda

说明:超过休眠时间后再访问,需要2-3s才能加载出来,休眠能一定程度上保护硬盘。

注意:迅雷服务开启时会一直给其他用户提供下载源,所以服务开启时硬盘一直在工作得不到休眠,可采用关闭服务的方式让硬盘一段时间后自动休眠。

发表评论

电子邮件地址不会被公开。 必填项已用*标注