Linux 否能实现 Windows 那种机械硬盘休眠策略?

2023-11-12 16:41:41 +08:00
 DIMOJANG

尝试了 hdparm -S 25 /dev/sda1,但是这似乎只会让电机减速,而 Windows 下则可以做到硬盘在闲置一段时间后断开电源。

3226 次点击
所在节点    Linux
16 条回复
passive
2023-11-12 17:30:51 +08:00
十多年前 Ubuntu 机械硬盘 park 太频繁还被嫌弃
NoOneNoBody
2023-11-12 17:59:15 +08:00
个人觉得不要挂起 HDD 为好,SSD 或者可以,但也是有数据风险,总之没有必要,户外用笔记本想省电,盒盖 OS 睡眠或休眠好些
lekai63
2023-11-12 18:38:55 +08:00
我看了看我的笔记:

- pve[让硬盘休眠]( https://blog.110.sh/2020/05/28/pve-hdd/)
- 修改`/etc/lvm/lvm.conf`文件,过滤不需要监控的盘
```bash
# 添加 "r|/dev/sd*|" 到 global_filter
global_filter = [ "r|/dev/zd.*|", "r|/dev/mapper/pve-.*|", "r|/dev/sd*|" ]
# 重启
pvestatd restart
```
- 通过以上方式允许硬盘休眠后,可以让硬盘立即休眠来测试下是否还会被唤醒
```bash
# 立即休眠
hdparm -y /dev/sdc
# 设置硬盘休眠时间为 5 分钟
hdparm -S 60 /dev/sdc
```
- 持久化保存休眠时间
编辑`/etc/hdparm.conf`
```bash
/dev/disk/by-uuid/ata-ST500LT012-9WS142_W0V62FGE {
spindown_time = 60
}
```
-
Jakarta
2023-11-12 20:12:33 +08:00
hdparm 不管用的话,还可以试试 sdparm 。
greenskinmonster
2023-11-12 20:42:07 +08:00
断电是啥意思?设备会在 OS 里面消失吗?
如果是休眠的话,可以用 hd-idle ,直接用时间做参数,不用去猜-S 后面的数字对应多长时间。
xiaofan305
2023-11-12 21:18:00 +08:00
机械硬盘的时代,硬盘可以控制电机停转,减少噪声和功耗,现在固态硬盘了感觉没必要了吧。
DIMOJANG
2023-11-12 21:26:58 +08:00
@lekai63 #3 这种效果就是让硬盘在一定时间之后电机停转,但是移动硬盘的灯还是亮着的。Windows 下不仅会停转灯还会灭掉,所以好奇 Windows 上是不是有给硬盘断电的功能……?
0superx0
2023-11-12 21:37:02 +08:00
tlp 不是可以管理嘛
chocotan
2023-11-12 21:58:04 +08:00
看看其他参数有没有用,-B 、-Y 之类的
wheat0r
2023-11-12 21:59:41 +08:00
@DIMOJANG 这不是给 USB 设备断电吗?
Xunit
2023-11-12 22:07:07 +08:00
tlp 可以做到,之前自己那机械硬盘做 nas 的时候就能 用 tlp 直接把硬盘停转,有读取时才启动硬盘。配置文件写起来也很简单。
lslqtz
2023-11-12 22:10:56 +08:00
Windows 我想挂起, 但是根本挂不起来, 挂了一段时间后又会唤醒. Linux 不能停转吗?
anytk
2023-11-13 09:31:33 +08:00
加 udev 规则,去控制 manage_start_stop 这个核心参数。我的 Linux 跑在移动固态硬盘里,关机会导致意外断电次数增加,解决办法就是加 udev 规则去使能 uas scsi_disk 设备的 manage_start_stop 为 1, 将内核去处理休眠/关机时的自动关闭。
可以通过命令查看当前的标志量状态:
sudo cat /sys/class/scsi_device/[scsi id]/manage_start_stop
anytk
2023-11-13 09:32:28 +08:00
如果是移动硬盘,可以直接加 udev rule:
```bash
# cat /etc/udev/rules.d/01-manage-start-stop.rules
ACTION=="add|change", DRIVERS=="usb-storage|uas", SUBSYSTEM=="scsi_disk", ATTR{manage_start_stop}="1", ATTR{allow_restart}="1"
```
cctv180
2023-11-13 10:44:28 +08:00
买个 usb 硬盘盒,一般自带休眠,只要你不读就休眠
JerryYuan
2023-11-17 00:01:24 +08:00
之前了解到的是硬盘休眠不是 OS 让它停转的,而是 OS 设定磁盘的策略,由硬盘自己决定什么时候停🤔其实这样就好理解了,能让 OS 空闲时不去跟盘 IO ,配上激进的休眠策略,也许能实现。Linux 下用 ramdisk 做根,磁盘只做存一些低频读写的持久化数据,/var /run 之类的容易产生 IO 的东西都丢内存去,尽可能降低磁盘上可能的 IO ,大概也能符合预期地停转?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/991190

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX