linux 硬盘检测?linux磁盘检测和修复

linux硬盘检测健康状态

定期检查硬盘的健康状态是每个系统管理员必须要做的事情。说到硬盘的健康状态,这里就得先说一下S.M.A.R.T.了。

SMART是一种磁盘自我分析检测技术,早在90年代末就基本得到了普及

  每一块硬盘(包括IDE、SCSI)在运行的时候,都会将自身的若干参数记录下来

  这些参数包括型号、容量、温度、密度、扇区、寻道时间、传输、误码率等

  硬盘运行了几千小时后,很多内在的物理参数都会发生变化

  某一参数超过报警阈值,则说明硬盘接近损坏

  此时硬盘依然在工作,如果用户不理睬这个报警继续使用

  那么硬盘将变得非常不可靠,随时可能故障

SMART是和主板BIOS上相应功能配合的

  要使用SMART,必须先进入到主板BIOS设置里边启动相关设置

  一般从Pentium2级别起的主板,都支持SMART

  BIOS启动以后,就是操作系统级别的事情了

  很遗憾,Windows没有内置SMART相关工具(需要安装第三方工具软件)

  好在Linux上很早就有了SMART支持了

  如果把Linux装在VMware等虚拟机上,在系统启动时候可以看到有个服务启动报错:smartd

  这个服务器就是smart的daemon进程(因为vmware虚拟机的硬盘不支持SMART,所以报错)

可以使用下面的命令来确认硬盘是否打开了SMART支持

复制代码

  

代码如下:

smartctl-i/dev/sda

正常情况下应该会得到下面这样的信息

复制代码

  

代码如下:

[root@localhost~]# smartctl-i/dev/sda

  smartctl version 5.38 [i686-redhat-linux-gnu] Copyright(C) 2002-8 Bruce Allen

  Home page is a href="

复制代码

  

代码如下:

=== START OF INFORMATION SECTION===

  Model Family: Seagate Barracuda 7200.10 family

  Device Model: ST3160815AS

  Serial Number: 5RA6A1K9

  Firmware Version: 4.AAB

  User Capacity: 160,041,885,696 bytes

  Device is: In smartctl database [for details use:-P show]

  ATA Version is: 7

  ATA Standard is: Exact ATA specification draft version not indicated

  Local Time is: Sat Jul 7 17:18:02 2012 CST

  SMART support is: Available– device has SMART capability.

在这里,如果看到SMART support is: Disabled,则表示SMART未启用

如果我们需要执行如下命令,启动SMART:

复制代码

  

代码如下:

smartctl–smart=on–offlineauto=on–saveauto=on/dev/sda

查看硬盘当前的健康状态使用如下命令

复制代码

  

代码如下:

[root@localhost~]# smartctl-H/dev/sda

  smartctl version 5.38 [i686-redhat-linux-gnu] Copyright(C) 2002-8 Bruce Allen

  Home page is a href="

复制代码

  

代码如下:

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

  SMART overall-health self-assessment test result: PASSED

请注意result后边的结果:PASSED,这表示硬盘健康状态良好

  如果这里显示Failure,那么最好立刻给服务器更换硬盘。

执行如下命令可以看到详细的参数:

复制代码

  

代码如下:

[root@localhost~]# smartctl-A/dev/sda

  smartctl version 5.38 [i686-redhat-linux-gnu] Copyright(C) 2002-8 Bruce Allen

  Home page is a href="

复制代码

  

代码如下:

