文档教程【免费下载链接】linux-commandLinux命令大全搜索工具内容包含Linux命令手册、详解、学习、搜集。https://git.io/linux项目地址https://gitcode.com/GitHub_Trending/linux/linux-command点击查看免费下载本篇技术指南围绕 Linux 命令速查仓库 command/badblocks.md 展开系统讲解badblocks命令的语法、选项、参数与实战用法并深入介绍其与fsck、e2fsck、mkfs等磁盘维护工具的协作方式帮助你掌握硬盘坏道定位、屏蔽与格式化前预检的完整方案。badblocks 是什么硬盘是典型的损耗设备使用一段时间后可能出现坏道等物理故障。出现坏道后如果不及时处理坏道会持续扩散造成频繁死机与数据丢失。最稳妥的做法是更换磁盘但在临时场景下应当尽快定位并屏蔽坏道所在扇区避免读写操作触碰这些区域。badblocks 命令正是用于查找磁盘中损坏区块bad block的工具它通过扫描磁盘的每一个区块来判断哪些位置已经损坏并将结果输出到指定文件为后续的文件系统检查与格式化操作提供坏道清单。在本仓库的 README.md 中badblocks被归类在「磁盘维护」命令分类下与fdisk、e2fsck、fsck、mkfs等命令并列是 Linux 磁盘健康管理的基础工具之一。语法与参数说明badblocks的基本语法如下badblocks(选项)(参数)选项-b区块大小指定磁盘的区块大小单位为字节 -o输出文件将检查的结果写入指定的输出文件 -s在检查时显示进度 -v执行时显示详细的信息 -w在检查时执行写入测试。各选项的作用说明如下选项含义使用要点-b 区块大小指定扫描时使用的区块大小字节应与文件系统实际的块大小如 4096保持一致避免误判-o 输出文件把坏道区块号写入指定文件输出文件为纯文本每行一个区块号供后续fsck -l、e2fsck -l直接引用-s检查时显示进度适合长时间扫描时掌握任务状态-v显示详细信息输出每个被检查区块的状态便于观察-w执行写入测试通过写入并回读数据判断坏道会破坏数据务必先备份参数* 磁盘装置指定要检查的磁盘装置 * 磁盘区块数指定磁盘装置的区块总数 * 起始区块指定要从哪个区块开始检查。三个位置参数按「设备 → 区块总数 → 起始区块」的顺序排列。其中「磁盘区块数」与「起始区块」均为可选参数当指定了它们时badblocks只扫描起始区块到区块总数之间的区间这在只需要针对可疑区域复查时非常高效。实战一全盘扫描并输出坏道清单以 4096 字节为一个区块对每个区块检查 16 次并将结果输出到hda-badblocks-list文件中badblocks -b 4096 -c 16 /dev/hda1 -o hda-badblocks-list说明-c 次数指定每个区块的检查次数即原文档实例中「每一个 block 检查 16 次」的由来次数越多对坏道的检出越可靠但耗时也越长。hda-badblocks-list是一个文本文件每行记录一个坏道区块号内容大致如下cat hda-badblocks-list 51249 51250 51251 51253 51254 …… 61245 ……这份清单可以直接保存备用作为后续屏蔽坏道的依据。实战二针对可疑区块的局部复查全盘扫描结果出来后往往需要对可疑区域做多次复检以确认坏道的真实范围。下面的命令以 4096 字节为一个区块、每个区块检查 1 次从第 51000 个区块开始、到第 63000 个区块结束结果输出到hda-badblocks-list.1文件badblocks -b 4096 -c 1 /dev/hda1 -o hda-badblocks-list.1 63000 51000指定了检查区间后耗时明显缩短检查时硬盘在短时间内就会产生明显的读写声响。由于每次检查的条件如磁盘负载、缓存状态略有不同输出的结果也不会完全一致因此建议对可疑区域重复几次同样的操作每次结果略有差异属正常现象。经过多轮复查后可以汇总结出最终的hda-badblock-list.final文件作为可靠的坏道清单。将坏道清单交给 fsck跳过坏块继续检查badblocks本身只在输出文件中标记坏道信息不会直接修改文件系统。若希望在文件系统检查fsck时跳过这些坏块、避免反复触碰损坏区域可以使用fsck的-l参数加载坏道清单fsck.ext3 -l /tmp/hda-badblock-list.final /dev/hda1这样fsck在检查文件系统时就会把清单中的区块视为坏块并予以跳过。关于fsck命令的更多用法如-y自动应答、-t指定文件系统类型等可参考仓库中的 command/fsck.md。值得一提的是e2fsck的-c选项可以直接「一并执行 badblocks以标示损坏的区块」而-l 文件/-L 文件选项则可以分别「将文件中指定的区块加到损坏区块列表」或「先清除损坏区块列表再加入指定区块」与badblocks的文本输出天然衔接。详见 command/e2fsck.md。创建文件系统前预检坏道在格式化磁盘之前先检测坏道可以避免把文件系统建立在损坏区域之上。badblocks可以随e2fsck和mke2fs的-c选项一起运行对 ext3 文件系统同样适用在创建文件系统前先完成坏道检测mkfs.ext3 -c /dev/hda1mkfs.ext3 -c采用只读read-only方式检查硬盘会在格式化时逐个用读取的方式扫描每个区块并自动标记出错误的区块。用这种方式格式化硬盘需要相当大的耐心因为整个坏道检测过程是逐块进行的耗时明显长于普通格式化。说明mke2fs的-c选项即「检查是否有损坏的区块」-l 文件选项可「从指定的文件中读取损坏区块的信息」——也就是说你完全可以把前面badblocks输出的hda-badblock-list.final直接交给mke2fs使用而不是重复扫描。相关选项细节可参见 command/mke2fs.md。通用格式化工具mkfs同样提供-c选项用于「在制作文件系统前检查该分区是否有坏轨」参见 command/mkfs.md。坏道修复流程小结结合本仓库 command/hdparm.md 中「硬盘坏道修复方法」一节的整理一套完整的坏道定位与屏蔽流程如下检查smartctl -l selftest /dev/sda # 查看硬盘自检日志初步定位异常 卸载umount /dev/sda* # 卸载分区避免检测时写入造成干扰 修复badblocks /dev/sda # 扫描坏道输出清单并据此屏蔽实际操作时注意检测前务必备份重要数据-w写入测试会破坏分区内数据对正在使用中的分区做检测建议先umount卸载否则结果可能失真全盘扫描耗时长可以结合-s进度选项监控状态或利用「区块数 起始区块」参数只针对可疑区间复检将最终坏道清单保存为xxx.final文件通过fsck -l或e2fsck -l在检查时跳过坏块或在mkfs -c格式化时一并处理。这样一套「扫描 → 复检 → 清单落地 → 检查/格式化时引用」的流程就是 Linux 运维中应对硬盘坏道的标准操作闭环也是本仓库 command/badblocks.md 文档所承载的核心实战价值。赞分享文档教程【免费下载链接】linux-commandLinux命令大全搜索工具内容包含Linux命令手册、详解、学习、搜集。https://git.io/linux项目地址https://gitcode.com/GitHub_Trending/linux/linux-command点击查看免费下载相关推荐OpenProject解决方案如何构建企业级开源项目管理平台实现团队协作转型OpenProject解决方案如何构建企业级开源项目管理平台实现团队协作转型 在数字化转型浪潮中技术团队面临的核心挑战已从单纯的技术实现转向复杂项目的高效协后端前端项目管理企业应用协同办公Linux 光盘刻录命令 cdrecord 实战指南linux-command 命令手册详解Linux 光盘刻录命令 cdrecord 实战指南linux command 命令手册详解 本篇指南聚焦 Linux 系统下的经典刻录命令 cdrecor文档教程Linux 磁盘空间排查实战df 命令全面详解与输出解读Linux 磁盘空间排查实战df 命令全面详解与输出解读 df disk free是 Linux 系统管理员与运维工程师使用频率最高的磁盘监控命令之一用文档教程上一篇Chunky 项目常见问题解决方案下一篇Citizens2 项目常见问题解决方案创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
阅读完成 · 觉得有帮助?