情况
我有一个 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[]: ...
Drive的控制器似乎不支持这些方法。
但是,奇怪的是,我可以使用-y
开关将驱动器置于待机模式:
$ sudo hdparm -y /dev/sdx
它给出了相同的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
它没有任何效果。正如我已经说过的,当 Ubuntu 进入睡眠状态时,无论如何,驱动器首先会减速一秒钟,然后它会再次开始工作。
我在寻找什么...
有没有办法解决这个问题?
我正在寻找一种解决方案,以防止驱动器在系统进入睡眠状态时首先旋转。如果驱动器已经唤醒,它应该与系统一起进入待机模式。
笔记:
- 运行 Ubuntu 20.04。
- 我对分离驱动器不感兴趣(或使用任何从 USB 端口夺走电源的方法,因为它与拔下驱动器具有相同的结果)。
- 或使用类似的东西
udiskctl poweroff
。 - 这是另一个类似的问题:防止外部 USB 硬盘在暂停到 RAM 期间旋转
更新
如果我使用
udisksctl power-off /dev/sdc
安全移除驱动器,挂起 Ubuntu 就像拔掉和重新插入一样,我可以再次安装和使用驱动器(不应该发生的事情)。我能够为使用的驱动器设置一个待机计时器,
sdparm
但它并没有解决问题,在暂停 Ubuntu 驱动器旋转并且从不减速之后,即使计时器设置为一个很小的值,比如一分钟。当我遇到不同的结果时,我不能 100% 确定,但似乎我只是在驱动器连接到 USB3 端口时遇到问题。
- 但是 USB2 也有它自己的问题,例如在恢复 Ubuntu 驱动器旋转之后。
我可以确认我在 Windows 中也遇到了同样的问题。