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


# smartctl –smart=on –offlineauto=on –saveauto=on /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 ENABLE/DISABLE COMMANDS SECTION ===
SMART Enabled.
SMART Attribute Autosave Enabled.
SMART Automatic Offline Testing Enabled every four hours.
现在硬盘的 SMART 功能已经被打开,执行如下命令查看硬盘的健康状况
# smartctl -H /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 READ SMART DATA SECTION ===
SMART overall-health self-assessment test result: PASSED
请注意 result 后边的结果:PASSED,这表示硬盘健康状态良好;如果这里显示 FAILED,那么最好立刻给服务器更换硬盘 。SMART 只能报告磁盘已经不再健康,但是报警后还能继续运行多久是不确定的 。通常,SMART 报警参数是有预留的,磁盘报警后,不会当场坏掉,一般能坚持一段时间,有的硬盘 SMART 报警后还继续跑了好几年,有的硬盘 SMART 报错后几天就坏了 。但是一旦出现报警,侥幸心里是万万不能的……
#smartctl -A /dev/sda 查看硬盘的详细信息
测试硬盘使用时间以及写入字节数
#smartctl -s on /dev/sda 如果没有打开 SMART 技术,使用该命令打开 SMART 技术 。
#smartctl -t short /dev/sda 后台检测硬盘,消耗时间短;
#smartctl -t long /dev/sda 后台检测硬盘,消耗时间长;
#smartctl -C -t /dev/sda short 前台检测硬盘,消耗时间短;
#smartctl -C -t /dev/sda long 前台检测硬盘,消耗时间长 。其实就是利用硬盘 SMART 的自检程序 。
#smartctl -X /dev/sda 中断后台检测硬盘 。
#smartctl -l selftest /dev/sda 显示硬盘检测日志 。
#smartctl -l error /dev/sda 显示硬盘错误汇总 。
如果需要定期登录到服务器上运行 smartctl 比较麻烦时,linux 还提供了系统进程 smartd,编辑配置文件:1 vi /etc/smartd.conf
这个配置文件中大部分可能是注释掉的说明,只需要写入和当前硬盘相关的配置即可:
/dev/sda -H -m test@test123123.com
// 监控磁盘的健康状态,当 SMART 中报告 PASSED 的时候不理睬 。一旦出现 Failure,立刻用邮件通知用户指定的邮箱
/dev/sda -a -m admin@example.com,root@localhost// 监控磁盘的所有属性,当 SMART 中报告 PASSED 的时候不理睬 。一旦出现 Failure,立刻用邮件通知用户指定的邮箱
/dev/twa0 -d 3ware,0 -a -s L/../../7/00
// 监控 3ware 9000 控制器上的第一个 ATA 磁盘的所有属性,在每个礼拜天的 00:00–01:00 进行长格式的自我检测
/dev/sg2 -d areca,1 -a -s L/../(01|15)/./22
// 监控 Areca Raid 控制器上的第一个 SATA 磁盘的所有属性,在每个礼拜月的第 1 天和第 15 天的 22:00–23:00 进行长格式的自我检测
-s (O/../.././(00|06|12|18)|S/../.././01|L/../../6/03)// 在每天的 00:00,06:00,12:00,18:00 进行离线的自检,并在每天的 01:00-02:00 进行短格式的自检,并在每个礼拜 6 的 03:00-04:00 进行长格式的自检
【linux硬盘测试工具 如何检测硬盘坏没坏】 配置好 smartd.conf 后需执行
/etc/init.d/smartd restart 即可生效
其他和 smartd.conf 相关的配置可参见:
http://smartmontools.sourceforge.net/man/smartd.conf.5.html
使用 badblocks 检测硬盘坏块
badblocks 命令可以检查磁盘装置中损坏的区块 。执行该指令时须指定所要检查的磁盘装置,及此装置的磁盘区块数 。
语法与参数: 语法:badblocks [-svw][-b ][-o ][磁盘装置][磁盘区块数][启始区块]参数: -b 指定磁盘的区块大小,单位为字节 。-o 将检查的结果写入指定的输出文件 。-s 在检查时显示进度 。-v 执行时显示详细的信息 。-w 在检查时,执行写入测试 。[磁盘装置] 指定要检查的磁盘装置 。[磁盘区块数] 指定磁盘装置的区块总数 。[启始区块] 指定要从哪个区块开始检查 。

推荐阅读