linux硬盘测试工具 如何检测硬盘坏没坏

概述
随着硬盘容量、速度的快速发展,硬盘的可靠性问题越来越重要,今天的单块硬盘存储容量可轻松达到 1TB,硬盘损坏带来的影响非常巨大 。
不同的文件系统(xfs,reiserfs,ext3)都有自己的检测和修复工具 。检测之前可以先使用 dmesg 命令查看有没有硬件 I/O 故障的日志,如果有,先用 fsck 看看是不是文件系统有问题,如果不是则可以使用下面介绍硬盘检测和优化方法来修复它 。grep”error”/va/log/messages*;
Linux检测硬盘坏道
使用 SMART 检测硬盘
SMART 是一种磁盘自我分析检测技术,早在 90 年代末就基本得到了普及每一块硬盘(包括 IDE、SCSI),在运行的时候都会将自身的若干参数记录下来,这些参数包括型号、容量、温度、密度、扇区、寻道时间、传输、误码率等 。硬盘运行了几千小时后,很多内在的物理参数都会发生变化,某一参数超过报警阈值,则说明硬盘接近损坏,此时硬盘依然在工作,如果用户不理睬这个报警继续使用,那么硬盘将变得非常不可靠,随时可能故障 。
启用 SMART
SMART 是和主板 BIOS 上相应功能配合的,要使用 SMART,必须先进入到主板 BIOS 设置里边启动相关设置 。一般从 Pentium2 级别起的主板,都支持 SMART,BIOS 启动以后,就是操作系统级别的事情了(Windows 没有内置 SMART 相关工具,需要安装第三方工具软件),好在 Linux 上很早就有了 SMART 支持了,如果把 Linux 装在 VMware 等虚拟机上,在系统启动时候可以看到有个服务启动报错:smartd 。这个服务器就是 smart 的 daemon 进程(因为 vmware 虚拟机的硬盘不支持 SMART,所以报错) 。smartd 是一个守护进程(一个帮助程序),它能监视拥有自我监视,分析和汇报技术(Self-Monitoring, Analysis, and Reporting Technology – SMART)的硬盘 。SMART 体系使得硬盘能监视并汇报自己的运行状况.它的一个重要特性是能够预测失败,使得系统管理员能避免数据丢失 。
smartctl 简单用法
smartctl -a <device> 检查该设备是否已经打开 SMART 技术 。smartctl -s on <device> 如果没有打开 SMART 技术,使用该命令打开 SMART 技术 。smartctl -t short <device> 后台检测硬盘,消耗时间短; smartctl -t long <device> 后台检测硬盘,消耗时间长; smartctl -C -t short <device> 前台检测硬盘,消耗时间短; smartctl -C -t long <device> 前台检测硬盘,消耗时间长 。其实就是利用硬盘 SMART 的自检程序 。smartctl -X <device> 中断后台检测硬盘 。smartctl -l selftest <device> 显示硬盘检测日志 。smartctl -l error <device> 显示硬盘错误汇总 。
首先通过 dmesg 工具,确认一下硬盘的设备符号 。例如一个 IDE 硬盘连接到 Primary IDE 总线上的 Slave 位置,硬盘设备符号是/dev/hdb,hdb 中的 h 代表 IDE,如果显示为 sdb,则代表 SATA 和 SCSI,最后一个字幕 b 代表 Primary 总线,第二块硬盘即 Slave 位置,确认硬盘是否打开了 SMART 支持:
# smartctl -i /dev/sda
smartctl 5.40 2010-10-16 r3189 [i386-redhat-linux-gnu] (local build)
Copyright (C) 2002-10 by Bruce Allen, http://smartmontools.sourceforge.net
=== START OF INFORMATION SECTION ===
Device Model: HITACHI HTS543225L9SA00
Serial Number: 090131FB2F32YLG28JEA
Firmware Version: FBEZC48C
User Capacity: 250,059,350,016 bytes
Device is: Not in smartctl database [for details use: -P showall]
ATA Version is: 8
ATA Standard is: ATA-8-ACS revision 3f
Local Time is: Wed May 25 10:10:39 2011 CST
SMART support is: Available – device has SMART capability.
SMART support is: Enabled //表示启用了 smart 支持
如果看到 SMART support is: Disabled 表示 SMART 未启用,执行如下命令,启动 SMART

推荐阅读