如何控制硬盘旋转时间?

use*_*295 93 power-management hard-drive gnome-power-manager

我的 PC 中有 2 个硬盘驱动器。Ubuntu 在大约 15 分钟后很快关闭了辅助硬盘,这对我来说很短。我需要控制这个时间。我该怎么做?

我尝试了 GNOME 电源管理,但没有发现它有用。

Rin*_*ind 84

看看hdparm

手册man hdparm在命令行上):

-S     Put the drive into idle (low-power) mode,  and  also  set  the  standby  (spindown)
       timeout  for  the  drive.  This timeout value is used by the drive to determine how
       long to wait (with no disk activity) before turning off the spindle motor  to  save
       power.   Under  such  circumstances,  the  drive  may take as long as 30 seconds to
       respond to a subsequent disk access, though most  drives  are  much  quicker.   The
       encoding  of  the  timeout  value  is  somewhat  peculiar.   A  value of zero means
       "timeouts are disabled": the device will  not  automatically  enter  standby  mode.
       Values  from  1  to  240  specify  multiples of 5 seconds, yielding timeouts from 5
       seconds to 20 minutes.  Values from 241 to 251 specify from 1 to  11  units  of  30
       minutes,  yielding timeouts from 30 minutes to 5.5 hours.  A value of 252 signifies
       a timeout of 21 minutes. A value  of  253  sets  a  vendor-defined  timeout  period
       between  8  and  12 hours, and the value 254 is reserved.  255 is interpreted as 21
       minutes plus 15 seconds.  Note that some  older  drives  may  have  very  different
       interpretations of these values.
Run Code Online (Sandbox Code Playgroud)

所以:

sudo hdparm -I /dev/sdb | grep level
Run Code Online (Sandbox Code Playgroud)

将显示当前的降速值,例如:

Advanced power management level: 254
Run Code Online (Sandbox Code Playgroud)

从手册中,254 是保留的,所以我希望它是 Ubuntu 的默认值(任何人都可以确认/扩展这个吗?)。

例子:

  • sudo hdparm -S 25 /dev/sdb = 25*5 秒后减速。

  • sudo hdparm -S 245 /dev/sdb = (245-240)*30 分钟后的减速。

  • `sudo hdparm -y /dev/sdb` 立即杀死野兽 (8认同)
  • 关于 lzap 的回答,您似乎对 APM 使用了 `grep`(`-B` parm),但谈论的是 `-S` 的降速。你也了解APM吗? (5认同)
  • 当前的“-B”设置如上所示。如何查看当前的“-S”设置? (4认同)

Ray*_*Ray 62

磁盘工具 -> 选择硬盘驱动器 -> 点击右上角的“更多操作...”图标 -> 驱动器设置...

