UP | HOME

badblocks,硬盘坏道检测工具

1 badblocks安装。

badblocks被打包在e2fsprogs安装包中。 CentOS下:

$yum install e2fsprogs

#Ubuntu下:
$apt-get install e2fsprogs

2 badblocks使用

实例


#查看系统当前硬盘信息。

$fdisk -l

例如,显示信息如下:

Disk /dev/sda: 298.9 GB, 298999349248 bytes
255 heads, 63 sectors/track, 36351 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

  Device Boot      Start         End      Blocks   Id  System
/dev/sda1               1         262     2104483+  82  Linux swap / Solaris
/dev/sda2   *         263       32898   262148670   83  Linux
/dev/sda3           32899       36351    27736222+  83  Linux

Disk /dev/sdb: 42.9 GB, 42949672960 bytes
64 heads, 32 sectors/track, 40960 cylinders
Units = cylinders of 2048 * 512 = 1048576 bytes

通过命令扫描硬盘。

$badblocks -s -v /dev/sdnx

其中n表示硬盘设备名,x表示硬盘对应的分区号。例如需要检查"/dev/sda2",执行命令如下:

$badblocks -s -v /dev/sda2

Checking blocks 0 to 30681000
Checking for bad blocks (read-only test): 306809600674112/ 306810000000
30680964
30680965
30680966
30680967
30680968
30680969
30680970
30680971
30680972
30680973
...
done
Pass completed, 37 bad blocks found.其中,“37 bad blocks found”表示硬盘存在37个坏块。

3 附录

  1. badblock命令简介 badblock命令用于查找磁盘中损坏的区块。 电脑硬盘出现坏道后,如果不及时更换或进行技术处理,坏道就会越来越多,并会造成频繁死机和数据丢失。badblocks就是一个很好的检查坏道位置的工具。
  1. 常见案例与用法 查看当前系统的分区:

    [root@zcwyou ~]# lsblk 
    
    Bash
    
    输出结果如下:
    
    NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
    sr0 11:0 1 1024M 0 rom
    sda 8:0 0 100G 0 disk
    ├─sda2 8:2 0 4G 0 part [SWAP]
    ├─sda3 8:3 0 95.8G 0 part /
    └─sda1 8:1 0 200M 0 part /boot
    
    

linux-badblock命令常见案例与用法 2.1 检查分区

比如/dev/sda1

[root@zcwyou ~]# badblocks -s -v /dev/sda1

Bash

输出结果如下:
Checking blocks 0 to 204799
Checking for bad blocks (read-only test): done
Pass completed, 0 bad blocks found. (0/0/0 errors)

2.2 在格式化文件系统前检测坏道

[root@zcwyou ~]# mkfs.ext3 -c /dev/hda1

Bash

选项-c表示在格式化文件系统前检查坏道的硬盘。 2.3 指定检查参数

badblocks以4096的一个block,每一个block检查16次,将结果输出到badblockscheck.log

[root@zcwyou ~]# badblocks -b 4096 -c 16 /dev/sda1 -o badblockscheck.log

Bash

针对上述检查结果,指定可疑范围再检查一次,每个block再检查一次,由第51000 block开始,到63000 block结束。

[root@zcwyou ~]# badblocks -b 4096 -c 1 /dev/sda1 -o hda-badblocks-list.1 63000 51000

Bash

指定磁盘检查参数

  1. 总结

badblocks是Linux下常用的坏道修复工具。当你觉得硬盘上可能有坏道,或者是SMART数据显示有坏道的时候,都可以用badblocks来检查一下。