在闲置一段时间后自动降低 USB 硬盘的转速

在闲置一段时间后自动降低 USB 硬盘的转速

我想在一段时间不活动后(比如 15 分钟)自动关闭 USB 硬盘。当然,在访问时自动重新启动它们。我该怎么做?谢谢

答案1

您可以使用hdparm设置价值1 至 255 之间,表示旋转减速。

该命令是hdparm -S255 /dev/sdX当然,X 也适用于您的设备。

您可以使用找到正确的设备。

当访问时,设备就会旋转起来。

使用hdparm -C /dev/sdX检查设备的状态(空闲/活动/待机,待机表示关闭)。

请小心操作:您也可以使用以下方法手动让设备减速hdparm -y /dev/sdX。这可能有助于识别它是否完全停止旋转(见下文)。


我想补充一下,这现在可以与我的设置一起使用:

  • 树莓派
  • HGST 10TB 硬盘
  • 通过 USB3 连接

但它并不是一直都有效。第一次连接时,它没有手动降速,也没有自动降速。我不确定是什么改变了磁盘的行为。我在这期间做了两件事:

  • 断开磁盘并将其连接到 Win10 笔记本电脑,然后运行磁盘制造商提供的检查程序。这只是进行了简短的 SMART 测试。我正在寻找一个设置来更改那里的旋转或 APM,但这是不可能的。
  • 我安装了高清空闲在树莓派上。但是高清空闲没有让磁盘减速。所以我在寻找有关 hd-idle 实际工作原理的线索。在搜索过程中,我重新尝试手动减速,结果它突然就正常工作了。

顺便说一下,我的高级电源管理级别是 254。(hdparm -B /dev/sdX)。我不确定 APM 与旋转时间有何关系。通常,值为 254 应可防止任何旋转。我还读到,要启用旋转,应将其设置为 127 或更低。

我在想也许为 NAS 制造的 HDD 可能会抑制降速。我发布了这个答案,并附上了更多有疑问的细节,以便从其他贡献者那里获得更多关于这个主题的见解。我很乐意稍后更新答案。

编辑:它并不总是有效。待机的磁盘在无人访问的情况下被唤醒。另外,自从我删除了 hd-idle 后,使用 -S 的自动待机就不再起作用了。

答案2

hd-idle实用程序应该很有用。

请查看下面给出的来源,仔细阅读,看看是否有帮助:

  1. CVS使用以下命令下载源代码:

  2. Debian 系统:

    • 跑步:dpkg-buildpackage -rfakeroot
    • 要安装该软件包,请运行:'dpkg -i ../hd-idle_*.deb'
  3. 用法:

     hd-idle
    
     # This will start hd-idle with the default options, 
     # causing all SCSI (read: USB, Firewire, SCSI, ...) hard disks 
     # to spin down after 10 minutes of inactivity
    

笔记:请注意,hd-idle 用于/proc/diskstats读取磁盘统计信息。如果不存在此文件,hd-idle 将无法工作。

运行 hd-idle

要运行 hd-idle,请输入“hd-idle”。这将使用默认选项启动 hd-idle,使所有 SCSI(如:USB、Firewire、SCSI 等)硬盘在 10 分钟不活动后停止旋转。

在 Debian 系统上,编辑 /etc/default/hd-idle 并启用它后,使用“/etc/init.d/hd-idle start”运行 hd-idle。

请注意,hd-idle 使用 /proc/diskstats 读取磁盘统计信息。如果不存在此文件,hd-idle 将无法工作。

命令行选项

-a <name>   Set (partial) device name of disks for subsequent idle-time parameters (-i). This parameter is optional in the sense that there's a default entry for all [SCSI] disks which are not named otherwise by using this parameter.
-i <idle_time>  Idle time in seconds for the currently named disk(s) (-a <name>) or for all disks.
-l <logfile>    Name of logfile (written only after a disk has spun up). Please note that this option might cause the disk which holds the logfile to spin up just because another disk had some activity. This option should not be used on systems with more than one disk except for tuning purposes. On single-disk systems, this option should not cause any additional spinups.
-t <disk>   Spin-down the specified disk immediately and exit. Use only the disk name (e.g. sda) without /dev/ prefix
-d  Debug mode. This will prevent hd-idle from becoming a daemon and print debugging info to stdout/stderr
-h  Print brief usage information

关于参数“-a”:

hd-idle 的用户要求提供设置单个磁盘的空闲时间参数的方法。这很有意义,不仅仅是因为某些 [SCSI] 磁盘在停止时可能反应不佳。最初,hd-idle 对所有磁盘都设置一个空闲时间。现在可以使用参数“-a”对磁盘的设备名称设置过滤器(省略 /dev/),以便进行后续的空闲时间设置。

  1. 第一个“-a”选项之前的“-i”选项将设置默认空闲时间;因此,保持了与 hd-idle 先前版本的兼容性。

  2. 为了默认禁用磁盘的旋转停止,然后重新启用选定磁盘的旋转停止,请将默认空闲时间设置为 0。

例子:

hd-idle -i 0 -a sda -i 300 -a sdb -i 1200

此示例将默认空闲时间设置为 0(意味着 hd-idle 永远不会尝试降低磁盘的转速),然后为设备名称中包含字符串“sda”或“sdb”的磁盘设置明确的空闲时间。停止 hd-idle

用于killall hd-idle停止 hd-idle。在 Debian 系统上,使用/etc/init.d/hd-idle stop

安装:

HD-Idle 可以从 Ubuntu Universe 存储库安装:

sudo apt install hd-idle

来源:

http://hd-idle.sourceforge.net/

答案3

这通常涉及硬盘方面的 USB-SATA 控制器。大多数外部 USB 硬盘的固件也是不可配置的,因此您不能总是将其设置为这种情况。可能有一些控制器可以做到这一点,但据我所知没有一个是主流的 USB 硬盘设备。

不幸的是,如果控制器不允许您通过其自己的软件套件或其他方式对设置进行此类更改,那么仅使用 Linux 及其基本软件就没有真正的方法可以改变这种情况。

答案4

打开程序

转到工具那里你可以打开光盘

在顶部栏左侧的最小化图标

您将看到一个图标单击此图标并转到驱动器设置

您可以在那里更改/启用 USB 光盘或其他光盘的旋转设置。

相关内容