Ubuntu中Load/Unload Cycle Count问题及解决(4)

case "$1" in
start)
    STAT="ON \t"$STAT
    ;;
stop)
    STAT="OFF\t"$STAT
    ;;
*)
    echo "Usages: $0 {start|stop}" >&2
    exit 2
    ;;
esac

echo -e $STAT >> $FILE

按照上面的说明操作之后,LCC的结果就会存在你定义的log文件里面了。可以定期打开查看。

4. 最后附上之前的两种方法,启用laptop mode和添加acpi脚本。

4.1. 加入acpi脚本

1) 为使用电源和电池的时候定制不同的hdparm参数。你可能需要把/dev/sda修改成你的硬盘设备。

$sudo vi 99-hdd-ugly-fix.sh

#!/bin/bash
if on_ac_power; then
  # on AC so don’t do any head parking
  hdparm -B 254 /dev/sda # you might need 255 or a different value
else
  # either on battery or power status could not be determined
  # so quickly park the head to protect the disk
  hdparm -B 192 /dev/sda
fi

2) 将如上脚本安装到如下4个地方

$sudo install 99-hdd-ugly-fix.sh  /etc/acpi/resume.d/
$sudo install 99-hdd-ugly-fix.sh  /etc/acpi/start.d/
$sudo install 99-hdd-ugly-fix.sh  /etc/acpi/ac.d/
$sudo install 99-hdd-ugly-fix.sh /etc/acpi/battery.d/

这个方案比开启laptop简单且方便。因此如果你实在是不想用pm.utils的时候,推荐使用这种方法。

4.2. 启用laptop mode

Ubuntu 8.04测试有效,但是待机/休眠唤醒之后设置会丢失。laptop mode 模块在Ubuntu 8.04中是默认包含的,只是没有启用。下面是具体的设置方法。

1) /etc/default/acpi-support中修改

# 启用laptop模式
ENABLE_LAPTOP_MODE=true

# 将spin down 时间改成 (241-240)*30min = 30min
# spin down time决定硬盘闲置多久以后关闭主轴电动机以节省功耗,0表示永远不关闭
# 具体的解释看 man hdparm的-S部分
SPINDOWN_TIME=241

2) /etc/laptop-mode/laptop-mode.conf中修改

# 即便是接上电源也用laptop mode
ENABLE_LAPTOP_MODE_ON_AC=1

# 显示器关闭的时候也用laptop mode
ENABLE_LAPTOP_MODE_WHEN_LID_CLOSED=1

# 让laptop mode控制硬盘闲置多长时间才卸载
CONTROL_HD_IDLE_TIMEOUT=1

# 改成半小时
LM_AC_HD_IDLE_TIMEOUT_SECONDS=1800
LM_BATT_HD_IDLE_TIMEOUT_SECONDS=1800
NOLM_HD_IDLE_TIMEOUT_SECONDS=7200

# 让laptop mode来控制硬盘的电源管理
CONTROL_HD_POWERMGMT=1

# 192表示不关闭,从128-254都表示不关闭,越大能耗越大
# 具体可以 man hdparm 看-B
BATT_HD_POWERMGMT=192
LM_AC_HD_POWERMGMT=254
NOLM_AC_HD_POWERMGMT=254

3) /etc/acpi/power.sh中

把 "$HDPARM -B 1 /dev/$drive 2>/dev/null"
修改为 "$HDPARM -B 192 /dev/$drive 2>/dev/null"

4) 禁用pm.utils的部分功能

$ sudo chmod -x /usr/lib/pm-utils/power.d/laptop-tools

否则laptop-mode不会随机启动。

5) 重启后,cat /proc/sys/vm/laptop_mode

结果是2表示laptop-mode已经启动,是0表示还未启动,请仔细检查上面的设置是否有遗漏。

###############我是很郁闷的分割线############### 

附:关于为啥要禁用pm.utils,具体的解释如下:

我从网上找到了laptop mode的解决方案之后,按照说明一步步操作,但是重新启动之后,查看cat /proc/sys/vm/laptop_mode,发现仍然是0.(是2才表示已经启动)。查看/etc/rc2.d/目录下确实有S99laptop-mode,这说明系统确实会加载这个服务(这个目录下的文件都是个符号链接,会链接到/etc/init.d目录下的同名脚本)。后来Google了一下发现这样的解释:

首先来说/proc/sys/vm/laptop_mode这个变量和初始化进程laptop-mode并不是一个意思。前者是个内核控制的变量,作用是将磁盘写操作聚簇,后者是一个脚本。

其次,Hardy加入了pm-utils,会覆盖或忽略一部分根据linux传统的配置。为了解决这个问题,可以修改/usr/lib/pm-utils/power.d/laptop-tools中相关的内容或者运行下述命令:

$ sudo chmod -x /usr/lib/pm-utils/power.d/laptop-tools

这条命令会禁用pm-utils的部分功能,从而修复你所遇到的问题(指laptop-mode不会随机启动)。注意得重启以后设置才会生效。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/24009.html