暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

linux硬盘检测健康状态检查

温故而知新,分享也是温习。


linux硬盘检测健康状态检查

服务器硬盘是SATA的,使用下面的命令来确认硬盘是否打开了SMART支持

smartctl -i /dev/sda

在这里,如果看到SMART support is: Disabled或者 Device does not support SMART,则表示SMART未启用
如果我们需要执行如下命令,启动SMART:
代码如下:
smartctl –smart=on –offlineauto=on –saveauto=on /dev/sda


查看sda硬盘当前的健康状态使用如下命令
smartctl -H /dev/sda



在 Linux 系统下检查硬盘健康状态,主要依赖于 SMART 技术,并结合一些其他工具来检查磁盘错误。以下是详细的方法和步骤。

核心方法:使用 SMART 工具

SMART(Self-Monitoring, Analysis and Reporting Technology)是现代硬盘和固态硬盘都支持的一种自我监测、分析和报告技术。它是判断硬盘健康状况的首要和最直接的方法。

1. 安装 SMART 工具包

在大多数 Linux 发行版上,工具包名为 smartmontools。

  • Debian/Ubuntu:

sudo apt update && sudo apt install smartmontools


  • RHEL/CentOS/Fedora:

 sudo yum install smartmontools    # 旧版 RHEL/CentOS

sudo dnf install smartmontools    # Fedora / RHEL 8+


2. 识别磁盘设备名

首先,你需要知道要检查的硬盘的设备名(如 /dev/sda, /dev/nvme0n1)。

使用 lsblk或 fdisk命令:

lsblk
# 或者
sudo fdisk -l


输出示例:

NAME        MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT

sda           8:0    0 931.5G  0 disk

├─sda1        8:1    0   512M  0 part /boot/efi

└─sda2        8:2    0   931G  0 part /

nvme0n1     259:0    0 476.9G  0 disk

├─nvme0n1p1 259:1    0   512M  0 part /boot

└─nvme0n1p2 259:2    0 476.4G  0 part /

这里有两块盘:一块 SATA 硬盘 (sda) 和一块 NVMe 固态硬盘 (nvme0n1)。

重要提示:NVMe 盘和 SATA/SCSI 盘的设备名和 SMART 命令参数不同。


针对 SATA / SAS / SCSI 硬盘(例如 /dev/sda

3. 查看 SMART 基本信息(整体健康状态)

使用 smartctl -H命令可以快速查看硬盘的“通过/失败”健康状态。

sudo smartctl -H /dev/sda


输出示例:

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

SMART overall-health self-assessment test result: PASSED

PASSED 表示健康,FAILED 表示硬盘即将出现故障,应立即备份数据

4. 查看详细的 SMART 属性数据

smartctl -A命令会显示详细的属性表,这是诊断问题的关键。

sudo smartctl -A /dev/sda


输出示例(部分重要属性):

ID# ATTRIBUTE_NAME          FLAG     VALUE WORST THRESH TYPE      UPDATED  WHEN_FAILED RAW_VALUE

  5 Reallocated_Sector_Ct   0x0033   100   100   010    Pre-fail  Always       -       0

  9 Power_On_Hours          0x0032   092   092   000    Old_age   Always       -       6523

187 Reported_Uncorrect      0x0032   100   100   000    Old_age   Always       -       0

194 Temperature_Celsius     0x0022   064   055   000    Old_age   Always       -       36 (Min/Max 20/45)

197 Current_Pending_Sector  0x0012   100   100   000    Old_age   Always       -       0

198 Offline_Uncorrectable   0x0010   100   100   000    Old_age   Offline      -       0

199 UDMA_CRC_Error_Count    0x003e   200   200   000    Old_age   Always       -       0

需要重点关注的关键属性:

  • Reallocated_Sector_Ct(重新分配扇区计数): RAW_VALUE 不为 0 表示硬盘已有坏道,并用备用扇区替换了。数值持续增长是坏兆头。

  • Current_Pending_Sector(当前待处理扇区数): RAW_VALUE 不为 0 表示有扇区读写失败,正在等待决定是重新分配还是修复。这是严重警告

  • Offline_Uncorrectable(无法校正的扇区数): 无法修复的坏道数量。

  • UDMA_CRC_Error_Count: 通常与数据线或接口连接问题有关,不一定是硬盘本身故障,但值得检查线缆。


5. 运行 SMART 测试

你可以手动发起测试,更主动地检测问题。

  • 短测试(通常几分钟完成):

sudo smartctl -t short /dev/sda


  • 长测试(全面检查,可能需数小时,不要中断):

sudo smartctl -t long /dev/sda


  • 查看测试结果

sudo smartctl -l selftest /dev/sda



针对 NVMe 固态硬盘(例如 /dev/nvme0n1

NVMe 的命令语法不同,但逻辑相似。

查看健康信息

sudo smartctl -H /dev/nvme0n1


查看详细信息(更易读)

 sudo smartctl -a /dev/nvme0n1


重点关注输出中的 SMART/Health Information 部分:

  • percentage_used: 寿命损耗百分比,越高说明磨损越严重。

  • critical_warning: 任何非 0 值都表示严重问题。

  • media_errors, num_err_log_entries: 错误计数,越高越不好。

  • temperature: 温度信息。

运行测试

 

# 发起设备自检

sudo smartctl -t device self-test /dev/nvme0n1

 

# 查看测试日志

sudo smartctl -l selftest /dev/nvme0n1



其他辅助检查方法

1. 查看内核日志

使用 dmesg命令查看内核环缓冲区日志,经常能发现硬盘报告的 I/O 错误。

dmesg | grep -i sda  # 将 sda 替换为你的设备名
dmesg | grep -i error


如果看到大量关于磁盘的 I/O 错误报告,说明硬盘可能存在问题。

2. 使用 badblocks命令(谨慎使用!)

此命令用于扫描磁盘坏道,但它是一个写测试,会对数据造成风险,强烈建议在新盘上使用,或确保已有完整备份。

只读模式扫描(相对安全)

sudo badblocks -v -s /dev/sda > bad-blocks.txt


完成后,可以将坏道信息通知文件系统(如 ext4):

sudo e2fsck -l bad-blocks.txt /dev/sda1


操作总结与建议

  1. 1.定期检查: 使用 sudo smartctl -H /dev/你的磁盘定期检查健康状态,可以设置为每月一次的 cron 任务。

  1. 2.关注变化: 详细属性 (smartctl -A) 中的 RAW_VALUE 值是否在持续增长比其绝对值更重要。

  1. 3.听声音: 机械硬盘如果发出异常的“咔嗒”声(click of death),通常是物理故障的征兆,应立即备份。

  1. 4.性能监控: 如果系统变得异常卡顿,I/O 等待时间 (wa) 很高(可用 top或 iostat查看),也可能是磁盘故障的前兆。

  1. 5.备份是关键: 任何磁盘健康检查工具都不能 100% 预测故障。唯一能保护数据的方法就是定期备份!

 

最后修改时间:2025-09-06 10:29:56
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论