博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[转载] 磁盘硬件问题(坏块)检测
阅读量:6619 次
发布时间:2019-06-25

本文共 3686 字,大约阅读时间需要 12 分钟。

标签

PostgreSQL , Linux , Windows , SSD , smartctl , smartmontools , badblocks , hdparm , HD Tune


背景

Linux下面可以使用smartctl , badblocks检查是否有坏块。

Win下面可以使用HD Tune。

1 smartmontools

apt install smartmontools

smartctl -t long /dev/sda
3.1.5          SMART 离线测试、自测试 参数  -t  TEST      立刻执行测试,可以和-C参数一起使用。                         TEST可以有以下几个选择:                         offline  离线测试。可以在挂载文件系统的磁盘上使用                         short   短时间测试。可以在挂载文件系统的磁盘上使用。                         long   长时间测试。可以在挂载文件系统的磁盘上使用。                         conveyance  [ATA only]传输zi测试。可以在挂载文件系统的磁盘上使用。                         select,N-M        select, N+SIZE  [ATA only]有选择性测试,测试磁盘的部分LBA。N表示    LBA编号,M表示结束LBA编号,SIZE表示测试的LBA    范围。

查看健康状态

smartctl -s on /dev/sda    smartctl -a /dev/sda    smartctl -H /dev/sda

2 badblocks

让我们从坏道和坏块的定义开始说起,它们是一块磁盘或闪存上不再能够被读写的部分,一般是由于磁盘表面特定的或闪存晶体管失效导致的。

随着坏道的继续积累,它们会对你的磁盘或闪存容量产生令人不快或破坏性的影响,甚至可能会导致硬件失效。

同时还需要注意的是坏块的存在警示你应该开始考虑买块新磁盘了,或者简单地将坏块标记为不可用。

因此,在这篇文章中,我们通过几个必要的步骤,使用特定的让你能够判断 Linux 磁盘或闪存是否存在坏道。

以下就是步骤:

在 Linux 上使用坏块工具检查坏道

坏块工具可以让用户扫描设备检查坏道或坏块。设备可以是一个磁盘或外置磁盘,由一个如 /dev/sdc 这样的文件代表。

首先,通过超级用户权限执行  命令来显示你的所有磁盘或闪存的信息以及它们的分区信息:

$ sudo fdisk -l

列出 Linux 文件系统分区

然后用如下命令检查你的 Linux 硬盘上的坏道/坏块:

$ sudo badblocks -v /dev/sda10 > badsectors.txt

在 Linux 上扫描硬盘坏道

上面的命令中,badblocks 扫描设备 /dev/sda10(记得指定你的实际设备),-v 选项让它显示操作的详情。另外,这里使用了输出重定向将操作结果重定向到了文件 badsectors.txt

如果你在你的磁盘上发现任何坏道,卸载磁盘并像下面这样让系统不要将数据写入回报的扇区中。

你需要执行 e2fsck(针对 ext2/ext3/ext4 文件系统)或 fsck 命令,命令中还需要用到 badsectors.txt 文件和设备文件。

-l 选项告诉命令将在指定的文件 badsectors.txt 中列出的扇区号码加入坏块列表。

------------ 针对 for ext2/ext3/ext4 文件系统 ------------  $ sudo e2fsck -l badsectors.txt /dev/sda10    或    ------------ 针对其它文件系统 ------------  $ sudo fsck -l badsectors.txt /dev/sda10

如果你使用的是ZFS,不需要FSCK来修复。ZFS是事务型文件系统,任何时刻视角都是 一致的。

在 Linux 上使用 Smartmontools 工具扫描坏道

这个方法对带有 S.M.A.R.T(自我监控分析报告技术Self-Monitoring, Analysis and Reporting Technology)系统的现代磁盘(ATA/SATA 和 SCSI/SAS 硬盘以及固态硬盘)更加的可靠和高效。S.M.A.R.T 系统能够帮助检测,报告,以及可能记录它们的健康状况,这样你就可以找出任何可能出现的硬件失效。

你可以使用以下命令安装 smartmontools

------------ 在基于 Debian/Ubuntu 的系统上 ------------  $ sudo apt-get install smartmontools    ------------ 在基于 RHEL/CentOS 的系统上 ------------  $ sudo yum install smartmontools

