缘由

在一些情况下,频繁的启动和停止(休眠)硬盘会导致电源循环次数增加,并减少其寿命或在运行硬盘 smart offlineextended test 时被强行终止。

依赖

  • sdparm

查看设备属性

以移动硬盘 H1 为例。

sudo sdparm -l -a /dev/sda          
    /dev/sda: Phi       H1                4101
    Direct access device specific parameters: WP=0  DPOFUA=0
Caching (SBC) [ca] mode page:
  IC            0  [cha: n, def:  0, sav:  0]  Initiator control
  ABPF          0  [cha: n, def:  0, sav:  0]  Abort pre-fetch
  CAP           0  [cha: n, def:  0, sav:  0]  Caching analysis permitted
  DISC          1  [cha: n, def:  1, sav:  1]  Discontinuity
  SIZE          0  [cha: n, def:  0, sav:  0]  Size enable
  WCE           1  [cha: n, def:  1, sav:  1]  Write cache enable
  MF            0  [cha: n, def:  0, sav:  0]  Multiplication factor
  RCD           0  [cha: n, def:  0, sav:  0]  Read cache disable
  DRRP          0  [cha: n, def:  0, sav:  0]  Demand read retention priority
  WRP           0  [cha: n, def:  0, sav:  0]  Write retention priority
  DPTL          -1  [cha: n, def: -1, sav: -1]  Disable pre-fetch transfer length
  MIPF          0  [cha: n, def:  0, sav:  0]  Minimum pre-fetch
  MAPF          -1  [cha: n, def: -1, sav: -1]  Maximum pre-fetch
  MAPFC         -1  [cha: n, def: -1, sav: -1]  Maximum pre-fetch ceiling
  FSW           0  [cha: n, def:  0, sav:  0]  Force sequential write
  LBCSS         0  [cha: n, def:  0, sav:  0]  Logical block cache segment size
  DRA           0  [cha: n, def:  0, sav:  0]  Disable read ahead
  SYNC_PROG     0  [cha: n, def:  0, sav:  0]  Synchronous cache progress indication
  NV_DIS        0  [cha: n, def:  0, sav:  0]  Non-volatile cache disable
  NCS           -1  [cha: n, def: -1, sav: -1]  Number of cache segments
  CSS           0  [cha: n, def:  0, sav:  0]  Cache segment size
Power condition [po] mode page:
  PM_BG         0  [cha: n, def:  0, sav:  0]  Power management, background functions, precedence
  STANDBY_Y     0  [cha: n, def:  0, sav:  0]  Standby_y timer enable
  IDLE_C        0  [cha: n, def:  0, sav:  0]  Idle_c timer enable
  IDLE_B        0  [cha: n, def:  0, sav:  0]  Idle_b timer enable
  IDLE_A        0  [cha: n, def:  0, sav:  0]  Idle_a timer enable
  STANDBY_Z     0  [cha: y, def:  1, sav:  1]  Standby_z timer enable
  IACT          0  [cha: n, def:  0, sav:  0]  Idle_a condition timer (100 ms)
  SZCT          1800  [cha: y, def:18000, sav:1800]  Standby_z condition timer (100 ms)
  IBCT          0  [cha: n, def:  0, sav:  0]  Idle_b condition timer (100 ms)
  ICCT          0  [cha: n, def:  0, sav:  0]  Idle_c condition timer (100 ms)
  SYCT          0  [cha: n, def:  0, sav:  0]  Standby_y condition timer (100 ms)
  CCF_IDLE      0  [cha: n, def:  0, sav:  0]  check condition if from idle_c
  CCF_STAND     0  [cha: n, def:  0, sav:  0]  check condition if from a standby
  CCF_STOPP     0  [cha: n, def:  0, sav:  0]  check condition if from stoppedCode language: JavaScript (javascript)

编辑参数

关注在 mode page 的第三列。

  • cha 的 y 和 n 分别表示可更改或不可更改
  • def 为默认值
  • sav 为手动保存后的值

通过观察,我们可以发现 STANDBY_Z 属性控制定时器,使用以下命令将其关闭。

sdparm --set=STANDBY_Z=0 -S /dev/sda
/dev/sda: Phi       H1                4101
STANDBY_Z     0  [cha: y, def:  1, sav:  0]Code language: JavaScript (javascript)

大功告成

不同硬盘的参数信息可能不一致,请根据实际情况设定。一些消费级机械硬盘可能会在不休眠模式下更加容易发生损耗,请自行确认你的硬盘是否需要关闭休眠。

Credit


了解 Starx's Home 的更多信息

订阅后即可通过电子邮件收到最新文章。