centos badblocks badblocks检测坏道

大家好,今天来为大家分享centos badblocks的一些知识点,和badblocks检测坏道的问题解析,大家要是都明白,那么可以忽略,如果不太清楚的话可以看看本篇文章,相信很大概率可以解决您的问题,接下来我们就一起来看看吧!

CentOS下检测硬盘上的坏道和坏块

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

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

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

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

以下就是步骤:

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

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

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这个方法对带有 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信息。

centos出现磁盘坏掉,怎么修复和检测

1.首先检测下坏掉

badblocks-s-v-o/root/bb.log/dev/sda将结果保存到bb.log

[root@logging~]# badblocks-s-v-o/root/badblocks.log/dev/sda

Checking blocks 0 to 586061784

Checking for bad blocks(read-only test): done

Pass completed, 173 bad blocks found.

smartctl-a/dev/sda3(快速检测硬盘坏道,看read,write后面有没有errors)

2.逻辑坏道修复方法

①、badblocks-s-w/dev/sda END START(END代表需要修复的扇区末端,START代表需要修复的扇区起始端)

②、fsck-a/dev/sda

修复后再用badblocks-s-v-o/root/bb.log/dev/sda监测看是否还有坏道存在,如果坏道还是存在的话说明坏道属于硬盘坏道。硬盘坏道要用隔离方法,首先记录监测出的硬盘坏道然后分区的时候把硬盘坏道所在的扇区分在一个分区(大小一般大于坏扇区大小),划分出的坏道分区不使用即可达到隔离的目的

3. 0磁道坏道和硬盘坏道(准备换硬盘)

0磁道坏道的修复方法是隔离0磁道,使用fdsk划分区的时候从1磁道开始划分区。

如果是硬盘坏道的话,只能隔离不能修复

CentOS下badblocks指令的详解

硬盘是一个损耗设备,当使用一段时间后可能会出现坏道等物理故障。电脑硬盘出现坏道后,如果不及时更换或进行技术处理,坏道就会越来越多,并会造成频繁死机和数据丢失。最好的处理方式是更换磁盘,但在临时的情况下,应及时屏蔽坏道部分的扇区,不要触动它们。badblocks就是一个检查坏道位置的工具。

一、命令参数

badblocks使用格式为:

引用

badblocks [-svwnf ] [-b block-size ] [-c blocks_at_once ] [-i

input_file ] [-o output_file ] [-p num_passes ] [-t test_pattern ]

device [ last-block ] [ start-block ]

参数含义是:

引用

-b blocksize

指定磁盘的区块大小,单位为字节,默认值为“block 4K”(4K/block)

-c blocksize

每个区块检查的次数,默认是16次

-f

强制在一个已经挂载的设备上执行读写或非破坏性的写测试操作

(我们建议先umount设备,然后再进行坏道检测。仅当/etc/mtab出现误报设备挂载错误的时候可以使用该选项)

-i file

跳过已经显示在file文件中的坏道,而不进行检测(可以避免重复检测)

-o file

把检测结果输出到file文件

-p number

重复搜寻设备,直到在指定通过次数内都没有找到新的坏块位置,默认次数为0

-s

在检查时显示进度

-t pattern

通过按指定的模式读写来检测区块。你可以指定一个0到ULONG_MAX-1的十进制正值,或使用random(随机)。

如果你指定多个模式,badblocks将使用第一个模式检测所有的区块,然后再使用下一个模式检测所有的区块。

Read-only方式仅接受一个模式,它不能接受random模式的。

-v

执行时显示详细的信息

-w

对每个区块都先写入,然后再从它读取信息

[device]

指定要检查的磁盘装置。

[last-block]

指定磁盘装置的区块总数。

[start-block]

指定要从哪个区块开始检查

二、示例

badblocks以4096的一个block,每一个block检查16次,将结果输出到“hda-badblocks-list”文件里

# badblocks-b 4096-c 16/dev/hda1-o hda-badblocks-listhda-badblocks-list”是个文本文件,内容如下:

引用

# cat hda-badblocks-list

51249

51250

51251

51253

51254

……

61245

……

可以针对可疑的区块多做几次操作。下面,badblocks以4096字节为一个“block”,每一个“block”检查1次,将结果输出到“hda-badblocks-list.1”文件中,由第51000 block开始,到63000 block结束

# badblocks-b 4096-c 1/dev/hda1-o hda-badblocks-list.1 63000 51000这次花费的时间比较短,硬盘在指定的情况下在很短的时间就产生“嘎嘎嘎嘎”的响声。由于检查条件的不同,其输出的结果也不完全是相同的。重复几次同样的操作,因条件多少都有些不同,所以结果也有所不同。进行多次操作后,直到产生最后的hda-badblock-list.final文件。

三、其他

1、fsck使用badblocks的信息

badblocks只会在日志文件中标记出坏道的信息,但若希望在检测磁盘时也能跳过这些坏块不检测,可以使用fsck的-l参数:

# fsck.ext3-l/tmp/hda-badblock-list.final/dev/hda12、在创建文件系统前检测坏道

badblocks可以随e2fsck和mke2fs的-c删除一起运行(对ext3文件系统也一样),在创建文件系统前就先检测坏道信息:

# mkfs.ext3-c/dev/hda1代码表示使用-c在创建文件系统前检查坏道的硬盘。

这个操作已经很清楚地告知我们可以采用“mkfs.ext3-c”选项用“read-only”方式检查硬盘。这个命令会在格式化硬盘时检查硬盘,并标出错误的硬盘“block”。用这个方法格式化硬盘,需要有相当大的耐心,因为命令运行后,会一个个用读的方式检查硬盘。

阅读剩余
THE END