显然,hdparm
仅适用于内部硬盘。
如何避免外部硬盘在半分钟后停止旋转?
badblocks
一种方法是使用或dd
在无限循环中每 29 秒读取一个扇区。
还有其他方法可以让硬盘保持旋转吗?
编辑:该硬盘也不支持 SMART。hdparm -y
也不起作用,但适用于不同的外部硬盘。
答案1
从描述段落man hdparm
:
hdparm
为 Linux SATA/PATA/SAS“libata”子系统和较旧的 IDE 驱动程序子系统支持的各种内核接口提供命令行界面。许多较新的(2008 年及更高版本)USB 驱动器外壳现在也支持“SAT”(SCSI-ATA 命令转换),因此也可以与hdparm
.例如,最近的 WD“Passport”型号和最近的 NexStar-3 外壳。某些选项可能仅适用于最新的内核。
所以是的,hdparm
将与一些外部硬盘:基本上所有 eSATA 硬盘和使用 SCSI-ATA 命令转换的 USB 硬盘。
特别是对于 Western Digital HDD,还有idle3-tools
包。如果您可以从 WD 外置硬盘读取 SMART 信息,那么idle3-tools
应该也可以。
您很可能可以将驱动器从机箱中取出,将其插入内部 SATA 电缆,用于hdparm
持续更改其设置,然后将其放回外部机箱中。当然,这会使保修失效,如果您关心的话......
答案2
在这里查看这个答案:https://askubuntu.com/a/1215772/644005
基本上,它说的是使用sdparm
而不是hdparm
.我能够让它在我所有的外部 Western Digital USB 3.0 硬盘上工作。
这是我运行的用于禁止驱动器进入睡眠模式的命令:
sudo sdparm -l --save --set STANDBY=0 /dev/sd?
它还提到了SCT
设置,即超时值。我没有改变这个SCT
值。如果你想增加超时值,你可以这样做:
sudo sdparm -l --save --set SCT=6000 /dev/sd?
该SCT
值以毫秒为单位,因此6000方法6秒。
答案3
iheartcsharp 的回答甚至可以在 Windows 上运行。使用 MinGW 编译 sdparm 不起作用,它无法识别 SCT 或 STANDBY,但我能找到最新的 sdparm_64 二进制文件,1.10 20160222, 从这里,做了工作。
每当我将文件复制到我的外置 12 TB Elements 驱动器时,它似乎都会停止旋转,而我的另一个外置 Seagate 驱动器几乎从未停止旋转。 sdparm 的输出支持了这一点。
Administrator@~ MINGW64 /j/compile/sdparm/src
# ./sdparm_64.exe --wscan
...
PD13 [K] WD Elements 25A3 1029 serial#
Administrator@~ MINGW64 /j/compile/sdparm/src
# ./sdparm_64.exe PD13
PD13: WD Elements 25A3 1029
Power condition mode page:
PM_BG 0 [cha: n, def: 0, sav: 0]
Administrator@~ MINGW64 /j/compile/sdparm/src
# ./sdparm_64.exe --get SCT PD13
PD13: WD Elements 25A3 1029
SCT 18000 [cha: y, def:18000, sav:18000]
Administrator@~ MINGW64 /j/compile/sdparm/src
# ./sdparm_64.exe --save --set STANDBY=0 PD13
PD13: WD Elements 25A3 1029
Administrator@~ MINGW64 /j/compile/sdparm/src
# ./sdparm_64.exe --get STANDBY PD13
PD13: WD Elements 25A3 1029
STANDBY 0 [cha: y, def: 1, sav: 0]
Administrator@~ MINGW64 /j/compile/sdparm/src
# ./sdparm_64.exe --get SCT PD13
PD13: WD Elements 25A3 1029
SCT 18000 [cha: y, def:18000, sav:18000]
Administrator@~ MINGW64 /j/compile/sdparm/src
# ./sdparm_64.exe --save --set SCT=999999999 PD13
PD13: WD Elements 25A3 1029
mode select (10):
Fixed format, current; Sense key: Recovered Error
Additional sense: Rounded parameter
Administrator@~ MINGW64 /j/compile/sdparm/src
# ./sdparm_64.exe --get SCT PD13
PD13: WD Elements 25A3 1029
SCT 288000 [cha: y, def:18000, sav:288000]
Administrator@~ MINGW64 /j/compile/sdparm/src
# ./sdparm_64.exe --get STANDBY PD12
PD12: Seagate Expansion Desk 9401
STANDBY not found in Power condition mode page
Administrator@~ MINGW64 /j/compile/sdparm/src
# ./sdparm_64.exe --get SCT PD12
PD12: Seagate Expansion Desk 9401
SCT not found in Power condition mode page
288 秒似乎是最大旋转时间,但在待机设置为 0 的情况下应该没有问题。
将其添加为“顶级”答案可能是不好的形式,但这是我在尝试找出如何防止此驱动器进入睡眠状态时得到的第一个搜索结果之一,希望它对某人有所帮助。