=== 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 UPDATED WHEN_FAILED RAW_VALUE

  1 Raw_Read_Error_Rate 0x000f 100 253 006 Pre-fail Always– 0

  3 Spin_Up_Time 0×0003 097 097 000 Pre-fail Always– 0

  4 Start_Stop_Count 0×0032 100 100 020 Old_age Always– 818

  5 Reallocated_Sector_Ct 0×0033 100 100 036 Pre-fail Always– 0

  7 Seek_Error_Rate 0x000f 085 060 030 Pre-fail Always– 369003829

  9 Power_On_Hours 0×0032 084 084 000 Old_age Always– 14527

  10 Spin_Retry_Count 0×0013 100 100 097 Pre-fail Always– 0

  12 Power_Cycle_Count 0×0032 100 100 020 Old_age Always– 817

  187 Reported_Uncorrect 0×0032 100 100 000 Old_age Always– 0

  189 High_Fly_Writes 0x003a 100 100 000 Old_age Always– 0

  190 Airflow_Temperature_Cel 0×0022 052 046 045 Old_age Always– 48(Lifetime Min/Max 47/52)

  194 Temperature_Celsius 0×0022 048 054 000 Old_age Always– 48(0 11 0 0)

  195 Hardware_ECC_Recovered 0x001a 074 062 000 Old_age Always– 188295533

  197 Current_Pending_Sector 0×0012 100 100 000 Old_age Always– 0

  198 Offline_Uncorrectable 0×0010 100 100 000 Old_age Offline– 0

  199 UDMA_CRC_Error_Count 0x003e 200 200 000 Old_age Always– 0

  200 Multi_Zone_Error_Rate 0×0000 100 253 000 Old_age Offline– 0

  202 TA_Increase_Count 0×0032 100 253 000 Old_age Always– 0

上边列出的参数表中可供进行技术分析和参考,使用下边的命令可以输出完整结果:

复制代码

  

代码如下:

smartctl-a/dev/sda

如何在 Linux 系统下检测硬盘上的坏道和坏块

检查和修正文件系统错误用fsck命令,这个命令的用法是:

fsck-C-f-t文件系统类型设备名称

解释:-C参数表示用图形显示进度

-f参数表示强制fsck进入细化检查,如果不加-f参数并且这个分区没有问题,检查会快一些

-t参数是指示文件系统类型

设备名称:就是设备文件名,比如/dev/hdc3

特别注意:如果文件系统没有问题,最好不要使用这个命令。而且,执行fsck命令时,被扫描的分区千万不可以挂载在系统上,必须是在卸载状态被扫描。

如果被扫描的分区挂载目录下的lost+found目录中有数据产生了,可以说明文件系统有问题。

检查硬盘扇区有没有坏道,可以使用badblocks命令,它的用法是:

badblocks-sv设备名称

设备名称:类似于/dev/hdc3的设备名称。

Linux下好用的硬盘检测神器:smartctl

在Linux环境中,为了有效监控和预防硬盘故障,有一个强大的工具——smartctl,它就像一个硬盘的守护神。接下来,我们将深入探讨如何在服务器上安装并使用smartctl进行硬盘检测。

首先,安装smartctl是整个过程的基石。只需在终端中输入几个简单的命令,即可将这个工具添加到系统中,确保服务器的硬盘健康状况得到实时监控(在Linux中,只需通过命令行进行安装,如`sudo apt-get install smartmontools`,即可轻松获取smartctl。

接下来,检测硬盘状态是smartctl的核心功能。如果你的服务器配备了RAID卡,情况会稍有不同。通过`smartctl-a/dev/sdX`(将X替换为RAID卡对应的设备名),可以查看到详细信息,包括错误计数、自检结果等,最后一列是RAID槽位号(例如,0表示第一个槽)(

对于RAID环境,使用`smartctl-a/dev/your_raid_device`,能显示详细硬盘健康指标,包括RAID槽位位置。

如果你的服务器没有RAID卡,smartctl同样适用。只需输入设备名(如`/dev/sda`)进行检测,它会提供硬盘的整体健康状况,包括SMART(Self-Monitoring, Analysis, and Reporting Technology)数据,帮助你及时发现潜在问题(

无RAID卡的情况,直接输入`smartctl-a/dev/sda`,smartctl会检测单个硬盘的SMART信息,预警可能存在的问题。)

综上所述,smartctl是Linux服务器硬盘故障检测的理想选择,通过简单安装和灵活使用,可以确保硬盘的稳定运行,及时预防故障发生。

阅读剩余
THE END