【记录】smartctl|Linux如何通过smartctl查看有没有坏的磁盘?以及使用时长、电源周期、故障记录等
smartctl是一个用于监测和分析硬盘健康状态的工具,可以用于检测是否存在坏的磁盘。以下是使用smartctl检查磁盘健康状态的步骤:
安装smartctl软件
在Linux系统中,smartctl通常包含在smartmontools软件包中。如果您还没有安装smartmontools,可以使用以下命令安装(大部分NAS自带,如TrueNas):sudo apt-get install smartmontools # Debian/Ubuntu
sudo yum install smartmontools # RedHat/CentOS
查找磁盘设备名称
使用以下命令查找磁盘设备名称:sudo fdisk -l
运行smartctl检查磁盘
使用以下命令运行smartctl检查磁盘:sudo smartctl -a /dev/sda
将
/dev/sda替换为您要检查的磁盘设备名称。该命令将列出有关磁盘健康状态的详细信息,包括错误计数和预测故障时间等。请注意,您可能需要使用root权限才能运行smartctl。检查smartctl输出
在smartctl输出中查找关于磁盘健康状态的信息。重点关注以下字段:- SMART overall-health self-assessment test result:如果该字段的值为“PASSED”,则磁盘没有发现健康问题。如果该字段的值为“FAILED”或“UNKNOWN”,则磁盘存在健康问题。

- Reallocated_Sector_Ct:这是已经重新分配的扇区的数量。如果该值不为0,则磁盘存在坏扇区。正常情况的RAW_VALUE如下:
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
- Current_Pending_Sector:这是目前正在等待重新分配的扇区数量。如果该值不为0,则磁盘存在潜在的坏扇区。
- SMART overall-health self-assessment test result:如果该字段的值为“PASSED”,则磁盘没有发现健康问题。如果该字段的值为“FAILED”或“UNKNOWN”,则磁盘存在健康问题。
如果smartctl输出中没有发现健康问题,那么磁盘应该是正常的。否则,您可能需要更深入地分析问题或考虑更换磁盘。
以下是我个人在检测过程中遇到的一些问题。
文章目录
1 什么情况下需要使用smartctl -t?
smartctl命令的“-t”选项用于执行一次磁盘自检测,以便发现磁盘上的任何潜在问题。使用“-t”选项后,smartctl将在后台启动自检测,并在完成后提供结果。因此,如果您想要获得磁盘的最新自检测结果,您需要使用“-t”选项运行smartctl。
但是,如果您只是想检查磁盘的当前状态,而不需要运行一次自检测,您可以直接运行“smartctl -a”命令来获取磁盘的健康状态信息。这个命令将列出有关磁盘的当前状态和属性信息,例如温度、电源周期、故障计数等等。
综上所述,如果您想要运行自检测以获取最新的磁盘状态信息,您应该使用“smartctl -t”命令。如果您只是想获取磁盘的当前状态信息,您可以直接使用“smartctl -a”命令。
2 如何查看我的磁盘的类型,以及其支持的SMART属性?
您可以使用smartctl命令来查看您的磁盘类型和支持的SMART属性。以下是如何查看它们的方法:
运行“smartctl -i”命令,以获取磁盘的基本信息。该命令将列出磁盘的制造商、型号和序列号等信息。例如:
$ sudo smartctl -i /dev/sda
smartctl 7.1 2019-12-30 r5022 [x86_64-linux-5.4.0-89-generic] (local build)
Copyright (C) 2002-19, Bruce Allen, Christian Franke, www.smartmontools.org === START OF INFORMATION SECTION ===
Model Family: Samsung based SSDs
Device Model: Samsung SSD 970 EVO Plus 500GB
Serial Number: S5H7NX0N659415D
LU WWN Device Id: 5 002538 8b0c6d96d
Firmware Version: 2B2QEXM7
User Capacity: 500,107,862,016 bytes [500 GB]
Sector Size: 512 bytes logical/physical
Rotation Rate: Solid State Device
Form Factor: M.2
TRIM Command: Available, deterministic, zeroed
Device is: Not in smartctl database [for details use: -P showall]
ATA Version is: ACS-4, ATA8-ACS T13/1699-D revision 4
SATA Version is: SATA 3.3, 6.0 Gb/s (current: 6.0 Gb/s)
Local Time is: Tue Feb 15 19:48:47 2022 CET
SMART support is: Available - device has SMART capability.
SMART support is: Enabled
查找“Device Model”属性,以获取磁盘型号。例如,在上面的输出中,“Device Model”属性的值为“Samsung SSD 970 EVO Plus 500GB”。
运行“smartctl -A”命令,以获取磁盘支持的SMART属性列表。该命令将列出磁盘支持的SMART自检测和报告属性。例如:

