900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > 机械硬盘 运行 linux 很慢 如果读写硬盘操作有问题 假死机 很慢等 就检查一下硬盘坏道...

机械硬盘 运行 linux 很慢 如果读写硬盘操作有问题 假死机 很慢等 就检查一下硬盘坏道...

时间:2021-07-17 22:24:10

相关推荐

机械硬盘 运行 linux 很慢 如果读写硬盘操作有问题 假死机 很慢等 就检查一下硬盘坏道...

本帖最后由 tonyliu2ca 于 16-3-28 11:12 编辑

这个问题要是写出来有时一个大块文章,咱们这里简单说说。

现代的硬磁盘技术已经相当成熟和智能,成熟并不是说就不是好就是坏,磁盘的状态可能是健康、好、可能坏、变好了、正在变坏,坏了等等。之所以不是我们所想象的非好即坏,是其智能话的结果,也就是S.M.A.R.T.技术,也简写SMART。

检查一个硬盘状态,有两个基本操作:表面扫描和检查SMART状态、让SMART检测并报告。

下载

然而问题是,OSX只支持最简单的SMART检测,要想使用上面的两个操作,需要第三方程序。放心我们这里介绍的是开源的,不要钱。如果你不差钱,那就使用商业软件如TechTool Pro等。第三方开源软件是Linux版,传统方法需要使用MacPort等软件来在本地编译以形成本地可执行的OSX版本。不过对于,大多数用户来说,我提取了其中的最最核心的部分,供大家直接下载安装,主要是第一个,第二个的用法后面有解释:

badblocks_1_42.dmg下载:链接:/s/1Zx5oi 密码:z85t

OS-X-SAT-SMART-Driver-master.zip链接:/s/1gebVfgR 密码:gtsn

具体使用,要想讲清楚也很麻烦,我们只简单说说.

磁盘表面扫描:

首先使用命令:$ diskutil list来找到所要检测目标盘/分区的设备名,比如/dev/disk1s2

然后卸载该盘/分区: $ diskutil unmount disk1s2

这是就可以检测了:$ badblock -ns /dev/disk1s2碰上坏扇区,它会显示

检查SMART状态:

注意,应为OSX内置的USB等外置设备不支持SMART数据传输,所以需要使用第三方的驱动,也就是上面第二个下载。

SMART状态时针对整个硬盘的,它不管什么分区。

获得目标硬盘的SMART信息:$ smartctl -i disk1

读取重要的SMART的计数器信息:$ smartctl -A disk1

读取更详细的SMART信息:$ smartctl -a disk1

我们最关心的计数器是下面几个:

SMART 005(0x05) - Reallocated Sectors Count:是并被成功重新分配了的坏扇区计数。每个厂家的不同型号硬盘都可能会有一个保留扇区池,这个池中会有不同数量的扇区以供重分配,如果池中所有的都被使用了,那么再有坏扇区就无法分配。这个数值太大就会有问题。

SMART 187(0xBB) - Reported_Uncorrectable_Errors:对于读取的区块的硬件ECC校验错误的计数。一般应该为0,如果非零,就该考虑换硬盘了。

SMART 188(0xBC) - Command_Timeout:硬盘命令超时而放弃的计数。正常值应该是0,如果远大于0,那么可能是电源或者数据线有问题。

SMART 197(0xC5) - Current Pending Sector Count:这些“不稳定”扇区,有可能使用写操作使其恢复读写校验正常,这样他们就会被从这个技术中减去。如果写操作也失败,那么固件程序就可能会对其重分配。

SMART 198(0xC6) - Offline_Uncorrectable:读写扇区数据错误的总计数。正常值为0,否则说明此硬盘的磁盘表面或者机械可能出现问题。

我们还可以让硬盘内的固件程序进行自检:

比如:$ smartctl -t long disk1

或者:$ smartctl -t short disk1

一个坏盘的例子:

下面的WHEN_FAILED中的FALLING_NOW说明磁盘需要换了

$ smartctl -A disk2

smartctl 6.4 -06-04 r4109 [x86_64-apple-darwin14.4.0] (local build)

Copyright (C) 2002-15, Bruce Allen, Christian Franke,

=== START OF READ SMART DATA SECTION ===

SMART Attributes Data Structure revision number: 10

Vendor Specific SMART Attributes with Thresholds:

ID# ATTRIBUTE_NAME FLAG VALUE WORST THRESH TYPE UPDATEDWHEN_FAILED RAW_VALUE

1 Raw_Read_Error_Rate 0x000e 107 086 006 Old_age Always - 189521545

3 Spin_Up_Time 0x0003 100 099 000 Pre-failAlways - 0

4 Start_Stop_Count 0x0032 097 097 020 Old_age Always - 3299

5 Reallocated_Sector_Ct0x0033 026 026 036 Pre-failAlways FAILING_NOW 1521

7 Seek_Error_Rate 0x000f 076 060 030 Pre-failAlways - 49575918

9 Power_On_Hours 0x0032 099 099 000 Old_age Always - 1637

10 Spin_Retry_Count 0x0013 100 100 097 Pre-failAlways - 0

12 Power_Cycle_Count 0x0032 097 097 020 Old_age Always - 3241

184 End-to-End_Error 0x0032 100 100 099 Old_age Always - 0

187 Reported_Uncorrect 0x0032 001 001 000 Old_age Always - 3036

188 Command_Timeout 0x0032 100 099 000 Old_age Always - 64425492496

189 High_Fly_Writes 0x003a 100 100 000 Old_age Always - 0

190 Airflow_Temperature_Cel 0x0022 079 059 045 Old_age Always - 21 (Min/Max 21/21)

191 G-Sense_Error_Rate 0x0032 100 100 000 Old_age Always - 538

192 Power-Off_Retract_Count 0x0032 098 098 000 Old_age Always - 4798

193 Load_Cycle_Count 0x0032 065 065 000 Old_age Always - 70066

194 Temperature_Celsius 0x0022 021 041 000 Old_age Always - 21 (243 52 0 0 0)

195 Hardware_ECC_Recovered0x001a 054 049 000 Old_age Always - 189521545

197 Current_Pending_Sector0x0012 100 100 000 Old_age Always - 5

198 Offline_Uncorrectable0x0010 100 100 000 Old_age Offline - 5

199 UDMA_CRC_Error_Count 0x003e 200 200 000 Old_age Always - 0254 Free_Fall_Sensor 0x0032 001 001 000 Old_age Always - 2927

买个关子回复可看,详细的看知乎文章:

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。