安装完成之后,使用 smartctl 控制磁盘集成的 S.M.A.R.T 系统。你可以这样查看它的手册或帮助:

$ man smartctl  $ smartctl -h

然后执行 smartctrl 命令并在命令中指定你的设备作为参数,以下命令包含了参数 -H 或 --health 以显示 SMART 整体健康自我评估测试结果。

$ sudo smartctl -H /dev/sda10

检查 Linux 硬盘健康

上面的结果指出你的硬盘很健康,近期内不大可能发生硬件失效。

要获取磁盘信息总览,使用 -a 或 --all 选项来显示关于磁盘所有的 SMART 信息,-x 或 --xall 来显示所有关于磁盘的 SMART 信息以及非 SMART 信息。

在这个教程中,我们涉及了有关的重要话题,你可以下面的反馈区来分享你的想法或提问,并且记得多回来看看。

via: 

3 hdparm

检测硬盘I/O相对来说还是一个比较抽象的概念,但是对系统性能的影响还是至关重要的。

使用hdparm命令检测读取速度:

hdparm命令提供了一个命令行的接口用于读取和设置IDE和SCSI硬盘参数。    安装:
yum install hdparm
语法:
hdparm(选项)(参数)
常用选项:
-f: 将内存缓冲区的数据写入硬盘,并清除缓冲区;          -g: 显示硬盘的磁轨,磁头,磁区等参数;          -i: 显示硬盘的硬件规格信息,这些信息是在开机时由硬盘本身所提供;          -I: 直接读取硬盘所提供的硬件规格信息;          -t: 评估硬盘的读取效率;          -T: 评估硬盘快取的读取效率;
参数:      设备文件:指定id驱动对应的设备文件名        实例:      使用方法很简单,```hdparm -Tt /dev/sda```
[root@super python]# hdparm -Tt /dev/sda      /dev/sda:   Timing cached reads:   8470 MB in  2.00 seconds = 4235.83 MB/sec           # 硬盘的快取读取速度,2.00秒读取了8470 MB,平均每秒读取:4235.83 MB/sec     Timing buffered disk reads: 722 MB in  3.22 seconds = 224.28 MB/sec       # 硬盘的读取速度:3.22秒读取了722 MB,平均每秒读取:224.28 MB/sec

4 fio

5 HD Tune

6 dd

使用dd命令测试写入速度:

dd命令是一个不太专业的测速工具,如果要求的不是很严格,还是可以进行多次测试来得到一个近似值的。  安装:
yum install coreutils
实例:
[root@super python]# dd if=/dev/zero of=test bs=1M count=2048        # 写入一个文件名test, bytes 为1M,共2048 blocks 的文件,总共大小为:1M * 2048 = 2G          记录了2048+0 的读入          记录了2048+0 的写出          2147483648字节(2.1 GB)已复制,88.8786 秒,24.2 MB/秒                    88.8786 秒写入了2.1 GB数据,平均:24.2 MB/秒

参考

转载地址:http://beupo.baihongyu.com/

你可能感兴趣的文章
连载-第1章绪论 1.1嵌入式系统概述
查看>>
UltraVNC
查看>>
详解synchronized
查看>>
Spring Cloud第二篇 创建一个Eureka Server
查看>>
初探数据双向绑定
查看>>
Webpack4 不深不浅的实践教程
查看>>
nginx1.9+做TCP代理(端口转发)
查看>>
HTML元素的默认CSS设置介绍
查看>>
Git异常:fatal: could not create work tree dir 'XXX': No such file or directory
查看>>
GNU make manual 翻译(八十二)
查看>>
python批量下载图片的三种方法
查看>>
/bin/bash^M: bad interpreter: 没有那个文件或目录
查看>>
iOS - OC NSData 数据
查看>>
iOS - Quartz 2D 第三方框架 Charts 绘制图表
查看>>
MM顾问的常见面试问题(ZZ)
查看>>
转:Windows 8上强制Visual Studio以管理员身份运行
查看>>
迟来的加勒比海盗3 观后
查看>>
谈一谈互联网创业补贴变味后的现象
查看>>
MapGIS转Shp文件的单位问题
查看>>
使用Karate轻松实现自动API测试
查看>>