命令格式

badblocks [-svw][-b <区块大小>][-o <输出文件>][磁盘装置][磁盘区块数 [启始区块]]

典型的命令如下

# 写测试, 数据安全
sudo badblocks -n -b -c -s /dev/sda -o hda-badblocks-list
# 写测试, 不保留数据
sudo badblocks -w -b -c -s /dev/sda -o hda-badblocks-list
# 从中途继续检测
sudo badblocks -w -b -c -s /dev/sda -o hda-badblocks-list

使用较大的-c能加快检测速度, 但是在大于某个数值之后, 速度就不再变化了.

$ sudo badblocks -wsv -b 4096 -c 1024 /dev/sdc2
Checking for bad blocks in read-write mode
From block 0 to 488345599
Testing with pattern 0xaa: done
Reading and comparing: done
Testing with pattern 0x55: done
Reading and comparing: 2.50%, 5:12 elapsed. (0/0/0 errors)

实际测试了一块通过USB3连接的ST2000LM003, 测一轮(0xaa)的时间需要10个小时

$ sudo badblocks -wsv -b 4096 -c 1024 /dev/sdc2
Checking for bad blocks in read-write mode
From block 0 to 488345599
Testing with pattern 0xaa: done
Reading and comparing: done
Testing with pattern 0x55: 14.60% done, 11:32:20 elapsed. (0/0/0 errors)

各参数的含义:

-b block-size
    以字节为单位, 指定区块的大小, 注意这是指每次的读(写)大小, 修改并不影响总的读(写)量
-c number of blocks
    每一次检测区块的数目。默认值是16。增加这个数目可以增加检测 坏块 的效率可同时也会增加内存的耗费。 Badblocks 命令在只读模式下需要花费与每一次检测的区块相同数目的内存容量。在读写模式下,这个比例是两倍而在非破坏性的读写模式下,这个比例是三倍。 如果你将参数“num-of-blocks”设置太大的话, badblocks 将会在分派缓存时会因为一个内存溢出错误而立即退出。当然如果你在非破坏性的读写模式下将该值设置得过低,那么在一个不稳定的磁盘上的有问题 的区块也许会因为磁盘的磁道缓冲的作用而不被检测出来。
-f
    正常情况下,badblocks命令不会在一个已经激活的设备上读写模式或者是非破坏性的读写模式的检测,因为这可能会导致系统的崩溃。 使用 -f 标志可以使这种情况强制执行,但是最好不要在正常的情况下使用它。如果/etc/mtab文件发生了错误,而设备实际上并没有被激活的时候,这个 参数才会是安全的。
-i input_file
    读入一个已知的坏块列表。 Badblocks 命令将会跳过对这些已知是坏块的区块检查。如果 input_file 参数是“-”,则列表从标准输入读入。 在这个列表中列举出的区块也会在 新的 坏道记录文件或者坏道记录输出时被忽略掉。 dumpe2fs(8) 的 -b 选项能够在一个已有的文件系统中得到被标记为坏块的列表,而且已经做成了符合这个选项的格式。
-o output_file
    将坏块的列表写到指定的文件中。如果没有这个选项, badblocks 命令会在标准输出中输出这个列表。其格式是与 e2fsck(8) 或者 mke2fs(8). 的 -l 选项的要求相适应的。
-p num_passes
    重复的扫描磁盘,直到重复“num_passes”遍磁盘扫描后也没有发现新的区块后结束。 默认值是0。表示 badblocks 命令成功执行一遍扫描后就会结束。
-n
    使用非破坏性的读写模式。默认值是非破坏性的只读模式测试。这个选项不能与 -w 选项一起使用,因为它们是互斥的。
-s
    通过输出正在被检测的区块的号码以表示检测进程。
-v
    混杂模式检测。
-w
    使用写模式测试. 这个参数会破坏硬盘上的原有数据. 通过使用这个选项 badblocks 通过往每个区块上写入一些特定的字符(0xaa,0x55,0xff,0x00),读出来后再比较其内容,决定是否为坏块。 这个选项不能与 -n 选项一起使用,因为它们是互斥的。

