带有示例的 Linux 中的 badblocks 命令
Linux 中的 badblock命令用于搜索设备中的坏块(已损坏且无法再可靠使用的内存块)。它默认设置为以非破坏性只读模式运行。
句法:
badblocks [-b block_size] [-i input_file] [-o output_file] [-svwnf]
[-c blocks_at_once] [-d delay_factor_between_reads] [-e max_bad_blocks]
[-p num_passes] [-t test_pattern [-t test_pattern [...]]]
device [last_block [first_block]]
选项:
- badblocks -s :用于通过显示扫描块的百分比来显示测试的当前进度。
例子:
sudo badblocks -s /dev/sdb1
- badblocks -b:它允许以字节为单位指定块大小(通常是 512 的倍数)(默认为 1024 字节)。
例子:
sudo badblocks -sb 2048 /dev/sdb1
- badblocks -c :用于指定一次要测试的块数(默认为 64 个块)。
例子 :
sudo badblocks -sc 5000 /dev/sdb1
- badblocks -f:(不推荐)如果设备已挂载,badblocks 不会在设备上运行其测试。 -f选项将强制它运行测试,即使设备已挂载,这可能会损坏文件系统。
例子 :
sudo badblocks -sf /dev/sdb1
- badblocks -o:用于将坏块列表写入文件而不是标准输出。
例子:
sudo badblocks -o out.txt /dev/sdb1
- badblocks -i :它用于提供一个输入文件,其中包含设备中已知坏块的列表。这将在测试时跳过已知的坏块。
例子:
sudo badblocks -i ./out.txt /dev/sdb1
- badblocks -n :用于在设备上执行非破坏性读写测试。它不会擦除设备上的数据。
例子:
sudo badblocks -sn /dev/sdb1
- badblocks -w :它通过在每个块上写入一些模式并比较它们来在设备上执行读写测试。与-n 选项相比,它将擦除设备上的数据并以更快的速度进行测试处理。
例子:
sudo badblocks -sw /dev/sdb1
指定要测试的块:
- 最后一个块:可以通过将最后一个块作为设备名称后的选项来指定。它将测试从第一个块到指定的最后一个块的块。
例子:
sudo badblocks -s /dev/sdb1 1000
- 第一个块:可以通过在最后一个块之后将起始块号作为选项传递给 test 来指定。
例子:
sudo badblocks -s /dev/sdb1 5000 100