Welcome 微信登录

首页 / 操作系统 / Linux / 利用pm.utils解决Ubuntu中Load/Unload Cycle Count问题(即Ubuntu伤害硬盘)

本文修复load/unload cycle count部分参考了文章《Ubuntu中Load/Unload Cycle Count问题及解决》。本文监控load/unload cycle count部分是自个写的。写本文的目的是记录自己如何解决该问题,为以后可能出现的重装Ubuntu提供一个指引,备忘而已。Ubuntu版本:10.04 lucid lynx
  1. 查看硬盘设备的路径。替换后面3个disk脚本中的设备路径。比如有两个硬盘的话,使用"/dev/sda /dev/sdb"替换"/dev/sda"。  
    1. sudo fdisk -l  
  2. 新建文件/etc/pm/config.d/disk,并赋予可执行权限。文件内容如下:  
    1. # Configure disk power management settings to ensure both   
    2. # long disk life and good power management.   
    3. #   
    4. # Space delimited list of disk devices this affects.   
    5. #   
    6. DEVICES_DISK_PM_NAMES="/dev/sda"  
    7. #   
    8. #   
    9. # Power management modes   
    10. #   
    11. # Powersave mode off   
    12. # Set APM as 255   
    13. ## Set spin-down for 30 minutes   
    14. #   
    15. DEVICES_DISK_PM_POWERSAVE_OFF="hdparm -q -B 255"  
    16. #   
    17. # Powersave mode on   
    18. ## Enable APM to conservative 192 and set spin-down for 21 minutes   
    19. #   
    20. DEVICES_DISK_PM_POWERSAVE_ON="hdparm -q -B 254"  
  3. 新建文件/etc/pm/power.d/disk,并赋予可执行权限。文件内容如下:  
    1. #!/bin/bash   
    2. #在power.d中加入Hook脚本,作用是在使用电池和AC电源的时候可以自动切换省电模式   
    3. ./usr/lib/pm-utils/functions   
    4. ./etc/pm/config.d/disk   
    5. if test -z "${DEVICES_DISK_PM_NAMES}"; then   
    6.     exit 1  
    7. fi   
    8. case "$1" in  
    9.     true)   
    10.         echo "**enabled pm for harddisk"  
    11.         for DISK_NAME in `echo ${DEVICES_DISK_PM_NAMES}`; do   
    12.             ${DEVICES_DISK_PM_POWERSAVE_ON} ${DISK_NAME}   
    13.         done ;;   
    14.     false)   
    15.         echo "**disabled pm for harddisk"  
    16.         for DISK_NAME in `echo ${DEVICES_DISK_PM_NAMES}`; do   
    17.             ${DEVICES_DISK_PM_POWERSAVE_OFF} ${DISK_NAME}   
    18.         done ;;   
    19. esac  
  4. 新建文件/etc/pm/sleep.d/disk,并赋予可执行权限。文件内容如下:  
    1. #!/bin/bash   
    2. #在sleep.d中加入脚本,目的是在休眠/待机之后唤醒的时候重新设定hdparm的参数   
    3. ./usr/lib/pm-utils/functions   
    4. ./etc/pm/config.d/disk   
    5. if test -z ${DEVICES_DISK_PM_NAMES}; then   
    6.     exit 1  
    7. fi   
    8. case "$1" in  
    9.     thaw|resume)   
    10.         /usr/bin/on_ac_power;   
    11.         if [ "$?" -eq 0 ]; then   
    12.             echo "**disabled PM for harddisk"  
    13.             for DISK_NAME in `echo ${DEVICES_DISK_PM_NAMES}`; do   
    14.                 ${DEVICES_DISK_PM_POWERSAVE_OFF} ${DISK_NAME}   
    15.              done   
    16.        elif [ "$?" -eq 1 ]; then   
    17.             echo "**enabled PM for harddisk"  
    18.             for DISK_NAME in `echo ${DEVICES_DISK_PM_NAMES}`; do   
    19.                 ${DEVICES_DISK_PM_POWERSAVE_ON} ${DISK_NAME}   
    20.             done   
    21.        fi   
    22.        ;;   
    23. esac  
  5. 确保laptop-mode是禁用的(默认就是禁用的)。查看文件/etc/default/acpi-support,看文件中是否有这一行:  
    1. ENABLE_LAPTOP_MODE=true  
    如果有这一行,表明laptop-mode是启用的,那么一定要设置为false!
那么如何监控load/unload cycle count的数值呢?
  1. 安装smartmontools。  
    1. sudo apt-get install smartmontools  
  2. 在家目录下新建文件AskPassProg.sh,并赋予可执行权限。文件内容如下:  
    1. #!/bin/bash   
    2. # this file serves as sudo ask program, you must not delete this file.   
    3. # if user "bruce" "s password is changed, modify this file please.   
    4. # 请修改字符串为你用户的登录密码!    
    5. echo "11111111"  
  3. 在家目录下新建文件monlcc.sh,并赋予可执行权限。文件内容如下:  
    1. #!/bin/sh   
    2. export SUDO_ASKPASS=~/AskPassProg.sh   
    3. while true;   
    4. do   
    5. cur_date=`date`;   
    6. lcc=`sudo -A smartctl -a /dev/sda | grep 193`;   
    7. echo $cur_date : $lcc;   
    8. echo $cur_date : $lcc >> monlcc.log;   
    9. sleep 300;   
    10. done;   
    11. export SUDO_ASKPASS="" 
直接执行monlcc.sh,就会在家目录下生成一个文件monlcc.log,可以实时看到load/unload cycle count数值了。现在不用担心ubuntu伤害硬盘了吧!为了随机启动该脚本,你可以在启动应用程序(系统->首选项->启动应用程序)中添加相关配置。命令输入框显示不全(易用性不够啊同学!),全部命令如下:
  1. gnome-terminal --geometry +0+30 -e  ~/monlcc.sh  
Ubuntu中Load/Unload Cycle Count问题及解决安装Fedora 15后需做的25件事情相关资讯      Ubuntu教程 
  • Ubuntu教程 - 使用Ubuntu拷贝CD和  (12/18/2013 14:38:16)
  • 让Ubuntu 12.10支持RAR和7Z文件解  (11/15/2012 18:51:50)
  • Windows 7硬盘安装Ubuntu 12.10图  (11/03/2012 19:22:47)
  • 完美安装Ubuntu 12.10最新AMD显卡  (11/27/2012 08:17:47)
  • Win 7硬盘安装Ubuntu 12.10  (11/05/2012 13:30:34)
  • 虚拟机上Ubuntu 11.10升级到12.04  (10/12/2012 20:00:38)
本文评论 查看全部评论 (0)
表情: 姓名: 字数
版权所有©石家庄振强科技有限公司2024 冀ICP备08103738号-5 网站地图