3 电源周期和故障计数怎么看?
电源周期(Power-On Hours,缩写为POH)和故障计数(Error Counters)是smartctl命令输出中的两个常见磁盘属性。以下是如何查看它们的方法:
运行“smartctl -a”命令以获取磁盘的详细信息。在命令输出的最后一部分,您可以看到所有SMART属性及其当前值。
查找“Power_On_Hours”属性。它是磁盘的电源周期属性,表示磁盘启动以来的累计使用时间,以小时为单位。

查找“Error_Counters”属性。这是一个包含多个子属性的属性,它们记录磁盘的错误计数。例如:
- “Raw_Read_Error_Rate”记录从磁盘读取数据时未能纠正的错误数。
- “Seek_Error_Rate”记录寻道时出现错误的数量。
- “Spin_Retry_Count”记录在旋转磁盘时需要重新尝试读取数据的次数。
- “Reallocated_Sector_Ct”记录已经重新分配的坏扇区数。
- “Current_Pending_Sector”记录当前未能读取的坏扇区数。
- “Offline_Uncorrectable”记录离线状态下发现的无法校正的坏扇区数。

这些属性中的任何一个都可能表示磁盘存在问题,需要进一步检查或更换。
请注意,不同的磁盘可能会使用不同的属性名称和计数单位。在查看SMART属性时,请务必查看smartctl命令输出的完整内容,并仔细查看所有可能表示磁盘问题的属性。
4 在输出信息里没有看到Error_Counters属性?
如果您在运行“smartctl -a”命令后未看到“Error_Counters”属性,则可能是因为您的磁盘不支持该属性,或者该属性未被正确报告。不同的磁盘可能支持不同的SMART属性,因此某些属性可能不适用于您的磁盘。
在这种情况下,您可以查看“smartctl -a”命令输出的其他部分,以查找其他可能指示磁盘问题的属性。例如,您可以查看与磁盘健康状况相关的属性,例如温度、噪音、振动、磁盘旋转速度等等。您还可以查看任何报告磁盘错误或警告的消息。
请注意,如果您认为磁盘存在问题,但无法通过SMART属性来确认它们,您可以使用其他工具来进行更全面的磁盘诊断和测试。例如,您可以使用磁盘制造商提供的磁盘测试工具,或者使用第三方工具来进行全面的磁盘扫描和测试。
5 Seek_Error_Rate非常多是正常的吗?
在 SMART 报告中看到大量的 Seek_Error_Rate 值通常是不正常的。该属性指的是磁盘寻道时发生错误的频率,是一个关键的SMART指标之一。值越高通常意味着出现问题的可能性越高,应引起注意。
但是,应该根据磁盘制造商的建议来解释磁盘SMART属性。不同的制造商可能会使用不同的算法和尺度来计算SMART属性值。此外,一些磁盘可能具有自动纠正错误的功能,这意味着即使 SMART 报告中出现了一些错误,磁盘仍然可以正常工作。
因此,建议您查看磁盘制造商的文档,以了解有关SMART属性值的详细信息,或者您可以将SMART报告提供给制造商进行分析,以获得更准确的解释。如果您对磁盘的健康状况感到担忧,最好备份重要数据,并考虑更换磁盘。
我的硬件型号是:ST16000NM000J-2TW103。希捷对Seek_Error_Rate的计算方式不同,详见b站文章:希捷机械硬盘读取错误率和寻道错误率很高?让我们看看到底是怎么计算的吧!
【记录】smartctl|Linux如何通过smartctl查看有没有坏的磁盘?以及使用时长、电源周期、故障记录等的更多相关文章
- 【记录】linux 文件权限的查看和修改
从上图可以看出每个文件权限与类型都是不一样的,如果对各个字母表达的含义不了解,那么看的真是一脸懵逼. 别急,具体解释如下: d rwx rwx rwx - rwx r-- rw- 第一列含义 ...
- Linux 如何使用gdb 查看core堆栈信息
转载:http://blog.csdn.net/mergerly/article/details/41994207 core dump 一般是在segmentation fault(段错误)的情况下产 ...
- linux netstat 统计连接数查看外部(转)
转自:http://boy-liguang.blog.sohu.com/187052443.html linux netstat 统计连接数查看外部 2011-10-11 08:52阅读(16333) ...
- 记录在linux下的wine生活
记录在linux下的windows生活 本篇内容涉及QQ.微信.Office的安装配置 QQ: 到deepin下载轻聊版. 如果安装了crossover,那么将其中opt/cxoffice/suppo ...
- Linux使用jstat命令查看jvm的GC情况
Linux使用jstat命令查看jvm的GC情况 http://www.open-open.com/lib/view/open1390916852007.html http://www.aiuxian ...
- linux 系统下查看raid信息,以及磁盘信息
有时想知道服务器上有几块磁盘,如果没有做raid,则可以简单使用fdisk -l 就可以看到. 但是做了raid呢,这样就看不出来了.那么如何查看服务器上做了raid? 软件raid:只能通过Lin ...
- Linux使用netstat命令查看并发连接数[转]
转自:http://www.cnblogs.com/wayne173/p/5652043.html Linux使用netstat命令查看并发连接数 我们的网站部署在linux的服务器上,特别是we ...
- Linux和Windows下查看环境变量方法对比
摘自:Linux和Windows下查看环境变量方法对比 一.查看所有环境变量的名称和值 Linux下:export Windows下:set 二.根据名称查该环境变量的值 Linux下:echo $环 ...
- Linux命令 — 设置或查看网络配置命令ifconfig
ifconfig命令用于设置或查看网络配置,包括IP地址.网络掩码.广播地址等.它是linux系统中,使用频率最高的关于网络方面的命令. 1. 命令介绍 命令格式: ifconfig [interfa ...
- 在Linux下用netstat查看网络状态、端口状态
在Linux下用netstat查看网络状态.端口状态 在linux一般使用netstat 来查看系统端口使用情况步. netstat命令是一个监控TCP/IP网络的非常有用的工具,它可以显示路由表.实 ...
随机推荐
- Hetao P1391 操作序列 题解 [ 绿 ] [ 二维线性 dp ]
操作序列:简单的二维 dp. 观察 我们每次操作可以让 \(x\) 变为 \(2x-1\),或者当 \(x\) 为奇数时让 \(x\) 变为 \(\frac{x+1}{2}\). 显然,执行第一种操作 ...
- RDK新一代模型转换可视化工具!!!
作者:SkyXZ CSDN:SkyXZ--CSDN博客 博客园:SkyXZ - 博客园 之前在使用的RDK X3的时候,吴诺老师@wunuo发布了新一代量化转换工具链使用教程,这个工具真的非常的方便, ...
- 「ximagine」业余爱好者的非专业显示器测试流程规范,同时也是本账号输出内容的数据来源!如何测试显示器?荒岛整理总结出多种测试方法和注意事项,以及粗浅的原理解析!
> 由于网页编辑器简陋,无法实现原文档的精心排版,如需原文档可联系... 序 「ximagine」在本篇文章中将介绍「荒岛」目前所使用的显示器测试流程及标准,我们主要使用Calman.Displ ...
- window本地部署deepseek
window本地部署deepseek 学习自[[教程]DeepSeek本地免费部署教程,丝滑不卡顿!带你解锁隐藏功能!]https://www.bilibili.com/video/BV1viFaeB ...
- 解决黑群晖 Docker 日志八小时时间差的有效方法
步骤一:登录黑群晖控制台 首先,我们需要登录到黑群晖控制台.可以通过SSH登录,或是直接在黑群晖控制台界面上操作. 步骤二:停止相关的Docker容器 在解决时间差问题之前,我们需要停止相关的Dock ...
- Redis高可用部署:3台服务器打造哨兵集群
1.Redis集群介绍 Redis 集群(Redis Cluster)是Redis提供的一种分布式部署方式,旨在提供高可用性.如果某个主节点发生故障,集群能够自动进行故障转移,将副本提升为主节点,从而 ...
- .NET10 - 预览版1新功能体验(一)
.NET 10 首个预览版已经在前两天发布,该版本在 .NET Runtime.SDK.libraries.C#.ASP.NET Core.Blazor 和 .NET MAUI 等多个方面都有重大改进 ...
- deepseek:微信公众号网页授权能否获知是否关注公众号
在微信公众号开发中,网页授权(OAuth2.0)可以获取用户的基本信息(如 openid.昵称.头像等),但默认情况下,网页授权无法直接获取用户是否关注公众号.这是因为网页授权的设计初衷是为了获取用户 ...
- 自动化平台-环境搭建2-cmd 下mysql 卸载命令
"" net stop mysql sc delete mysql rd /s /q "C:\Program Files\MySQL" rd /s /q &qu ...
- Loongson Log
就看看能坚持多久吧 22/2/2及以前: 参照想象中的p7内容增添部分版CP0.部分中断/异常机制: 改sram接口:查阅文档func_test.sram相关内容:查阅vivado bram IP核相 ...