通常,硬盘制造商规定的Load_Cycle_Count数目上限是600,000次,要是超过300,000次就会影响到正常的读写,再多的话就差不多要报废了。windows下通过修改高级电源设置虽然可以减慢Load_Cycle_Count增长的速度,但是对于我的硬盘似乎没什么用处,在连接电源的情况下,Load_Cycle_Count的增长速度还是超过了60/小时。
于是就想使用linux下的hdparm软件的windows移植版来直接修改APM参数。
测试环境:windows 8.1 64位
32位需要修改Program Files (x86)为Program Files
1 下载安装APM
从https://sites.google.com/site/disablehddapm/ 下载安装包,并安装。如果无法打开这个网站,可是使用以下链接下载,注意选择正确的版本。
2 Windows 10, 7, 8 and Vista需要修改兼容性设置,原始文章见这里
2.1 找到C:Program Files (x86)hdparmhdparam.exe文件,在兼容性设置中点击更改所有用户设置
2.2 如图所示进行
3 禁用掉hdparm安装后自带的设置apm的启动项
经过测试,这个启动项在睡眠和休眠恢复后解锁用户账户,并不会自动运行。而且它运行时会有烦人的提示信息。就直接删除掉,改用我下面提供的方法来自动修改APM好了。
可以用win8自带的任务管理器的“启动”选项卡,找到 "enable hdd apm max performance.cmd",右击-禁用。
也可以删除C:ProgramDataMicrosoftWindowsStart MenuProgramsStartUpEnable HDD APM (for max performance).lnk
4 找到正确的磁盘编号
hdparm使用Unix的方法表示磁盘。/dev/sda表示第一个sata设备,/dev/sdb表示第二个sata设备,以此类推。/dev/hda表示第一个IDE设备,/dev/hdb表示第二个IDE设备。可以依次运行hdparm -i /dev/sda, hdparm -i /dev/sdb,然后查看Model= 后面的数据是否正确来检查这是不是你要设置的硬盘。
5 创建bat脚本
echo off
hdparm -B 254/dev/sda
将/dev/sda替换为第四步中找到的正确的磁盘编号
将上述脚本保存到C:Program Files (x86)hdparmenable sda apm max performance.cmd
6 创建计划任务
6.1 打开windows计划任务
6.2 在“操作”菜单中点击创建任务
6.3 在弹出来的窗口的"常规"选项卡中,设置名称为apm,安全选项中选择以“SYSTEM”账户运行,并勾选使用最高权限运行,配置选择“Windows8.1”
6.4 在“触发器”选项卡中,添加两个触发器,如下图所示
6.5 在“操作”选项卡中,新建一个操作,如下图所示。操作类型为启动程序,程序或脚本填写 "enable sda apm max performance.cmd" 注意包括双引号,起始于(可选)填写 C:Program Files (x86)hdparm
6.6 如下图所示设置条件选项卡
6.7 如下图所示设置“设置”选项卡
7 设置完成
睡眠,休眠,关机或者重启一下,然后在C:Program Files (x86)hdparm下执行hdparm -I /dev/sda,你应该看到 Advanced power management level: 254 (0xfe)
现在不管使用电池还是连接电源,Load_Cycle_Count都不会疯涨了。