当前位置: 首页>>技术教程>>正文


如何控制硬盘停机时间?

问题描述

我的电脑里有2个硬盘。 Ubuntu在大约15分钟后非常快地关闭了二级硬盘,这对我来说很短暂。我需要控制这个时间。我该怎么做?

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

最佳解决思路

看看hdparm

the manual(命令行上的man hdparm):

-S Set the standby (spindown) timeout for the drive. This 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.

因此sudo hdparm -I /dev/sdb | grep level将显示当前的spindown值,例如:

Advanced power management level: 254

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

例:

sudo hdparm -S 25 /dev/sdb = 25 * 5秒后的spindown。

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

次佳解决思路

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

我看起来像这样:

hard-drive,power-management,gnome-power-manager,ubuntu

第三种解决思路

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

command_line {
    hdparm -S 25 /dev/disk/by-uuid/f6c52265-d89f-43a4-b03b-302c3dadb215 
}

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

第四种思路

  1. Find your disk’s UUID

    sudo lsblk --output NAME,FSTYPE,LABEL,UUID,MODE
    
  2. 编辑/etc/hdparm.conf

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

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

    /dev/disk/by-uuid/91e32677-0656-45b8-bcf5-14acce39d9c2 {
        spindown_time = 1200
    }
    
  5. 如果init脚本导致引导问题,则可以在内核命令行上传递nohdparm,并且不会运行该脚本。

第五种思路

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


mc default # ps aux | grep hd-idle | grep -v grep | cut -c 66- ; for f in [a-d] ; do hdparm -C /dev/sd$f | grep -v "^$" ; done
/usr/sbin/hd-idle -i 1800 -a sdc -i 600 -a sdd -i 60 -l /var/log/hd-idle.log
/dev/sda:
 drive state is:  active/idle
/dev/sdb:
 drive state is:  standby
/dev/sdc:
 drive state is:  standby
/dev/sdd:
 drive state is:  standby

第六种思路

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

第七种思路

我添加如下内容:

@reboot sudo hdparm -S244 /dev/disk/by-uuid/71492809-e463-41fa-99e2-c09e9ca90c8e  > /dev/null 2> /dev/null

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

第八种思路

在Ubuntu 14.04中

磁盘>突出显示驱动器>点击右上角的齿轮>驱动器设置>现在,您可以在易于使用的GUI中使用Standby,APM,AAM和Write Cache设置!

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/1117.html,未经允许,请勿转载。