Answers:
看一看hdparm
。
从手册(man hdparm
在命令行上):
-S设置驱动器的待机(停机)超时。驱动器使用此值来确定关闭主轴电机以节省功率之前要等待多长时间(无磁盘活动)。在这种情况下,尽管大多数驱动器的速度要快得多,但该驱动器可能需要长达30秒才能响应随后的磁盘访问。
超时值的编码有些特殊。零值表示“超时已禁用”:设备将不会自动进入待机模式。值从1到240指定5秒的倍数,产生5秒到20分钟的超时。从241到251的值指定30分钟的1到11个单位,从而导致30分钟到5.5小时的超时。值252表示超时21分钟。值253将厂商定义的超时时间设置为8到12小时之间,并且保留值254。255被解释为21分钟加15秒。请注意,某些较旧的驱动器可能对这些值有不同的解释。
因此sudo hdparm -I /dev/sdb | grep level
将显示当前的Spindown值,例如:
Advanced power management level: 254
在手册中:保留了254,所以我希望它是Ubuntu的默认设置(任何人都可以确认/扩展此内容吗?)
例:
sudo hdparm -S 25 /dev/sdb
= 25 * 5秒后降速。
sudo hdparm -S 245 /dev/sdb
=(245-240)* 30分钟后降速。
grep
使用APM(-B
parm),但请谈论-S
下降。您还了解APM吗?
-B
设置如上所示。如何查看当前-S
设置?
sudo hdparm -y /dev/sdb
立即杀死野兽
磁盘工具->选择HDD驱动器->单击右上角的“更多操作...”图标->驱动器设置...
我的看起来像这样:
gnome-disk-utility
。
如果您有兴趣在重新启动之间保持hdparm的设置不变,而不是将其添加到crontab中,可以使用/etc/hdparm.conf
。我有以下内容,请注意使用大写S而不是小写:
command_line {
hdparm -S 25 /dev/disk/by-uuid/f6c52265-d89f-43a4-b03b-302c3dadb215
}
添加该行以您的UUID代替,或者您也可以使用/dev/sdX
格式指定设备。您可以使用命令找出磁盘的UUID sudo blkid
。
command_line
现在使用正确吗?我有不同的例子/etc/hdparm
吗?
sudo lsblk --output NAME,FSTYPE,LABEL,UUID,MODE
编辑 /etc/hdparm.conf
sudo -H gedit /etc/hdparm.conf # Be careful from now on
查找spindown-time
或您的磁盘设置部分。
/dev/disk/by-label/4TB {
spindown_time = 1200
}
我更喜欢通过UUID来引用该磁盘,该磁盘在不同的安装中保持不变(除非您在硬件本身中对其进行更改)。
/dev/disk/by-uuid/91e32677-0656-45b8-bcf5-14acce39d9c2 {
spindown_time = 1200
}
如果init脚本导致引导问题,则可以传递nohdparm
内核命令行,并且该脚本将不会运行。
man hdparm.conf
。
花费了数小时之后,我发现我的WDC驱动器不支持hdparm -S命令,无论idle3属性值是什么(google:idle3ctl)。这是WD驱动器的常见问题。但是,我很高兴地宣布hd-idle(http://hd-idle.sourceforge.net/)可以正常工作。如果从dpkg生成的软件包中安装(请参阅安装说明),它将在ubuntu和debian上创建守护程序(配置位于/ etc / default / hd-idle中)。从休眠状态恢复后也可以正常工作。
mc default#ps aux | grep hd-idle | 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 / dev / sda: 驱动器状态为:活动/空闲 / dev / sdb: 驱动器状态为:待机 / dev / sdc: 驱动器状态为:待机 / dev / sdd: 驱动器状态为:待机
我发现三星HD204UI的旋转行为取决于APM级别(hdparm -B
)。如果APM级别为127,则降速超时为10 s。如果APM级别为150,则降速超时由该-S
选项定义。
我添加类似:
@reboot sudo hdparm -S244 /dev/disk/by-uuid/71492809-e463-41fa-99e2-c09e9ca90c8e > /dev/null 2> /dev/null
根的crontab。我认为使用uuid更好,因为每次重启时sda
/ sdb
etc似乎都会改变
hdparm.conf
?
在Ubuntu 14.04中
磁盘>高亮显示驱动器>单击右上角的齿轮>驱动器设置>现在,您可以在易于使用的GUI中拥有待机,APM,AAM和写入缓存设置!
我对在USB机箱中安装的外部HDD上的hdparm感到不走运,我用来为minidlna提供媒体。
我从这里遇到一个想法:https : //serverfault.com/questions/562738/keeping-usb-backup-drive-from-sleeping-while-mount
最好的结果来自使用磁盘的uuid,可以通过以下方法找到:
sudo blkid
以下方法确实需要root用户访问权限,但hdparm也需要。这使用crontab每5分钟从驱动器读取一个随机块,并忽略所有消息。为了确保您拥有正确的UUID,请在命令行上进行如下测试(确保您使用所需的UUID,而不是此名称):
sudo dd if=/dev/disk/by-uuid/f01df4b5-6865-476a-8d3b-597cbd886d41 of=/dev/null count=1 skip=$RANDOM
您应该看到如下输出:
1+0 records in
1+0 records out
512 bytes copied, 0.000738308 s, 693 kB/s`
为了抑制此消息的产生,最终可能将其写入某处,可能是下面的/文件系统(在我的情况下位于SSD上),这是我在根crontab中使用的内容。你到那里
sudo crontab -e
然后,在注释下:
*/5 * * * * bash -c 'dd if=/dev/disk/by-uuid/f01df4b5-6865-476a-8d3b-597cbd886d41 of=/dev/null count=1 skip=$RANDOM' >/dev/null 2>&1
希望这对遇到类似问题的人有所帮助。不幸的是,它仍然被写入到系统日志中,但是有抑制这种情况的潜在方法。请参阅此ServerFault帖子。
[编辑] 2017-01-07 09:02:
我可以通过编辑/etc/rsyslog.d/50-default.conf来更改以下行,以禁止显示这些消息:
*.*;auth,authpriv.none -/var/log/syslog
对此:
*.*;cron,auth,authpriv.none -/var/log/syslog
不幸的是,这抑制了所有cron消息。我无法让cron重定向注销根文件系统(在我的情况下,该文件位于老化的SSD上,因此我想限制写入次数),但是由于这只是一台家用服务器,因此我可能不会错过很多东西。绝对不会为生产机器推荐这种策略。