Linux 磁盘坏道的识别与处理-linux运维

badblocks 扫描前必须关机或卸载分区

直接在挂载的文件系统上运行 badblocks 可能导致误报,甚至破坏数据一致性。Linux 内核缓存和文件系统元数据操作会让磁盘处于“活跃”状态,而 badblocks 的底层读写会与之冲突。

正确做法是:从 Live USB 启动,或先卸载目标分区(如 umount /dev/sdb1),再执行扫描。若无法卸载(比如根分区),只能用只读模式初步筛查:badblocks -n -v /dev/sdb1(-n 表示非破坏性读写测试,但仍建议离线操作)。

  • 对 SSD 不推荐使用 badblocks,其磨损均衡机制会让物理地址映射失效,结果无意义
  • -c 64 可提升扫描效率(每次读取 64 个块),但需确保内存充足,否则可能触发 OOM killer
  • 扫描耗时极长(TB 级硬盘常需数小时),建议加 -s 显示进度,避免误判为卡死

smartctl 输出中重点关注 Reallocated_Sector_Ct 和 Current_Pending_Sector

smartctl -a /dev/sda 的输出里,这两个值非零就说明磁盘已出现不可逆硬件缺陷。前者表示坏扇区已被控制器替换,后者表示有扇区读取失败、尚未重映射——后者更危险,因为下次访问可能直接超时或 I/O 错误。

注意区分“自检通过”和“SMART 状态正常”:有些盘即使 SMART overall-health self-assessment test result: PASSED,但 Reallocated_Sector_Ct 已增长,说明问题正在发生,只是还没到阈值。

  • 厂商自定义属性名可能不同(如 WD 用 Reallocation_Event_Count),需结合 smartctl -x /dev/sda 查看原始值
  • 如果 Current_Pending_Sector 持续增加,哪怕只有 1~2 个,也应立即备份并更换磁盘
  • UDMA_CRC_Error_Count 高通常指向线缆或接口接触不良,不是盘本身坏道,别误判

ext4 文件系统下用 e2fsck 标记坏块并跳过使用

发现坏道后,不能只靠硬件层重映射。Linux 文件系统需要知道哪些逻辑块不可用,否则仍可能分配给新文件。用 e2fsck -c /dev/sdb1 可调用 badblocks 并将结果写入 ext4 的坏块 inode 中;加 -k 可保留原有坏块信息不覆盖。

夏夕资源网专注于CMS网站模板,主流语言整站网站源码下载,网站建设相关教程分享,好用的软件素材整合下载,提供一站式便捷自助服务。
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需!
7. 如遇到加密压缩包,默认解压密码为"zy.lucklyus.top",如遇到无法解压的请联系管理员!
夏夕资源网-网站模板_免费源码_资源素材 » Linux 磁盘坏道的识别与处理-linux运维
在线时间:12:00 - 22:00
关注微信公众号:微信公众号
站长邮箱:[email protected]
  • 运营天数: 1392+
  • 资源总数: 47989+
  • 用户总数: 1+
  • 今日更新: 0+
  • 访问次数: 4003655+
  • 本周更新: 0+
  • 最后更新: 2026-03-16

本站指数

×
  • 运营天数: 1392+
  • 资源总数: 47989+
  • 用户总数: 1+
  • 今日更新: 0+
  • 访问次数: 4003655+
  • 本周更新: 0+
  • 最后更新: 2026-03-16