您的位置:首页 > 其它

Ubuntu的load/unload cycles损伤硬盘的问题

2012-04-18 13:53 531 查看

Ubuntu的load/unload cycles损伤硬盘的问题

来源:
何露凡的日志

前段时间跟CC争论了一个关于Ubuntu损伤硬盘的问题,今天上网了解下,这个问题确实存在于大部分的笔记本电脑中,在IBM ThinkPad Z60m/T43、HP Compaq nw9440等笔记本上都已确认了这一bug,广大的笔记本&&ubuntu用户要注意了啊!由于我2年前的正确选择,我的电脑幸免于难,原因很简单,因为我的是台式机,闲话少说,下面附上一网友的解决方案:
链接:http://brucebot.blogbus.com/logs/17373564.html

今天很累也很困了,但是在浏览文章中发现了Ubuntu如果设置不好,会损坏甚至毁坏笔记本硬盘的问题,于是决定将这篇文章看完并写下这篇文章。这里就是看到的第一篇文章<Ubuntu电源管理问题的说明和解决方案>, 看完之后对这个所谓的Load/unload Cycle还不是很了解,于是就做了一些调查,并且发现这个问题已经发给官方了,具体BUG Report可以在这里看到(https://bugs.launchpad.net/ubuntu/+bug/104535)。请看上图,所谓的
load/unload cycle就是slider与硬盘盘片接触的周期,每一个硬盘出厂前都会有这么一个参数是固定的,也就是当硬盘快接近这个出厂参数时,就意味着这块硬盘已 经接近报销的边缘。在西部数据官方上找到我的硬盘的相关参数信息,里面就有一个是Load/unload cycles at ambient condition 600,00(DATA Sheet),也就是说,我的硬盘的寿命取决于现有使用的这个参数值与官方值是否接近,具体查看及设置方法如下:

安装smartmontools,因为需要名为smartctl的来检查相关的信息

sudo apt-get install smartmontools
启用硬盘SMART监控功能

sudo smartctl -s on /dev/sda

brucebot@brucebot-laptop:/etc/laptop-mode$ sudo smartctl -s on /dev/sda

smartctl version 5.37 [i686-pc-linux-gnu] Copyright (C) 2002-6 Bruce Allen

Home page is http://smartmontools.sourceforge.net/
=== START OF ENABLE/DISABLE COMMANDS SECTION ===

SMART Enabled.

注:/dev/sda请选择你的硬盘,如果是IDE的,则是/dev/hda
查看当前硬盘的详细状态

sudo smartctl -d ata -A /dev/sda

brucebot@brucebot-laptop:/etc/laptop-mode$ sudo smartctl -d ata -A /dev/sda

smartctl version 5.37 [i686-pc-linux-gnu] Copyright (C) 2002-6 Bruce Allen

Home page is http://smartmontools.sourceforge.net/
=== START OF READ SMART DATA SECTION ===

SMART Attributes Data Structure revision number: 16

Vendor Specific SMART Attributes with Thresholds:

ID# ATTRIBUTE_NAME FLAG VALUE WORST THRESH TYPE UPDATED WHEN_FAILED RAW_VALUE

1 Raw_Read_Error_Rate 0x000f 199 197 051 Pre-fail Always - 426

3 Spin_Up_Time 0x0003 185 180 021 Pre-fail Always - 1733

4 Start_Stop_Count 0x0032 100 100 000 Old_age Always - 450

5 Reallocated_Sector_Ct 0x0033 200 200 140 Pre-fail Always - 0

7 Seek_Error_Rate 0x000f 200 200 051 Pre-fail Always - 0

9 Power_On_Hours 0x0032 100 100 000 Old_age Always - 480

10 Spin_Retry_Count 0x0013 095 095 051 Pre-fail Always - 23

11 Calibration_Retry_Count 0x0012 100 100 051 Old_age Always - 0

12 Power_Cycle_Count 0x0032 100 100 000 Old_age Always - 263

192 Power-Off_Retract_Count 0x0032 200 200 000 Old_age Always - 153

193 Load_Cycle_Count 0x0032 195 195 000 Old_age Always - 15977

194 Temperature_Celsius 0x0022 108 099 000 Old_age Always - 39

196 Reallocated_Event_Count 0x0032 200 200 000 Old_age Always - 0

197 Current_Pending_Sector 0x0012 200 200 000 Old_age Always - 0

198 Offline_Uncorrectable 0x0010 100 253 000 Old_age Offline - 0

199 UDMA_CRC_Error_Count 0x003e 200 200 000 Old_age Always - 0

200 Multi_Zone_Error_Rate 0x0009 100 253 051 Pre-fail Offline - 0

请看,红色的即为我的硬盘的load/unload cycles看起来,已经有了四分之一多了,也就是说这块硬盘的四分之一寿命已经没有了。

当 然,如果仅仅想知道这个参数,可以使用sudo smartctl -a /dev/sda | grep Load_Cycle_Count仅仅导出这个参数。如果你安装了Ubuntu,并且没有经过相应的设置,再次执行上面的命令 后,load_Cycle_count的数值会不断增大。 Ubuntu默认不会改动内置的参数,笔记本硬盘内置的自动进入低耗状态的参数过于严厉,导致频繁的Load/Unload,其他系统则无视或者不使用硬 盘的这一功能,反而保护了硬盘的寿命。也就是说,只有Ubuntu存在这个问题。

解决方法

关闭高级电源管理模块(Advanced Power Management setting)

Sudo hdparm -B 255 /dev/sda

brucebot@brucebot-laptop:/etc/laptop-mode$ sudo hdparm -B 255 /dev/sda

/dev/sda:

setting Advanced Power Management level to disabled
使用laptop-mode-tools



Sudo apt-get install laptop-mode-tools
查看Laptop-mode是否启动

grep ENABLE_LAPTOP_MODE /etc/default/acpi-support
brucebot@brucebot-laptop:/etc/laptop-mode$ grep ENABLE_LAPTOP_MODE /etc/default/acpi-supportENABLE_LAPTOP_MODE=false

启动laptop-mode

sudo cp /etc/default/acpi-support /etc/default/acpi-support_backup

sudo gedit /etc/default/acpi

找到
ENABLE_LAPTOP_MODE=false,并且将其设置成true
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