使用 badblocks 命令处理硬盘坏道

对硬盘数据的操作存在风险,请谨慎操作

扫描硬盘坏道

命令:

badblocks /dev/sdXX [-s -b4096 -o err.log]

常用命令解释:
-s:在屏幕上显示进度
-b:每次扫描的块大小
-o:将错误输出到文件

利用硬盘的重分配特性修复坏道

硬盘上的芯片存有一个 GList,里面存储着盘面上的坏道信息,当读写到其记录的地址时会自动重映射另一个地址来代替损坏的区域。而往其中添加内容很简单:只要往坏道上写数据(读不行),硬盘会自动重映射。

警告:本操作会覆盖硬盘目标区域的数据,请谨慎使用

技巧:可以使用 dd 命令使用 conv=noerror, sync 参数先备份目标区域的数据,在修复后用 dd 写回,具体请参阅 man dd

命令:

badblocks -w [-f] /dev/sdXX [-s -b4096] end start

常用命令解释:
-w:写入命令,通过在坏道地址强制写入来让硬盘自动重映射。
-f:强制写入,在已确定目标不被系统读写而-w 仍然拒绝写入时使用。这个参数应该尽量避免!
end, start:强制写入的开始和终止块地址,与-b 制定的大小相配和。

其他更为深入的使用方式请参阅 man badblocks

来源声明

blog/badblocks.txt · 最后更改: 2013/04/29 08:04 (外部编辑)

更新时间: