由于ubuntu本身的问题,会导致大部分硬盘在使用过程中出现大量Load/Unload Cycle(磁头复位)动作,大概2-3次/分钟。
而 一个硬盘正常使用过程中 ,基本上一天也不会出现几次Load/Unload Cycle,而ubuntu的这个bug会使得本来可以忽略不计的Load/Unload Cycle变成巨大系统隐患,直接缩短硬盘寿命(通常硬盘可以Load/Unload Cycle 600,000次,然后就Over了)。
以上不是危言耸听,这就像早期BT下载软件会加重硬盘磁头负担一样(后来的BT软件都有缓存功能,就是为了减少硬盘读取次数),是有根据的。
https://bugs.launchpad.net/ubuntu/+source/acpi-support/+bug/59695
https://wiki.ubuntu.com/DanielHahler/Bug59695
都有问题的分析及解决方法。不过是e文滴。一下是官网的wiki的解决方法部分原文。
Force hdparm values in acpi hooks
Gilles posted the following workaround: Create a file called 99-fix-park.sh (keep the '99-' and the '.sh', but you can name the file as you like otherwise) with the following two lines:
#!/bin/sh hdparm -B 254 $HDD
and copy it to the following directories: /etc/acpi/resume.d/ and /etc/acpi/start.d/
( https://launchpad.net/ubuntu/+source/acpi-support/+bug/59695/comments/10)
简 单的说,就是在ubuntu的 etc/acpi/resume.d/ 和 /etc/acpi/start.d/ 目录里放一个 99-fix-park.sh 文件(99-xx-xx.sh,xx部分可以随便写),内容就是那两行了。然后系统启动时会执行这个命令,这样就不会去做不必要的Load/Unload Cycle了,当然一天还是会有几次的,不过足以忽略掉了。
当然,那两个目录都是有权限限定的。
还是进入终端,输入 su ,回车,然后输入root密码,这样就获取了root权限,可以对/etc目录操作。
cd /Desktop进入桌面,然后在桌面建立那个文件,再用 cp xxx(文件名) /etc/acpi/resume.d/
以及 cp xxx(文件名) /etc/acpi/start.d/ 把文件复制过去(如果没有root权限,是无法复制的)。
然后可以删掉桌面的那个文件,去etc目录里看看是不是复制过去了。
注: 网上有的地方说要复制到三个文件夹,且文件内容不是 hdparm -B 254 $HDD,关于这个,上面两个帖子都有讨论,如果是内容是255(理论最大值),则程序可能不会被执行(硬盘电源管理被关闭),如果复制到三个文件夹而不 是上面两个,那么会有副作用。所以,相信官网的wiki,就按上面办。
然后,要是有时间,可以AIDA等系统硬件查看工具去看看自己的硬盘已经有了多少小时,启动过多少次,已经Load/Unload Cycle了多少,然后可以估计一下离变成咔咔咔的“拖拉机”还有多久。