Pet*_*ete 11 fedora power-management hard-disk
我买了一个新的 HD(WD5000BPVT),不幸的是它每 5-8 秒尝试一次睡眠。不仅可以听到咔哒声,而且 1 秒的启动时间在日常使用中增加了非常明显的延迟。
我发现hdparm -B 254 /dev/sda
会禁用非常短的睡眠,但我不知道如何在每次驱动器通电时强制执行此设置。在dconf-editor
和“电源管理首选项”应用程序都这样做没什么关于HD的设置。我没有任何/etc/hdparm
或/etc/acpi
路径。MATE 是窗口管理器。
在 Fedora 19 上,如何在驱动器激活时强制运行此命令?
Krz*_*ski 16
我遇到了同样的问题,这里没有一个解决方案适合我的需求。使用 cron 实际上是一种解决方法,而不是解决方案,udev 规则在电源连接/断开时运行,但在挂起/恢复后不运行,并且pm-utils
在 Fedora 19 中不再默认使用,例如当您关闭笔记本电脑的盖子时。
由于systemd
现在负责挂起/休眠,我认为处理这种情况的唯一正确方法是创建一个systemd
在启动后和从挂起恢复后都可以运行的单元。
笔记:
/dev/disk/by-id/...
而不是/dev/sda
,您始终可以确保获得正确的磁盘(sda、b、c 取决于内核检测到它们的顺序)ExecStart
行,这样你就可以配置多个磁盘这是我写的单元:
[Unit]
Description=Silence HD
After=suspend.target
[Service]
Type=oneshot
# Disable automatic head parking for the main disk
ExecStart=/sbin/hdparm -B 254 /dev/disk/by-id/ata-ST3250824AS_4N127FD1
# Enable automatic spin down after 30 seconds for the second, infrequently used disk
ExecStart=/sbin/hdparm -S 6 /dev/disk/by-id/ata-ST31000528AS_BVP5H5X1
[Install]
WantedBy=suspend.target basic.target
Run Code Online (Sandbox Code Playgroud)
将此文件另存为/etc/systemd/system/hdsilence.service
,然后使用以下命令启用它:
systemctl enable hdsilence.service
systemctl daemon-reload
Run Code Online (Sandbox Code Playgroud)
您可以通过创建自己的 systemd 服务或将命令添加到 /etc/rc.d/rc.local 来让系统在引导期间运行该命令。
如果希望每次sleep/hibernate后唤醒系统都运行该命令,可以在/etc/pm/sleep.d/中添加一个2位数开头的脚本,查看/usr/lib64/中的其他脚本pm-utils/sleep.d(假设 x86_64)了解更多细节。基本上,它需要一个参数,具体取决于它进入的状态。如果您希望在电池电源上的操作与插入电源时不同,您可能还需要在同一父目录中的 power.d/ 中添加一些登录名。
我有相同的磁盘(和相同的问题)。我的愚蠢但有效的解决方案:我已将其放入/etc/crontab
:
-*/5 * * * * root hdparm -B 254 /dev/sda
Run Code Online (Sandbox Code Playgroud)