022.常见硬盘检测方式

硬盘监测概述

硬盘异常损坏日常相对概率较高,同时不同的文件系统(xfs,reiserfs,ext3)其检测方式不同。建议使用dmesag查看有没有硬件I/O故障的日志,也可使用用fsck确认是否文件系统异常。

SMART检测硬盘

SMART是一种磁盘自我分析检测技术,硬盘运行中会将主要参数进行记录,主要有:型号、容量、温度、密度、扇区、寻道时间、传输、误码率等。
硬盘运行一段时间后,如上参数会有相应的变动,某些参数超过阀值会出现报警。依靠相应的报警可初步判断硬盘是否接近(已经)损坏。

SMART是和主板BIOS上相应功能配合的,在使用smart之前必须在bios设置中启动相关特性。
硬件特性开启smart的情况下,对于Linux,有相应的smartd服务驻守运行,该进程能监视、分析和汇聚相关硬盘情况。

smartctl可用于对磁盘进行相关检测,主要用法如下:
smartctl -a :检查该设备是否已经打开SMART技术。
smartctl -s on :如果没有打开SMART技术,使用该命令打开SMART技术。
smartctl -t short :后台检测硬盘,消耗时间短。
smartctl -t long :后台检测硬盘,消耗时间长。
smartctl -C -t short :前台检测硬盘,消耗时间短。
smartctl -C -t long :前台检测硬盘,消耗时间长。
smartctl -X :中断后台检测硬盘。
smartctl -l selftest :显示硬盘检测日志。
smartctl -l error :显示硬盘错误汇总。

提示:首先通过dmesg工具,确认一下硬盘的设备符号。

smartctl -i /dev/sda
……
SMART support is: Available - device has SMART capability.

SMART support is: Enabled                                   #表示启用了smart支持

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

smartctl -H /dev/sda
……
SMART overall-health self-assessment test result: PASSED

命令释义:
PASSED:这表示硬盘健康状态良好;
FAILED:硬盘不健康,建议更换硬盘。

提示: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 short /dev/sda              #前台检测硬盘,消耗时间短;
#smartctl -C -t long /dev/sda               #前台检测硬盘,消耗时间长。
#smartctl -X   /dev/sda                     #中断后台检测硬盘。
#smartctl -l selftest  /dev/sda             #显示硬盘检测日志。
#smartctl -l error   /dev/sda               #显示硬盘错误汇总。

通常执行smartctl需要在服务器终端执行,sarmt也支持作为服务运行在服务端,进程deamon为startd,从而实现定时判断硬盘状态,同时指定报警、日志等。

如下示例配置好 smartd.conf 后启动进程即可。

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,则邮件通知

启动startd服务。

/etc/init.d/smartd restart                            #加载配置文件启动

badblocks检测硬盘

badblocks命令可以检查磁盘装置中损坏的区块。该命令需要指定所要检查的磁盘设备,及此磁盘区块数。
语法:
badblocks [-svw][-b ][-o ][磁盘装置][磁盘区块数][启始区块]

参数:

  • -b 指定磁盘的区块大小,单位为字节。
  • -o 将检查的结果写入指定的输出文件。
  • -s 在检查时显示进度。
  • -v 执行时显示详细的信息。
  • -w 在检查时,执行写入测试。
  • [磁盘设备] 指定要检查的磁盘设备。
  • [磁盘区块数] 指定磁盘设备的区块总数。
  • [启始区块] 指定要从哪个区块开始检查。

badblocks检测磁盘坏块:

badblocks -s -v /dev/sda1           #显示进度和执行检查的详细情况
badblocks -s -v /dev/sda

badblocks -s -w -v /dev/sda2      #显示进度并且以写入的方式检测同时显示详细情况

注意:不能以写的方式检测已经挂载的硬盘

