CnBeta近日报道了一个Ubuntu系统中损害笔记本电脑硬盘的问题。由于本人的笔记本上使用了该系统,所以Google了一下,发现问题的确存在,而报道和评论并没有给出解决方案,只是又一场口水战,实在是遗憾。现将我搜索到的信息汇总如下,包括Bug的简要说明和目前较稳妥的解决方案,以帮助国内的广大Ubuntu桌面用户。
此Bug造成的后果为令硬盘的Load/Unload Cycle(中文意思是加载/卸载循环,但不知标准译名是否如此)次数异常增加。最初的报告是达到了23次每分钟。一般硬盘的设计是能够承受600000次。这样无疑会缩减硬盘寿命。
验证Load/Unload Cycle计数的方法:
Ubuntu下:
终端中运行sudo smartctl -a $HDD | grep Load_Cycle_Count
(需先安装smartmontools包。并启用硬盘SMART监控功能:sudo smartctl -s on $HDD)
Windows下:
运行Everest或其他检测软件,查看硬盘SMART信息,其中有Load/Unload Cycle计数。
如果计数增长很快,那么你就中彩了。
从社区的回帖来看,该问题普遍存在,Dell Inspiron和IBM/Lenovo Thinkpad的报告最多。
对于产生这个问题的原因,则有不同看法。以下意见占上风:笔记本硬盘内置的自动进入低耗状态的参数过于严厉,导致频繁的Load/Unload。Ubuntu默认不会改动内置的参数,而其他系统则无视或者不使用硬盘的这一功能,反而保护了硬盘的寿命。也有认为是Ubuntu过于频繁地向硬盘发出降低能耗等级的指令造成的。这个问题牵扯到硬件厂商和操作系统两方面。
用笔记本装Ubuntu的朋友们,为了自己的硬盘,为了自己宝贵的数据,还是看一看解决方法吧:
方法一(经本人试验有效):
创建一个名为”99-hdd-spin-fix.sh”的文件,写如下两行字(针对SATA硬盘):
#!/bin/sh
hdparm -B 254 /dev/sda
并将该文件复制到以下三个位置:
/etc/acpi/suspend.d/
/etc/acpi/resume.d/
/etc/acpi/start.d/
方法二(本人未试验):
安装laptop-mode-tools,并修改文件/etc/laptop-mode/laptop-mode.conf,设置CONTROL_HD_POWERMGMT=1。
注:以上复制和修改文件操作均需要提升权限。有人声称照第一种方法修改后硬盘出现过热的问题。
值得注意的是,该问题2006年9月就已经提出,并不是什么新问题,但是官方一开始对此并不重视,至今这个事关数据安全的Bug在Lauchpad上严重性仍被标为最低级别,官方也是最近才发布的解决问题的wiki文章,其中采纳了今年10月份某网友提出的解决方法。