Linux 下检测硬盘

不知怎么的 Linux 下的中文越来越少。自己写写备用吧

HDPARM 命令

参数:

  -a <快取分区> 设定读取文件时,预先存入块区的分区数,若不加上<快取分区>选项,则显示目前的设定。

  -A <0或1> 启动或关闭读取文件时的快取功能。

  -c 设定IDE32位I/O模式。

  -C 检测IDE硬盘的电源管理模式。

  -d <0或1> 设定磁盘的DMA模式。

  -f 将内存缓冲区的数据写入硬盘,并清楚缓冲区。

  -g 显示硬盘的磁轨,磁头,磁区等参数。

  -h 显示帮助。

  -i 显示硬盘的硬件规格信息,这些信息是在开机时由硬盘本身所提供。

  -I 直接读取硬盘所提供的硬件规格信息。

  -k <0或1> 重设硬盘时,保留-dmu参数的设定。

  -K <0或1> 重设硬盘时,保留-APSWXZ参数的设定。

  -m <磁区数> 设定硬盘多重分区存取的分区数。

  -n <0或1> 忽略硬盘写入时所发生的错误。

  -p 设定硬盘的PIO模式。

  -P <磁区数> 设定硬盘内部快取的分区数。

  -q 在执行后续的参数时,不在屏幕上显示任何信息。

  -r <0或1> 设定硬盘的读写模式。

  -S <时间> 设定硬盘进入省电模式前的等待时间。

  -t 评估硬盘的读取效率。

  -T 平谷硬盘快取的读取效率。

  -u <0或1> 在硬盘存取时,允许其他中断要求同时执行。

  -v 显示硬盘的相关设定。

  -W <0或1> 设定硬盘的写入快取。

  -X <传输模式> 设定硬盘的传输模式。

  -y 使IDE硬盘进入省电模式。

  -Y 使IDE硬盘进入睡眠模式。

  -Z 关闭某些Seagate硬盘的自动省电功能

示例:
hdparm -t /dev/hda (IDE硬盘)

hdparm -t /dev/sda (SATA、SCSI、硬RAID卡阵列)

hdparm -t /dev/md0 (软RAID设备)

  测试结果在空载情况下应 >40M/s ,在负载情况下平均应 > 20M/s 为正常,如测试结果极低则需要进一步使用硬盘专用检测工具测试是否为硬盘故障。

badblocks 命令

示例:

badblocks -s -v -o /root/badblocks.log /dev/sda #检测坏道输出到文件

badblocks -s -w /dev/sda END START #修复坏道 扇区起始

磁盘坏道分为三种:0磁道坏道,逻辑坏道,硬盘坏道。除了逻辑坏道可修复,其他几率很小。

Smartctl 命令

参数和示例:

smartctl -a # 检查该设备是否已经打开SMART技术。
smartctl -s on #打开SMART技术。
smartctl -t short #后台快速检测硬盘。
smartctl -t long #后台慢速检测硬盘。更全面。
smartctl -C -t short #前台快速检测硬盘。
smartctl -C -t long #前台慢速检测硬盘。更全面。
smartctl -X #中断后台检测硬盘。
smartctl -l selftest #显示硬盘检测日志。
smartctl -l error #显示硬盘错误汇总。
smartctl -i /dev/sda # 显示硬盘 smart 状态。
smartctl -H /dev/sda # 显示硬盘 smart 状态是否健康。

总不能每次手动去运行,有没有更简单的。

编辑配置文件:1 vi /etc/smartd.conf
示例如下:

/dev/sda -H -m [email protected]
# 监控磁盘的健康状态,当SMART中报告 PASSED的时候不理睬。一旦出现 Failure,立刻用邮件通知用户指定的邮箱

/dev/sda -a -m [email protected],[email protected] # 监控磁盘的所有属性,当SMART中报告 PASSED的时候不理睬。一旦出现 Failure,立刻用邮件通知用户指定的邮箱

服务器一般有 BMC 警告,倒不需要这么做。