行业资讯
Linux 磁盘检测必备:badblocks 命令超详细教程|坏道检测与屏蔽全攻略
Linux 学习资料 https://pan.baidu.com/s/1A6qqBk2ViE_Le2cQjSowkQ?pwd7uz8一、badblocks 命令简介badblocks是 Linux/Unix 系统中用于 ** 检测磁盘或存储设备物理坏块坏道** 的专业命令行工具。硬盘属于损耗性硬件长期使用后易出现物理坏道会直接导致数据丢失、文件损坏、系统卡顿死机等问题。badblocks可以精准扫描并定位损坏扇区检测结果可配合文件系统工具实现坏块屏蔽保障磁盘临时可用与数据安全。核心功能只读检测磁盘坏块安全无风险非破坏性读写测试不丢失数据破坏性深度测试全新 / 废弃磁盘专用输出坏块列表供 e2fsck、mke2fs 自动屏蔽二、语法格式bash运行badblocks [选项] 设备 [结束块 [起始块]]参数说明设备必须指定如/dev/sda1/dev/nvme0n1p2结束块检测结束块号可选起始块检测起始块号可选需与结束块同时使用使用规则只写设备扫描整个磁盘 / 分区设备 结束块从 0 块检测到指定块设备 结束块 起始块检测指定区间三、常用选项及说明表格选项说明-b 字节数指定磁盘块大小如 4096、512需与文件系统匹配-c 块数每次测试的块数量默认 64越大速度越快-o 文件将坏块结果保存到文件供其他工具使用-s显示检测进度百分比-v详细输出模式-w破坏性写入测试会清空所有数据-n非破坏性读写测试安全但较慢-f强制对已挂载设备进行写测试极其危险四、示例用法4.1 只读扫描整个分区安全推荐块大小 4KB每次检测 16 块显示进度 详情结果输出到文件bash运行sudo badblocks -b 4096 -c 16 -sv -o badblocks_list.txt /dev/sdb14.2 扫描指定区块范围扫描/dev/sda第 100000 ~ 200000 块bash运行sudo badblocks -b 512 -c 64 -sv /dev/sda 200000 1000004.3 非破坏性读写测试安全检测不破坏原有数据适合重要数据磁盘bash运行sudo badblocks -b 4096 -c 64 -svn /dev/sdc14.4 破坏性深度测试数据会丢失全新盘 / 报废盘彻底检测bash运行sudo badblocks -b 4096 -c 64 -svw /dev/sdd4.5 配合文件系统工具使用格式化时自动检测坏块ext4bash运行# 只读检测 sudo mkfs.ext4 -c /dev/sdb1 # 读写检测更彻底 sudo mkfs.ext4 -cc /dev/sdb1让 e2fsck 跳过已知坏块bash运行sudo e2fsck -l badblocks_list.txt /dev/sdb1五、注意事项必须 root 权限检测磁盘几乎都需要sudo且设备路径不能写错。数据安全红线-w会清空所有数据仅新盘 / 可格式化磁盘使用-n相对安全但断电仍可能损坏数据重要数据磁盘务必先卸载umount再检测禁止在已挂载分区执行写测试极易导致文件系统崩溃、数据不可逆损坏。耗时与性能读写测试属于密集 I/O 操作大磁盘可能耗时数小时建议在空闲时执行。坏块只能临时屏蔽物理坏道无法修复badblocks仅用于临时规避出现坏块建议尽早备份并更换硬盘。六、总结badblocks是 Linux 下磁盘健康检测的核心工具尤其适合服务器、U 盘、移动硬盘坏道排查。 掌握只读 / 非破坏性测试即可满足绝大多数运维场景配合e2fsck可有效延长故障磁盘临时使用寿命。安全原则先备份、再卸载、后检测慎用 -w 参数Linux 学习资料https://pan.baidu.com/s/1A6qqBk2ViE_Le2cQjSowkQ?pwd7uz8
郑州网站建设
网页设计
企业官网