IT技术博客大学习 共学习 共进步
全部 移动开发 后端 数据库 AI 算法 安全 DevOps 前端 设计 开发者

ubuntu linux 下硬盘坏道的检测与修复

LinuxByte 2012-01-27 17:45:13 累计浏览 3,034 次
本机暂存

    最近从服务器上淘汰下一个1T 的硬盘,不过在服务器上工作的不是很好,所以得先检测一下硬盘是否有坏道。

     ubuntu 自带的磁盘实用工具是个很直观的查看硬盘健康状况的工具。

     linux 坏道

    不过如果你和我一样更喜欢用命令行,那么请关注一下badblocks 命令。

    检查前确定你已经卸载要检查的磁盘,如果没用请umount 之。

     对整个磁盘进行read-only检测:

sudo badblocks -s  -v -c 32 /dev/sdb

    因为需要对磁盘进行检测,所以速度非常缓慢,在检测过程中注意不要断电,不要对硬盘进行任何操作,不要移除硬盘,不要物理损伤,不要震动等。

    检测过程是可以中途终止,也可以指定区块重新开始。

sudo badblock -s -v -c 32  /dev/sd*   976762583 125637824 (注意此处结束区块在前,起始区块在后)

    badblocks 用法详细说明

     语 法:

       badblocks [-svw][-b < 区块大小>][-o < 输出文件>][磁盘装置][磁盘区块数][启始区块]

    参 数:

       -b< 区块大小> 指定磁盘的区块大小,单位为字节。

       -o< 输出文件> 将检查的结果写入指定的输出文件。

       -c< 检查区块数目> 每一次检测区块的数目。默认值是16。增加这个数目可以增加检测 块的效率可同时也会增加内存的耗费。

       -s 在检查时显示进度。

       -v 执行时显示详细的信息。

       -w 在检查时,执行写入测试。

       [磁盘装置] 指定要检查的磁盘装置。

       [磁盘区块数] 指定磁盘装置的区块总数。

       [启始区块] 指定要从哪个区块开始检查。

    修复坏道

     如果只是逻辑坏道,你可以

     直接fsck

fsck -a /dev/sdb

    或者格式化

    如果是物理坏道,那么兄弟你真的悲剧了。你需要

     a.备份硬盘数据

     b.删除所有硬盘分区

     c.根据坏块位置以及大小,估算出所占空间。然后重新分区隔离损坏部分。btw:坏道是会扩散的,所以尽可能隔离掉多些空间。

同分类推荐文章

  1. How to Set Up Homebrew Tap for Private CLI Tools: A Complete Guide (2026-05-27 02:13:03)
  2. WARNING: detected duplicate paths to the same disk导致crs无法正常启动故障解决 (2026-05-24 22:24:49)
  3. Terraform 极简入门:从 AWS-CLI 到基础设施即代码(IaC) (2026-05-20 08:00:00)

查看更多 DevOps 文章 →

建议继续学习

  1. 检查nginx配置,重载配置以及重启的方法 (累计阅读 10,794)
  2. 找回linux丢失的磁盘空间 (累计阅读 8,485)
  3. Linux find命令的速度 (累计阅读 6,029)
  4. Ubuntu 下Hash校验和不符问题的解决 (累计阅读 5,507)
  5. 为什么我认为每个穷网站开发程序员都应该用Linux[工具篇] (累计阅读 5,447)
  6. 为什么Linux不需要磁盘碎片整理 (累计阅读 5,295)
  7. 记一下我的ubuntu升级到10.04时遇到都问题 (累计阅读 4,806)
  8. Ubuntu中apt-get列出的软件包前面的字母标识含义 (累计阅读 4,527)
  9. 解决 ubuntu 的 /etc/hosts 重启就被还原 (累计阅读 4,386)
  10. linux磁盘管理学习笔记(上) (累计阅读 4,236)