hdparm.conf设置似乎没有在启动时运行

时间:2018-04-15 12:03:12

标签: ubuntu ubuntu-17.10

我试图让我的硬盘驱动器在启动后关闭,因为我偶尔会使用它来备份和长期存储。我正在运行Ubuntu 17.10。

我已经搜索了一段时间,发现我可以编辑hdparm.conf文件来包含这个:

command_line {
sudo hdparm -S 1 /dev/disk/by-id/ata-ST2000DM006-2DM164_Z4ZAL35H
}

我还尝试了各种变体,缩进,没有" command_line"选项,而只是完成:

/dev/disk/by-id/ata-ST2000DM006-2DM164_Z4ZAL35H {
spindown_time 1
}

到目前为止还没有奏效。 我已经禁用" mount on boot"驱动器的选项。

让我最困惑的是,当我跑步时

sudo hdparm -S 1 /dev/disk/by-id/ata-ST2000DM006-2DM164_Z4ZAL35H

磁盘将在5秒后旋转,就像它应该做的那样。

那么,是否有可能在启动时不应用hdparm-conf设置,如果是,我该如何解决?

5 个答案:

答案 0 :(得分:1)

这是一篇很旧的文章,但是调子的答案帮助我研究了Slax / Debian 9上的相同问题。事实证明, / lib / hdparm 中的任意脚本会覆盖某些设置(-S和- B)完全基于设备是通过市电还是电池供电。 您需要更改 hdparm功能脚本以防止这种情况。

答案 1 :(得分:0)

注意:根据我对Debian stretch的经验(deb9u1)。这可能不完全适用于您的发行版。

不确定是否可以省略form.errors,请尝试:

=

注意你甚至可以在评论中使用缩进,所以这也应该没问题:

/dev/disk/by-id/ata-ST2000DM006-2DM164_Z4ZAL35H {
spindown_time = 1
}

要检查它是否完全运行,请查看您是否可以在/dev/disk/by-id/ata-ST2000DM006-2DM164_Z4ZAL35H { # Sleep after 5 sec (unit = 5 sec) spindown_time = 1 } 中找到有关hdparm的任何内容。

您可以尝试的另一件事是检查sudo journalctl -u systemd-udevd,如果不支持,请尝试添加hdparm -B /dev/yourdisk;没错,请留空。此hack会导致它调用apm =而不是默认hdparm -B ...

如果添加hdparm -B254 ...没有解决问题,您可以通过编辑=来调试问题(先复制它以便以后恢复原始版本)。将部分输出重定向到/lib/udev/hdparm,尤其是添加回显以查看每个>> ~root/hdparm.log 2>&1使用的$OPTIONS$DEVNAME是由udev运行的脚本,可能是在发现新设备时。它是异步执行的,因此如果您要重新启动并且您有多个磁盘,则日志消息可能会中断'彼此。您无需重新启动即可进行测试,请尝试/lib/udev/hdparm

答案 2 :(得分:0)

如果您有USB磁盘,则可能是这样的:https://bugs.launchpad.net/ubuntu/+source/hdparm/+bug/515023

特别是我必须在/ lib / hdparm / hdparm-functions中编辑hdparm_try_apm():

hdparm_try_apm()
{
    return 0
...

不好工作,非常脆弱(实际上,整个过程对我来说有点脆弱!)

相反,我将尝试udev脚本

请参阅:https://unix.stackexchange.com/questions/28548/how-to-run-custom-scripts-upon-usb-device-plug-in

此外,我注意到以下内容:

                apm)
                    if ! hdparm_is_on_battery; then
                        hdparm_set_option -B$VALUE
                    fi
                    ;;
                apm_battery)
                    if hdparm_is_on_battery; then
                        hdparm_set_option -B$VALUE
                    fi

因此,请确保不会让您失望,IE,您也可能希望设置“ apm_battery”。

答案 3 :(得分:0)

运行

hdparm -B /dev/disk/by-id/ata-ST2000DM006-2DM164_Z4ZAL35H

查看如何配置APM(高级电源管理)。根据{{​​3}}(请参阅-B参数的描述),较低的值允许更积极的电源管理,而较高的值则对应更高的性能。值128到254不允许向下旋转。在我的计算机上,该值默认为254。以下配置应确保您的磁盘在5 s后旋转下来:

/dev/disk/by-id/ata-ST2000DM006-2DM164_Z4ZAL35H {
    apm = 1
    spindown_time = 1
}

答案 4 :(得分:0)

Ubuntu 20.04 LTS 有一个错误,导致无法正确返回命令行参数。 修复方法是将 hdparm_options() 中的 /usr/lib/hdparm/hdparm-functions 函数的末尾更改为:

if [ -n "$OPTIONS" ]; then
    echo $OPTIONS
    return 0
elif [ -n "$DEFAULT" ]; then
    echo $DEFAULT
    return 0
fi

详情

在 Ubuntu 20.04 LTS 中,/usr/lib/hdparm/hdparm-functions 中存在一个错误,/usr/lib/udev/hdparm 使用它来解析 /etc/hdparm.confudev/hdparm 脚本调用 hdparm_options() 中的 hdparm/hdparm-functions 来解析配置文件,并期望将生成的命令行参数打印到标准输出。但是,除非在配置文件中找不到请求的磁盘,否则 hdparm_options() 永远不会写入 stdout,在这种情况下,它会回显默认命令行参数。