Ubuntu 挂起时外部驱动器旋转

Rav*_*ina 6 suspend hard-drive spindown external-hdd

情况

我的 WD Element Drive 表现很奇怪。驱动器花了很长时间才停止旋转,而且我无法使用不同的方法为驱动器设置待机(停止旋转)超时。

例如使用会hdparm导致SG_IO错误:

$ sudo hdparm -S 25 /dev/sdx

dev/sdx:
 setting standby to 25 (2 minutes + 5 seconds)
SG_IO: bad/missing sense data, sb[]:  ...
Run Code Online (Sandbox Code Playgroud)

驱动器的控制器似乎不支持这些方法

然而,奇怪的是我可以使用-y开关将驱动器置于待机模式:

$ sudo hdparm -y /dev/sdx
Run Code Online (Sandbox Code Playgroud)

它给出了相同的SG_IO错误,但驱动器转速下降。我对此很满意。

真正的问题

似乎暂停 Ubuntu 会产生类似于拔出和插入驱动器的效果。

当我想暂停 Ubuntu 时,请使用systemctl suspend

  • 如果驱动器处于待机模式,它将加速旋转,并且不会再次减速。
  • 如果它没有处于待机模式,那么它首先会减速,一秒钟后它会再次加速并且永远不会减速。

停止运行的唯一方法是恢复 Ubuntu 并运行hdparm -y手动在驱动器上运行,如果我再次暂停 Ubuntu,也会发生同样的情况。

我已经尝试过的

我尝试在挂起状态下运行hdparm -y以使驱动器处于standby模式:

$ cat /usr/lib/systemd/system-sleep/suspend_drive

#!/bin/sh    
case $1 in
  pre)
    hdparm -y /dev/sdc ;;
esac
Run Code Online (Sandbox Code Playgroud)

它没有任何效果。正如我已经说过的,当 Ubuntu 即将进入睡眠状态时,驱动器首先会旋转一秒钟,然后它会再次开始工作。


我在寻找什么...

有办法解决这个问题吗?

我正在寻找一种解决方案,以防止驱动器在系统进入睡眠状态时首先旋转。如果驱动器已经唤醒,它应该与系统一起进入待机模式。


笔记:


更新

  • 如果我用来udisksctl power-off /dev/sdc安全地删除驱动器,暂停 Ubuntu 的行为就像拔出并重新插入一样,我可以再次安装并使用该驱动器(这是不应该发生的事情)。

  • 我能够为驱动器设置一个待机计时器,sdparm但它并没有解决问题,在暂停 Ubuntu 驱动器旋转后,即使计时器设置为一个小值(例如一分钟),也不会停止旋转。

  • 由于我遇到了不同的结果,我不能 100% 确定,但似乎我只是在驱动器连接到 USB3 端口时才遇到该问题。

    • 但 USB2 也有其自身的问题,例如在恢复 Ubuntu 驱动器旋转后。
  • 我可以确认我在 Windows 中也遇到了同样的问题。

Rav*_*ina 1

当我发现将系统置于睡眠模式就像拔下并重新插入驱动器一样,我怀疑 USB 端口及其电源可能存在一些问题。

我通过 BIOS 并将“Always On USB”设置为“Enable”;看来将此参数设置为启用已经解决了该问题。

在此输入图像描述