还是那个硬盘 load/unload 的 bug

新买了笔记本,所以对这个问题也有了新的认识(查老本的 load 次数都 11w 多了……)。

结论

这个问题确实存在。起因是硬盘频繁 load/unload 的声音引起了我的注意。查了一下,在卸掉 vista 装上 ubuntu 总共开机 18小时的时间里,这个指标达到了 3xx,平均 3 分钟 1 次,这个指标太吓人了。

解决办法

安装 laptop-mode,手动编辑 /etc/laptop-mode/laptop-mode.conf,大概 216 行左右,按如下修改:

#
# Should laptop mode tools control the hard drive power management settings?
#
CONTROL_HD_POWERMGMT=1


#
# Power management for HD (hdparm -B values)
#
BATT_HD_POWERMGMT=192
LM_AC_HD_POWERMGMT=254
NOLM_AC_HD_POWERMGMT=254


第一项是为了让对硬盘参数的设置纳入 laptop-mode 管理(默认不开)。后面三个就是指定各种模式下的硬盘参数了。默认情况下是 1/255/255。1 这个值太激进(估计 3 分钟 1 次就是它干的),我改成了 192(电池模式下毕竟还是要省电的,虽然这个值在不同品牌的硬盘可能表现差异很大,但是根据我搜索的结果,设置成 192 的时候硬盘已经很难有机会自行 unload 了)。后两个默认值 255 是可以不改的,但是 255 是直接关闭 APM(高级电源管理),据说某些硬盘可能会忽略 255 这个极端值,所以改成 254(我的出发点其实还是不想舍弃 APM)。

然后是修改 /etc/default/acpi-support 这个文件。文件末尾两个参数,按如下设置:

# Switch to laptop-mode on battery power - off by default as it causes odd
# hangs on some machines
ENABLE_LAPTOP_MODE=true

# Spindown time on battery
SPINDOWN_TIME=60


第一项是开启 laptop-mode,第二项似乎是控制用来控制硬盘空闲多长时间自动断电的,可根据自己喜好修改(默认值是 12)。

经几天观察,基本上这个 Load Cycle Count 只在关机的时候才会增加了。

附:监测 Load Cycle Count 的方法

sudo smartctl -a /dev/sda


设备可能是 /dev/hda(IDE 硬盘)或 /dev/sdb(第二块硬盘)等等。如果觉得输出太多,可以加上 grep 193。


sudo smartctl -a /dev/sda | grep 193
1 条评论