树莓派硬盘自动休眠的方法
一般来说,使用 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才能加载出来,休眠能一定程度上保护硬盘。
注意:迅雷服务开启时会一直给其他用户提供下载源,所以服务开启时硬盘一直在工作得不到休眠,可采用关闭服务的方式让硬盘一段时间后自动休眠。