badblocks是Unix-like操作系统下用来检查类似于磁盘分区这样的设备上是否存在坏道的命令行程序,其功能类似于Microsoft Windows或DOS操作系统中的SCANDISK或CHKDSK。运行后badblocks会给出一份设备上存在问题的区块(block)列表。
badblocks是ext2/3/4文件系统工具集e2fsprogs的一部分。
badblocks在大多数情况下需要配合e2fsck或mke2fs使用,此时需要专门指定合适的"-b"参数,也就是badblock所读取的区块大小(block-size)。因此,用户应该通过执行e2fsck或mke2fs时加上"-c"参数来调用badblocks,而不是直接使用badblocks。
多数情况下badblocks会透过e2fsck的"-c"
参数调用,防止数据被写入坏道中。透过扫描时所产生的坏道清单在分配空间时避免使用到坏道部分。这项测试可以透过只读("-c"
)或非破坏性写入("-cc"
)进行。
运行dumpe2fs -b
可以列出由e2fsck
或>tune2fs
所纪录的坏道清单。
badblocks -nvs /dev/sdb
这个指令将会对 "sdb"进行非破坏性写入测试以及显示检查进度。
badblocks -wvs /dev/sdb6
这个指令将会对"sdb"的第6硬盘分区进行破坏性写入测试(-w = 写入模式),对分区写入4种不同的方式,并写验证其正确性。过程中将会显示检查进度(-s = 显示,-v = 详细数据). 指令所运行之分区数据将会被覆盖。
badblocks -wvsb 4096 /dev/sdb
这指令行为与上则相同,不过对象为整个硬盘以及指定区块大小为4096。将会破坏MBR分区及数据。新一点的硬盘并不会显示损坏的扇区,其原因为在备用扇区尚存时将自动重新定位至备用扇区,但是运行在新硬盘上会测试硬盘表面,解析S.M.A.R.T.信息后将会显示最终所配置的扇区数量。
使用-w
参数时,将会把原先硬盘的所有数据抹除掉。