使用badblocks检测坏块的更多相关文章

  1. 对Oracle数据库坏块的理解

    1.物理坏块和逻辑坏块 在数据库中有一个概念叫做数据块的一致性,Oracle的数据块的一致性包括了两个层次:物理一致性和逻辑一致性,如果一个数据块在这两个层次上存在不一致性,那就对应到了我们今天要要说 ...

  2. ORA-01578和ORA-26040--NOLOGGING操作引起的坏块-错误解释和解决方案(文档ID 1623284.1)

    ORA-01578和ORA-26040--NOLOGGING操作引起的坏块-错误解释和解决方案(文档ID 1623284.1) (一)NOLOGGING操作引起的坏块(ORA-01578和ORA-26 ...

  3. Oracle 处理坏块

    本文主要介绍如何去处理在Oracle数据库中出现坏块的问题,对于坏块产生在不同的对象上,处理的方法会有所不同,本文将大致对这些方法做一些介绍.因为数据库运行时间长了,由于硬件设备的老化,出现坏块的几率 ...

  4. nand flash 的oob 及坏块管理

    0.NAND的操作管理方式      NAND FLASH的管理方式:以三星FLASH为例,一片Nand flash为一个设备(device),1 (Device) = xxxx (Blocks),1 ...

  5. nand flash坏块管理OOB,BBT,ECC

    转:http://www.cnblogs.com/elect-fans/archive/2012/05/14/2500643.html 0.NAND的操作管理方式 NAND FLASH的管理方式:以三 ...

  6. Oracle - 坏块修复(一)

    一.概述 本文将介绍如何模拟坏块,以及出现坏块该如何修复.实验分为以下几个步骤. 1. 表出现坏块 2. 索引出现坏块 二.环境准备 本实验都是在oracle 11G归档模式下进行. 1. 准备相关表 ...

  7. [转]RMAN检测数据库坏块

    backup validate check logical database; select * from v$database_block_corruption; RMAN> backup v ...

  8. STM32下FatFs的移植,实现了坏块管理,硬件ECC,ECC纠错,并进行擦写均衡分析

    最近因项目需要,做一个数据采集的单片机平台.需要移植 FatFs .现在把最后成果贴上来. 1.摘要 在 STM32 单片机上,成功移植 FatFs 0.12b,使用的 Nand Flash 芯片为 ...

  9. Oracle corrupt block(坏块) 详解

    转自:http://blog.csdn.net/tianlesoftware/article/details/5024966 一. 坏块说明 1.1 相关链接 在看坏块之前,先看几个相关的链接,在后面 ...

随机推荐

  1. ProDinner

    ylbtech-dbs:ProDinner A, 数据库关系图 返回顶部 4, 点餐关系图 3, 留言图 1, 用户角色关系图 0, B,SQL脚本返回顶部 2, use master go --ki ...

  2. JDBC 查询的三大参数

    本文转载至 http://blog.csdn.net/turkeyzhou/article/details/5115228 DBC1.0 .JDBC2.0 .JDBC3.0 中分别用以下方法创建Sta ...

  3. c# 正则表达式笔记

    估计要写几天 看得一个不错的正则教程包括字符串教程 C#字符串和正则表达式参考手册.pdf 正则所需要的命名空间是 using System.Text.RegularExpressions 它包含了8 ...

  4. [PowerShell Utils] Create a list of virtual machines based on configuration read from a CSV file in Hyper-V

    Hello everyone, this is the third post of the series. .   Background =============== In my solution, ...

  5. html与css架构的一点体验

    css本身,可以说是一门非常简单而容易入门的语言.制作一个页面,或者制作一个小企业站,对于css的要求都是非常低的.只要熟悉语法,通过英文单词的含义猜,都基本可以拼出一套样式.更何况市面上还有各种各样 ...

  6. layer.msg();怎么关闭

    var index = layer.msg(); $.ajax("","",function(){ layer.close(index) })

  7. Java对象的序列化和反序列化源码阅读

    前言 序列化和反序列化看起来用的不多,但用起来就很关键,因为稍一不注意就会出现问题.序列化的应用场景在哪里?当然是数据存储和传输.比如缓存,需要将对象复刻到硬盘存储,即使断电也可以重新反序列化恢复.下 ...

  8. Cognos11第三方权限认证之OpenDJ

      一.安装OpenDJ 安装java环境,配置OPENDJ_JAVA_HOME环境变量指向java,然后傻瓜安装,出现下面的界面则说明安装成功 注意安装的过程中会指定管理用户cn的密码,默认的cn是 ...

  9. 个人知识点总结——Java并发

    Java并发实在是一个非常深的问题,这里仅仅简单记录一下Java并发的知识点.水太深.假设不花大量的时间感觉全然hold不住,可是眼下的精力全然不够,兴趣也不在这 什么是线程安全性 某个类的行为和其规 ...

  10. Android短信收到,语音播报

    发送短信功能界面 /** * 发送短信Demo * * @description: * @author ldm * @date 2016-4-22 上午9:07:53 */ public class ...