为 Western Digital Green 驱动器设置 SATA HDD 降速时间

squ*_*ket 13 hard-drive spindown

我可以通过使用来降低我的 SATA HDD

sudo hdparm -y /dev/sdc
Run Code Online (Sandbox Code Playgroud)

显示的状态

sudo hdparm -C /dev/sdc
Run Code Online (Sandbox Code Playgroud)

从活动/空闲变为待机(我可以听到硬盘转速下降)。

但是,使用

sudo hdparm -S5 /dev/sdc
Run Code Online (Sandbox Code Playgroud)

5 * 5 = 25 秒后不会降低驱动器的转速。

一些附加信息:

  • AHCI 已启用。
  • 我正在使用西部数据绿色驱动器。
  • APM_level = 不支持
  • 文件系统是 ext4

编辑:这个问题与如何控制硬盘旋转时间不重复因为它解决了西部数据绿色驱动器,它不适用于 hdparm。

squ*_*ket 13

经过更多研究,似乎 hdparm 的 -B 和 -S 选项不适用于某些西部数据(可能还有其他)驱动器。

这包括我的 WD10EADS、WD10EACS 和 WD20EARX。

我找到了一个解决方案:hd-idle

hd-idle在 Ubuntu 上安装:

wget https://downloads.sourceforge.net/project/hd-idle/hd-idle-1.04.tgz
tar xvfz hd-idle*.tgz
cd hd-idle
sudo apt-get install debhelper
sudo dpkg-buildpackage -uc -us -rfakeroot
cd ..
sudo dpkg -i hd-idle_*.deb
# To run at startup:
sudo update-rc.d hd-idle defaults
nano /etc/default/hd-idle
Run Code Online (Sandbox Code Playgroud)

/etc/default/hd-idle 内容:

START_HD_IDLE=true
# Optional, to limit to a specific drives:
# (leading '-i 0' to disable hd-idle on other disks)
HD_IDLE_OPTS="-i 0 -a /dev/disk/by-uuid/DRIVE1UID -i 600 -a /dev/disk/by-uuid/DRIVE2UID -i 600"
Run Code Online (Sandbox Code Playgroud)

Storage> Physical Disks> Disk properties(冗余)中禁用系统管理的磁盘电源管理设置。

sudo service hd-idle start
Run Code Online (Sandbox Code Playgroud)

查看:

sudo hdparm -C /dev/sd[a-z]
Run Code Online (Sandbox Code Playgroud)