我的是这样的: 截屏

  • 到目前为止最简单,谢谢!(顺便说一句,如果你没有这个包,你需要安装的是`gnome-disk-utility`。 (10认同)
  • 为什么大多数提示都涉及容易出错的文件编辑或控制台操作,而像这样的用户友好工具已经存在! (2认同)
  • @wooyek 这就是 Linux 的工作原理。除了人们提供的解决方案之外,用户界面不执行任何其他操作。这不是一个声称首先支持非技术用户的论坛。这是一个寻找问题简明答案的论坛。hdparm 是实现这一目标的核心工具。这就像抱怨有人向你解释使用什么代数来解决你遇到的数学问题,而其他人却说“只需使用计算器”。 (2认同)
  • @WooYek 事情的简单事实是,在 Linux 上,我们有很多可用的桌面环境选择,因此尝试通过 GUI 解决方案来指导某人通常比仅仅告诉他们如何编辑文件要麻烦得多。 GUI 工具修改的配置文件完全相同,因为有些人使用 KDE,其他人使用 Gnome,还有一些人使用发行版附带的其他随机桌面环境。当然,这个答案很简单(对于 Gnome 用户),但对于另一个桌面上的人来说很可能完全失败。 (2认同)

小智 40

如果您有兴趣在重新启动之间保持 hdparm 的设置,而不是将其添加到 crontab,您可以使用/etc/hdparm.conf. 我有以下内容,请注意使用大写 S,而不是小写:

command_line {
    hdparm -S 25 /dev/disk/by-uuid/f6c52265-d89f-43a4-b03b-302c3dadb215 
}
Run Code Online (Sandbox Code Playgroud)

添加该行替换您的 UUID,或者您也可以使用/dev/sdX格式指定设备。您可以使用命令找出磁盘的 UUID sudo blkid

  • 现在使用 `command_line` 是否正确?我的`/etc/hdparm` 中有不同的例子吗? (4认同)
  • [Ondra Žižka 的回答](https://askubuntu.com/a/767616/69674) 似乎更新了。 (3认同)

Ond*_*žka 19

  1. 找到磁盘的 UUID

    sudo lsblk --output NAME,FSTYPE,LABEL,UUID,MODE
    
    Run Code Online (Sandbox Code Playgroud)
  2. 编辑 /etc/hdparm.conf

    sudo -H gedit /etc/hdparm.conf  # Be careful from now on
    
    Run Code Online (Sandbox Code Playgroud)
  3. 查找spindown-time或您的磁盘设置部分。

    /dev/disk/by-label/4TB {
        spindown_time = 1200
    }
    
    Run Code Online (Sandbox Code Playgroud)
  4. 我更喜欢通过 UUID 来引用磁盘,它在不同的安装中保持不变(除非您在硬件本身中更改它)。

    /dev/disk/by-uuid/91e32677-0656-45b8-bcf5-14acce39d9c2 {
        spindown_time = 1200
    }
    
    Run Code Online (Sandbox Code Playgroud)
  5. 如果 init 脚本导致启动问题,可以nohdparm 在内核命令行上传递,该脚本将不会运行。

  • 这不是单位,请检查:https://wiki.archlinux.org/index.php/Hdparm (2认同)

小智 11

花了几个小时后,我发现我的 WDC 驱动器不支持 hdparm -S 命令,无论 idle3 属性值(谷歌:idle3ctl)。这是 WD 驱动器的常见问题。但我很高兴地宣布 hd-idle ( http://hd-idle.sourceforge.net/ ) 工作完美。如果从 dpkg-builded 包安装(参见安装说明),它会在 ubuntu 和 debian 上创建守护进程(配置在 /etc/default/hd-idle 中)。从休眠状态恢复后也能正常工作。

mc 默认 # ps 辅助 | grep 高清空闲| grep -v grep | 切 -c 66- ; 对于 [ad] 中的 f ;做 hdparm -C /dev/sd$f | grep -v "^$" ; 完毕
/usr/sbin/hd-idle -i 1800 -a sdc -i 600 -a sdd -i 60 -l /var/log/hd-idle.log
/开发/ sda:
 驱动器状态为:活动/空闲
/开发/ sdb:
 驱动状态为:待机
/开发/sdc:
 驱动状态为:待机
/开发/ SD:
 驱动状态为:待机


小智 6

我发现三星 HD204UI 的降速行为取决于 APM 级别 ( hdparm -B)。如果 APM 级别为 127,则降速超时为 10 秒。如果 APM 级别为 150,则降速超时由-S选项定义。


小智 5

我添加如下内容:

@reboot sudo hdparm -S244 /dev/disk/by-uuid/71492809-e463-41fa-99e2-c09e9ca90c8e  > /dev/null 2> /dev/null
Run Code Online (Sandbox Code Playgroud)

到 root 的 crontab。我认为使用 uuid 更好,因为sda/sdb等似乎随着每次重启而改变

  • 为什么不使用 [`hdparm.conf`](http://manpages.ubuntu.com/hdparm.conf)? (10认同)