linux检查硬盘损坏的扇区和区块

作者:简简单单 2014-11-30

功能说明:检查磁盘装置中损坏的区块。

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

补充说明:执行指令时须指定所要检查的磁盘装置,及此装置的磁盘区块数。

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

步骤:1 使用fdisk命令识别硬盘信息

# sudo fdisk -l

 

步骤:2 扫描硬盘的损坏扇区或区块

# sudo badblocks -v /dev/sdb > /tmp/bad-blocks.txt
只需将“/dev/sdb”替换为自己机器的硬盘/分区。执行完成上述命令后,一个名为“bad-blocks”文本文档将会在/tmp下创建,它将包含所有的损坏区块。

例如:

linux检查硬盘损坏的扇区和区块

步骤:3 提示 操作系统不要使用损坏区块存储

扫描完成后,如果损坏区块被发现了,然后通过e2fsck命令使用“bad-blocks.txt”,强迫操作系统不使用这些损坏的区块存储数据。

# sudo e2fsck -l /tmp/bad-blocks.txt  /dev/sdb
注意:在运行e2fsck命令前,请保证设备没有被挂载。
关于badblocks和e2fsck命令的更多帮助,请参考下列man页面
# man badblocks
# man e2fsck

相关文章

精彩推荐