如何检查Linux磁盘坏道 badblocks检测工具使用

发布时间 - 2025-07-25 00:00:00    点击率:

badblocks 是 linux 下检测磁盘坏道的工具,使用时应先确认设备路径,再通过只读或写入方式扫描,并结合 e2fsck 标记坏道。1. 用 df -h 或 lsblk 确认磁盘设备如 /dev/sdb;2. 执行 sudo badblocks -sv /dev/sdb > bad_sectors.txt 进行只读扫描或加 -w 参数进行写入测试(慎用);3. 使用 sudo e2fsck -l bad_sectors.txt /dev/sdb 标记坏道,仅适用于 ext2/ext3/ext4 文件系统;4. 注意事项包括避免频繁写入测试、卸载分区后再运行、raid 成员盘可单独检测、ssd 不建议频繁写入测试。

Linux系统下,磁盘坏道的检测其实并不复杂,关键是要用对工具。badblocks 是一个专门用来扫描硬盘是否存在物理损坏区域(也就是常说的“坏道”)的命令行工具,它在大多数Linux发行版中默认都已安装。

下面我们就来看看怎么用 badblocks 来检查磁盘坏道。


1. 确认磁盘设备路径

在使用 badblocks 之前,首先要确认你要检测的磁盘对应的设备文件路径。常见的设备名像 /dev/sda/dev/sdb 这样的格式。可以通过以下命令查看当前系统挂载的磁盘情况:

df -h

或者列出所有块设备:

lsblk

如果你不确定哪个是目标磁盘,注意查看容量和挂载点信息。比如 /dev/sdb 可能是你外接的一块新硬盘,而 /dev/sda 很可能是系统盘。

⚠️ 注意:千万不要在系统正在使用的分区上直接运行读写测试,否则可能导致系统崩溃或数据丢失。


2. 使用 badblocks 检测坏道

基本语法如下:

sudo badblocks [选项] [设备]

常用选项说明:

  • -s:显示进度。
  • -v:详细输出模式。
  • -b:指定块大小(通常由文件系统决定,默认512字节)。
  • -p:如果发现坏块,重复测试几次以确认。
  • -w:进行写入测试(更彻底但也更危险)。

示例1:只读方式扫描磁盘

sudo badblocks -sv /dev/sdb > bad_sectors.txt

这条命令会以只读方式扫描 /dev/sdb 的所有扇区,并将结果保存到 bad_sectors.txt 文件中。

示例2:写入方式扫描磁盘(慎用)

sudo badblocks -swvp 3 /dev/sdb > bad_sectors.txt

这个命令会对磁盘执行3次写入并验证操作,可以更准确地发现潜在问题,但会破坏磁盘上的现有数据,所以一定要确保该磁盘没有重要数据或已经备份。


3. 结合 e2fsck 标记坏道

如果你打算修复磁盘并标记坏道,可以用 e2fsck 命令配合 badblocks 的输出来完成。

步骤如下:

  1. 首先运行 badblocks 并保存坏扇区列表:

    sudo badblocks -sv /dev/sdb > bad_sectors.txt
  2. 然后运行 e2fsck 标记这些坏块:

    sudo e2fsck -l bad_sectors.txt /dev/sdb

这样,系统就会知道哪些扇区有问题,以后不会再使用它们了。

⚠️ 注意:只有当磁盘使用的是 ext2/ext3/ext4 文件系统时,才推荐使用这种方式处理坏道。


4. 实际使用中的注意事项

  • 不要频繁写入测试:虽然 -w 参数能更全面地检测,但频繁使用会影响磁盘寿命,尤其是机械硬盘。
  • 最好在无数据盘上使用:特别是写入模式,避免误删重要数据。
  • 提前卸载磁盘分区:运行 badblocks 前,建议先用 umount 卸载对应磁盘的所有分区。
  • RAID 或 SSD 也适用吗?
    • RAID阵列中每个成员盘都可以单独检测。
    • SSD理论上也可以用 badblocks,但由于其磨损均衡机制,坏块管理更多依赖固件,不建议频繁使用写入测试。

基本上就这些。badblocks 虽然看起来简单,但如果用错了地方,反而可能带来麻烦。掌握好基本用法,结合实际场景选择合适参数,就能有效排查磁盘健康状况。


# linux  # 工具  # ai  # 数据丢失  # 坏道  # 文件系统  # 扇区  # 可以用  # 的是  # 是一个  # 就会  # 如果你  # 尤其是  # 就能 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: Laravel如何实现一对一模型关联?(Eloquent示例)  Win11关机界面怎么改_Win11自定义关机画面设置【工具】  音乐网站服务器如何优化API响应速度?  大学网站设计制作软件有哪些,如何将网站制作成自己app?  Laravel Eloquent访问器与修改器是什么_Laravel Accessors & Mutators数据处理技巧  Win11搜索不到蓝牙耳机怎么办 Win11蓝牙驱动更新修复【详解】  如何在沈阳梯子盘古建站优化SEO排名与功能模块?  如何快速搭建安全的FTP站点?  昵图网官网入口 昵图网素材平台官方入口  原生JS实现图片轮播切换效果  php读取心率传感器数据怎么弄_php获取max30100的心率值【指南】  如何在云指建站中生成FTP站点?  如何快速启动建站代理加盟业务?  百度浏览器ai对话怎么关 百度浏览器ai聊天窗口隐藏  Laravel如何处理表单验证?(Requests代码示例)  Laravel如何实现多表关联模型定义_Laravel多对多关系及中间表数据存取【方法】  Laravel用户密码怎么加密_Laravel Hash门面使用教程  免费的流程图制作网站有哪些,2025年教师初级职称申报网上流程?  如何用PHP快速搭建CMS系统?  Laravel怎么上传文件_Laravel图片上传及存储配置  矢量图网站制作软件,用千图网的一张矢量图做公司app首页,该网站并未说明版权等问题,这样做算不算侵权?应该如何解决?  零服务器AI建站解决方案:快速部署与云端平台低成本实践  JS去除重复并统计数量的实现方法  学生网站制作软件,一个12岁的学生写小说,应该去什么样的网站?  Laravel怎么写单元测试_PHPUnit在Laravel项目中的基础测试入门  Android滚轮选择时间控件使用详解  长沙做网站要多少钱,长沙国安网络怎么样?  JS弹性运动实现方法分析  大型企业网站制作流程,做网站需要注册公司吗?  Laravel怎么实现模型属性的自动加密  Android 常见的图片加载框架详细介绍  如何在万网开始建站?分步指南解析  美食网站链接制作教程视频,哪个教做美食的网站比较专业点?  JS碰撞运动实现方法详解  Midjourney怎样加参数调细节_Midjourney参数调整技巧【指南】  Laravel如何处理JSON字段_Eloquent原生JSON字段类型操作教程  如何彻底卸载建站之星软件?  微信小程序 闭包写法详细介绍  详解Oracle修改字段类型方法总结  Javascript中的事件循环是如何工作的_如何利用Javascript事件循环优化异步代码?  如何挑选最适合建站的高性能VPS主机?  如何安全更换建站之星模板并保留数据?  如何获取PHP WAP自助建站系统源码?  今日头条AI怎样推荐抢票工具_今日头条AI抢票工具推荐算法与筛选【技巧】  Laravel怎么在Controller之外的地方验证数据  如何快速搭建个人网站并优化SEO?  如何快速打造个性化非模板自助建站?  Laravel如何创建自定义Artisan命令?(代码示例)  PHP怎么接收前端传的文件路径_处理文件路径参数接收方法【汇总】  canvas 画布在主流浏览器中的尺寸限制详细介绍