Fedora也在谋杀你的硬盘?

10月底看到注意!Ubuntu的Bug可能会减少笔记本硬盘寿命这篇新闻(原始相关讨论在这里),没有往心里去。但昨天看到Fedora的论坛上也在讨论这个问题,说Fedora也存在相同的问题,于是开始警觉起来。

问题不是很复杂,就是使用命令:

sudo smartctl -a /dev/sda | grep Load_Cycle_Count

重复执行这个命令看一下硬盘SMART功能中记录的Load/Unload次数,在Ubuntu或Fedora等Linux下,我们会发现这个 值很快的增长,而一块硬盘可以承受的Load/Unload次数是比较有限的。我的Seagate ST980815A硬盘可以承受的次数是600000,而我现在从smartctl中读到的数字是115000,并且以一分钟2次左右的速度增长。这样算 来,硬盘虽然不会立即就会结束它的寿命,但也算是折寿得够快的了。

实际的情况,比这里描述的还要复杂一点,比如:在使用AC电源和电池的时候,行为不一定一样;不同厂家的SMART中记录的 Load_Cycle_Count值的含义可能并不一样;为什么这个问题在Windows下不出现?是硬盘firmware还是主板BIOS还是操作系统 的问题呢?

可以参考的资料不少:

http://ubuntuforums.org/showpost.php?p=3675960&postcount=26

https://bugs.launchpad.net/ubuntu/+source/acpi-support/+bug/59695

https://www.redhat.com/archives/fedora-devel-list/2007-October/msg02260.html

http://fedoraproject.org/wiki/FWN/Issue107#head-10d9e6175a2dbef23ed071339345ccc747588683

看到头脑发涨,其实这个问题还是没有结论,倒底对硬盘的影响有多大也还是不得而知,但总结一下,最保守可行的做法就是修改硬盘的节电参数,尽量减少它做不必要的Load/Unload动作。方法是执行下面的命令:

sudo hdparm -B 254 /dev/sda

这个命令把硬盘高级电源管理的参数改成254(默认一般是128),这样就可以大大减少硬盘做Load/Unload的动作。这样做的副作用是在使用电池供电时硬盘也不能及时的进入节电状态。

通过写ACPI消息的响应脚本,可以让这个命令在系统开机、待机唤醒、休眠唤醒时都得到执行,可惜偶还没研究出来怎么在Fedora上写,还好 我很少用待机和休眠,所以就直接把hdparm -B 254 /dev/sda这命令写在/etc/profile中的最后一行吧。现在开机以后硬盘的Load_Cycle_Count已经基本上不发生变化了。

Fedora也在谋杀你的硬盘?》上有4条评论

  1. Re: 维也纳
    可以反复执行一下
    sudo smartctl -a /dev/sda | grep Load_Cycle_Count
    这个命令看看。
    如果数字变化比较快,比如一小时内增加了几十甚至上百次,就可以确认这个问题。

  2. Mandriva也有这个问题,特别在运行postgresql的时候,跳得老快了
    不过我用hdparm更改之后,基本不怎么跳了
    现在反而是我发现在windows下跳得也不慢,有办法解决吗

  3. 为什么我在xp下用Everest测不跳,在ubuntu下我修改了测还是变化啊,只是变的慢了些,1次/1分钟吧。是不是我的ubuntu没有装好啊?我很想改用linux,但出现这个问题,让我有些担心了呢。

发表评论

电子邮件地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据