Linux 否能实现 Windows 那种机械硬盘休眠策略? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
DIMOJANG
V2EX    Linux

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

  •  
  •   DIMOJANG 2023-11-12 16:41:41 +08:00 4180 次点击
    这是一个创建于 777 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

    - 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
        4
    Jakarta  
       2023-11-12 20:12:33 +08:00 via Android
    hdparm 不管用的话,还可以试试 sdparm 。
    greenskinmonster
        5
    greenskinmonster  
       2023-11-12 20:42:07 +08:00
    断电是啥意思?设备会在 OS 里面消失吗?
    如果是休眠的话,可以用 hd-idle ,直接用时间做参数,不用去猜-S 后面的数字对应多长时间。
    xiaofan305
        6
    xiaofan305  
       2023-11-12 21:18:00 +08:00 via Android
    机械硬盘的时代,硬盘可以控制电机停转,减少噪声和功耗,现在固态硬盘了感觉没必要了吧。
    DIMOJANG
        7
    DIMOJANG  
    OP
       2023-11-12 21:26:58 +08:00
    @lekai63 #3 这种效果就是让硬盘在一定时间之后电机停转,但是移动硬盘的灯还是亮着的。Windows 下不仅会停转灯还会灭掉,所以好奇 Windows 上是不是有给硬盘断电的功能……?
    0superx0
        8
    0superx0  
       2023-11-12 21:37:02 +08:00
    tlp 不是可以管理嘛
    chocotan
        9
    chocotan  
       2023-11-12 21:58:04 +08:00
    看看其他参数有没有用,-B 、-Y 之类的
    wheat0r
        10
    wheat0r  
       2023-11-12 21:59:41 +08:00
    @DIMOJANG 这不是给 USB 设备断电吗?
    Xunit
        11
    Xunit  
       2023-11-12 22:07:07 +08:00
    tlp 可以做到,之前自己那机械硬盘做 nas 的时候就能 用 tlp 直接把硬盘停转,有读取时才启动硬盘。配置文件写起来也很简单。
    lslqtz
        12
    lslqtz  
       2023-11-12 22:10:56 +08:00
    Windows 我想挂起, 但是根本挂不起来, 挂了一段时间后又会唤醒. Linux 不能停转吗?
    anytk
        13
    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
        14
    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
        15
    cctv180  
       2023-11-13 10:44:28 +08:00
    买个 usb 硬盘盒,一般自带休眠,只要你不读就休眠
    JerryYuan
        16
    JerryYuan  
       2023-11-17 00:01:24 +08:00 via Android
    之前了解到的是硬盘休眠不是 OS 让它停转的,而是 OS 设定磁盘的策略,由硬盘自己决定什么时候停其实这样就好理解了,能让 OS 空闲时不去跟盘 IO ,配上激进的休眠策略,也许能实现。Linux 下用 ramdisk 做根,磁盘只做存一些低频读写的持久化数据,/var /run 之类的容易产生 IO 的东西都丢内存去,尽可能降低磁盘上可能的 IO ,大概也能符合预期地停转?
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     5764 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 26ms UTC 02:21 PVG 10:21 LAX 18:21 JFK 21:21
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86