确保硬盘健康是维护系统稳定性的关键任务之一,badblocks工具专门用于检测硬盘设备上的坏道,本文基于RockyLinux8系统,使用badblocks工具来检测和识别硬盘坏道。
通过以下命令来安装badblocks命令
|
1 |
dnf install e2fsprogs -y |
命令参数
-b block_size:指定块大小。如使用4K块大小检测:badblocks -b 4096 /dev/sda
-i input_file:从文件读取已知坏块列表(跳过这些块的检测)。如:badblocks -i existing_bad.txt /dev/sda
-o output_file:将检测到的坏块输出到文件。如:badblocks -o badblocks.log /dev/sda
-s:显示检测进度。如:badblocks -sv /dev/sda
-v:详细模式。如:badblocks -svo existing_bad.txt /dev/sda
-n:非破坏性读写测试,默认情况下,仅执行非破坏性只读测试,不能与-w选项同时使用。
-w:破坏性写入测试,会擦除硬盘数据,请在全新硬盘上使用。
-f:强制在已挂载设备上运行(危险),默认会拒绝对已挂载的设备执行读写操作测试。如:badblocks -nf /dev/sda
-B:使用缓冲I/O(默认使用直接I/O)。
-X:专家模式(跳过某些安全确认),仅供e2fsck(8)和mke2fs(8)使用。
-c blocks_at_once:每次测试的区块数量(默认16),如每次测试64个块:badblocks -c 64 -v /dev/sda
-d delay_factor_between_reads:控制在读取操作之间添加延迟的行为,如果指定了这个参数并且值不为零,当读取操作没有遇到错误时,badblocks 会在两次读取操作之间插入一个延迟。
-e max_bad_blocks:最大允许的坏块数(默认0)。如发现100个快坏后停止:badblocks -e 100 -v /dev/sda
-p num_passes:重复扫描次数(默认0)。如重复扫描3次:badblocks -p 3 -v /dev/sda
-t test_pattern:指定测试模式。
first_block和last_block:可选参数,检测起始块和最后一个块,二者需一起使用。如检测500000到1000000号块:badblocks -v /dev/sda 1000000 500000
badblocks是Linux系统不可或缺的磁盘检测工具。结合实际场景,使用不同参数组合,可与smartctl命令结合使用。
原文链接:Linux硬盘坏道检测命令之badblocks,转载请注明来源!