Original: https://www.cnblogs.com/itzgr/p/15551835.html
Author: 木二
Title: 022.常见硬盘检测方式

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/583438/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • OpenStack 命令行操作

    命令行删除 环境变量 OpenStack的九个组件必须熟记,命令不需要死记硬背,我们可以通过help来查询相关的命令和参数。如果你直接使用命令来查询或者做其他操作,那么会涉及到环境…

    Linux 2023年6月8日
    080
  • js之数据类型(1)

    可以返回number,string,Boolean,object,undefined,function 运行结果如下: 注意如下几个数据类型的输出 显示数据类型转换和隐式数据类型转…

    Linux 2023年6月13日
    079
  • 单机简易版mapReduce 实现

    go;gutter:true;collapse:false import "fmt" import "6.824/mr" import &q…

    Linux 2023年6月7日
    0196
  • WPF 界面打不开提示 System.ArithmeticException Overflow or underflow in the arithmetic operation 异常

    本文告诉大家如何解决界面打不开,抛出 System.ArithmeticException: Overflow or underflow in the arithmetic ope…

    Linux 2023年6月6日
    083
  • linux的启动流程详解

    linux启动流程 一、第一阶段:BIOS 上个世纪70年代初,”只读内存”(read-only memory,缩写为ROM)发明,开机程序被刷入ROM芯片…

    Linux 2023年6月7日
    088
  • 【Docker搭建】0. 在CentOS下安装/卸载Docker

    警告:切勿在没有配置 Docker YUM 源的情况下直接使用 yum 命令安装 Docker. 系统要求Docker CE 支持 64 位版本 CentOS 7,并且要求内核版本…

    Linux 2023年6月13日
    078
  • Docker简介与安装

    Docker简介与安装 Docker overview | Docker Documentation 官方文档 1.Docker简介 Docker是一个用于开发、发布和运行应用程序…

    Linux 2023年6月13日
    083
  • CentOS7.4安装docker

    1、安装环境 此处在Centos7进行安装,可以使用以下命令查看CentOS版本 lsb_release -a 在 CentOS 7安装docker要求系统为64位、系统内核版本为…

    Linux 2023年5月27日
    089
  • Snap Build Your Own Block修炼之道-添加自定义类别

    Snap Build Your Own Block自我修炼方法:1、所有的面向对象,其实是对面向过程的抽象过程而已; 2、面对别人的开源项目时,需要找准源头(即项目运行的起点,当然…

    Linux 2023年6月6日
    098
  • Jenkins

    Jenkins Jenkins jenkins简介 jenkins工作原理 jenkins特点 CI/CD是什么 使用tomcat容器安装jenkins jenkins流水线项目发…

    Linux 2023年6月6日
    0109
  • MediaFire 网盘队列下载脚本

    MediaFire是一个国外的网盘。通常情况下,我们可以用浏览器下载MediaFire的文件,但是不能同时下载过多文件,只能几个几个地慢慢手动下载,比较费时间,所以我设计了这样一个…

    Linux 2023年6月6日
    0131
  • 虚拟机Ubuntu22.04 chrome页面显示异常

    虚拟机上ubuntu安装chrome出现页面显示异常的解决办法 将chrome上的硬件加速关掉就能恢复正常 具体原因是啥,有没有大佬能解答以下啊 引用:https://blog.c…

    Linux 2023年6月13日
    084
  • 磁盘和文件系统

    fdisk -l [磁盘设备] //非交互式查看磁盘分区 fdisk [磁盘设备] //交互式查看和管理磁盘分区 非交互式查看磁盘分区 [root@localhost ~]# ll…

    Linux 2023年6月6日
    0121
  • [云原生]Kubernetes-资源管理(第3章)

    一、资源管理介绍 二、YAML语言介绍 三、资源管理方式 3.1 命令式对象管理 3.2 命令式对象配置 3.3 声明式对象配置 参考: Kubernetes(K8S) 入门进阶实…

    Linux 2023年6月13日
    0117
  • Django自带序列化组件;分页器

    django自带的序列化组件 代码实现序列化 models.py class User(models.Model): name = models.CharField(max_len…

    Linux 2023年6月7日
    098
  • SQL查询语句–统计

    — 1、日统计查询填补 i->为时间差的天数 2022-05-10为终止时间 SET @i :=- 1; SELECT date_format( DATE_SUB( ’20…

    Linux 2023年6月14日
    081
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球