linux 硬盘自动休眠,【Linux】硬盘休眠

Loading...

> 本文转自:http://www.mkitby.com/2016/05/15/raspberry-pi-nas-manage-hdd-power/

>

> 使用树莓派3b和一块旧式笔记本ide硬盘实验,发现hd-idle可行。

为了延长硬盘使用寿命,当硬盘不使用时,需要让硬盘休眠,目前有一些软件可以自动做这事,像 hdparm, hd-idle 和 sdparm,具体用哪个取决于USB to SATA控制器和硬盘本身,其实说白了就是一个一个试,哪个有用就用哪个。当然,这里说的都是机械硬盘,固态硬盘没研究过。

注意:不要让机械硬盘频繁地休眠唤醒,这样会给电机和轴承较大负荷,会加剧硬盘损耗. 一般制造商建议的最小休眠时间是 3-5 分钟。参考([http://hd-idle.sourceforge.net/)](http://hd-idle.sourceforge.net/%EF%BC%89)

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

```

sudo blkid

```

例如输出

```

/dev/mmcblk0p1: SEC_TYPE="msdos" LABEL="boot" UUID="15CD-3B79" TYPE="vfat"

/dev/mmcblk0p2: UUID="13d368bf-6dbf-4751-8ba1-88bed06bef77" TYPE="ext4"

/dev/sda1: UUID="7e623443-f19a-4564-8e60-e9d2170ac32a" TYPE="ext4"

/dev/sdb1: LABEL="COLORSPACE" UUID="F8E6-4FDB" TYPE="vfat"

/dev/sdb2: UUID="3007-F316" TYPE="exfat"

```

硬盘设备名为/dev/sdb,硬盘有两个分区

# 安装和配置hdparm

先测试hdparm是否支持。

安装 hdparm,

```

sudo apt-get install hdparm -y

```

确保你的硬盘支持hdparm,

```

sudo hdparm -y /dev/sdb

```

如果输出如下结果,就表明支持,

```

/dev/sdb:

issuing standby command

```

如果看到类似如下输出,就表明不支持,可以跳到 hd-idle 或者 sdparm,

```

/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

```

检查硬盘是否支持写缓存功能,

```

sudo hdparm -I /dev/sdb | grep 'Write cache'

```

如果看到 * (星号),表示支持,

```

* Write cache

```

如果没有看到 * (星号),表示不支持,

```

Write cache

```

编辑配置文件,

```

sudo vim /etc/hdparm.conf

```

spindown_time值乘以 5 得到总的时间(单位秒). 例如想配置成空闲10分钟就休眠,spindown_time = 10 * 60 / 5 = 120

在文件结尾加入,

```

/dev/sdb {

write_cache = on

spindown_time = 120

}

```

如果不支持写缓存,去掉 write_cache = on。

重启 hdparm 服务,

```

sudo service hdparm restart

```

更多hdparm配置可以参考这()

# 安装和配置 hd-idle

如果你的硬盘不支持 hdparm,或者就想试下hd-idle, 可以删除hdparm

```

sudo apt-get remove hdparm -y

```

hd-idle 使用一个特殊的系统文件来检测磁盘活动, 如果没有这个文件,那么就不能使用hd-idle。输入

```

cat /proc/diskstats

```

应该会看到如下的输出, 如果提示找不到文件或目录,那就不支持hd-idle。

8 16 sdb 5604 130363 146538 16780 1814 51838 429152 763380 0 18230 780150

8 17 sdb1 5075 130363 139418 15370 8 0 8 10 0 8680 15370

8 18 sdb2 512 0 6984 1290 1805 51838 429144 763360 0 9770 764650

hd-idle的自己编译,

```

sudo apt-get install build-essential fakeroot debhelper -y

```

获取源代码,

```

wget http://sourceforge.net/projects/hd-idle/files/hd-idle-1.05.tgz

```

解压缩进入目录

```

tar -xvf hd-idle-1.05.tgz && cd hd-idle

```

编译安装,

```

dpkg-buildpackage -rfakeroot

sudo dpkg -i ../hd-idle_*.deb

```

继续检查硬盘是否支持hd-idle,

```

sudo hd-idle -i 0 -a sda -i 300 -d

```

你会看到如下输出:

probing sda: reads: 13418, writes: 594344

probing sdb: reads: 146538, writes: 429152

按 Ctrl+C 停止 hd-idle

编辑配置文件,

```

sudo vim /etc/default/hd-idle

```

修改下面来开启hd-idle

```

START_HD_IDLE=true

```

调整空闲时间为10分钟 (60 秒 * 10)

```

HD_IDLE_OPTS="-i 0 -a sda -i 600"

```

重启服务,

```

sudo service hd-idle restart

```

如果hd-idle也不支持,可以试下 sdparm

# 安装和配置 sdparm

首先删除 hdparm 和 hd-idle

```

sudo apt-get remove hdparm -y

sudo dpkg -r hd-idle

```

安装 sdparm

```

sudo apt-get install sdparm -y

```

测试sdparm是否支持,停止一切硬盘操作,输入

```

sydo sdparm --flexible --command=stop /dev/sdb

```

应该可以看到如下输出,

```

/dev/sdb: SANHO IUSBPORT 0

```

如果需要每隔10分钟休眠硬盘,可以用如下crontab命令

```

sudo crontab -l | { cat; echo "/10 * * * * sdparm --command=stop /dev/sda"; } | sudo crontab -

```

经过以上折腾,终于可以放心了,不用担心硬盘一天24小时不要命的转。

# 参考

最后修改:2019 年 10 月 24 日 03 : 30 PM

© 允许规范转载

赞赏

如果觉得我的文章对你有用,请随意赞赏

×Close

赞赏作者

扫一扫支付

png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAABS2lUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4KPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS42LWMxMzggNzkuMTU5ODI0LCAyMDE2LzA5LzE0LTAxOjA5OjAxICAgICAgICAiPgogPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIi8+CiA8L3JkZjpSREY+CjwveDp4bXBtZXRhPgo8P3hwYWNrZXQgZW5kPSJyIj8+IEmuOgAAAA1JREFUCJljOHz4cAMAB2ACypfyMOEAAAAASUVORK5CYII=

png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAABS2lUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4KPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS42LWMxMzggNzkuMTU5ODI0LCAyMDE2LzA5LzE0LTAxOjA5OjAxICAgICAgICAiPgogPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIi8+CiA8L3JkZjpSREY+CjwveDp4bXBtZXRhPgo8P3hwYWNrZXQgZW5kPSJyIj8+IEmuOgAAAA1JREFUCJljOHz4cAMAB2ACypfyMOEAAAAASUVORK5CYII=

支付宝支付

微信支付

  • 2
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值