当前位置: 首页 > news >正文

Linux 磁盘坏块修复处理(错误:read error: Input/output error)

当磁盘出现坏块时,你对所关联的文件进行读取时,一般会出现 read error: Input/output error 这样的错误。
反过来讲,当你看到 read error: Input/output error 这种错误时,很大可能就是磁盘出现了坏块问题。

解决步骤:

1、检测磁盘

[root@k8s-dev-node1 ~]# badblocks -s -v /dev/sda
Checking blocks 0 to 83886079
Checking for bad blocks (read-only test): 35570264done, 1:37 elapsed. (0/0/0 errors)
35570265
35570266
35570267
35570268
35570269
35570270
35570271
done                                                 
Pass completed, 8 bad blocks found. (8/0/0 errors)

我这个磁盘就出现了8个坏块,其中 /dev/sda 是你的磁盘设备名称,可以使用 fdisk -l 查看。
如果需要把坏块都写入文件,可以添加参数 -o 指定写入的文件即可,例如 badblocks -s -v -o ./badblock.log /dev/sda

如果磁盘较大,可以考虑多个窗口多条命令并行检测,这样需要指定块的范围,如下所示:

# 语法 badblocks -s -v -o /root/badblock.log /dev/sda end start
# 示例(注意后面是先 end 后 start)
badblocks -s -v -o /root/badblock.log /dev/sda 400000000 1
badblocks -s -v -o /root/bad block.log /dev/sda 83886079 400000001

2、修复坏块

如果找到了坏道,可以进行写入扫描进行修复。
写入扫描遇到坏道的时候会自动重映射,写入扫描会覆盖原有数据,所以请先备份。
写入扫描速度很低,所以应该只处理上面扫描时候发现错误的部分,命令如下:

# 语法 badblocks -w -s /dev/sda END START
# 示例(注意后面是先 end 后 start)
badblocks -w -s /dev/sda 35570271 35570265

它可能会有操作不安全的提示 /dev/sda is apparently in use by the system; it's not safe to run badblocks!

这样给命令添加一个 -f (force)参数再重复执行即可。

最后处理完成后再重新检测一遍。

参考资料:https://sites.google.com/site/itmyshare/storage/storage-disk/badblocks—search-a-device-for-bad-blocks


(END)

相关文章:

  • 常见字符串函数的使用,你确定不进来看看吗?
  • 【Linux】进程优先级 | 进程的切换 | 环境变量详解
  • 软件测试标准流程
  • 将群晖NAS变为本地盘
  • 网络安全的就业及发展前景如何?
  • Hadoop组件Yarn常见命令
  • 2022年这5款熟悉的软件退出了历史舞台
  • 工程项目管理系统源码+spring cloud 系统管理+java 系统设置+二次开发
  • 修改Vue项目运行的IP和端口
  • 【笔记】移动端自动化:adb调试工具+appium+UIAutomatorViewer
  • 【C→C++】打开C++世界的大门
  • 程序环境--翻译+执行
  • Node=>Express中间件 学习3
  • 软件测试】测试时间不够了,我很慌?项目马上发布了......
  • m序列发生器——Verilog设计
  • 《Javascript数据结构和算法》笔记-「字典和散列表」
  • 《微软的软件测试之道》成书始末、出版宣告、补充致谢名单及相关信息
  • 2019年如何成为全栈工程师?
  • codis proxy处理流程
  • nginx(二):进阶配置介绍--rewrite用法,压缩,https虚拟主机等
  • node入门
  • socket.io+express实现聊天室的思考(三)
  • UEditor初始化失败(实例已存在,但视图未渲染出来,单页化)
  • 阿里云容器服务区块链解决方案全新升级 支持Hyperledger Fabric v1.1
  • 从0实现一个tiny react(三)生命周期
  • 从伪并行的 Python 多线程说起
  • 技术胖1-4季视频复习— (看视频笔记)
  • 那些被忽略的 JavaScript 数组方法细节
  • 前端面试题总结
  • 使用 5W1H 写出高可读的 Git Commit Message
  • 突破自己的技术思维
  • 无服务器化是企业 IT 架构的未来吗?
  • 小李飞刀:SQL题目刷起来!
  • 责任链模式的两种实现
  • ionic异常记录
  • puppet连载22:define用法
  • 选择阿里云数据库HBase版十大理由
  • # 执行时间 统计mysql_一文说尽 MySQL 优化原理
  • #DBA杂记1
  • (27)4.8 习题课
  • (Matlab)遗传算法优化的BP神经网络实现回归预测
  • (Ruby)Ubuntu12.04安装Rails环境
  • (备忘)Java Map 遍历
  • (编程语言界的丐帮 C#).NET MD5 HASH 哈希 加密 与JAVA 互通
  • (分享)自己整理的一些简单awk实用语句
  • (黑客游戏)HackTheGame1.21 过关攻略
  • ***php进行支付宝开发中return_url和notify_url的区别分析
  • .babyk勒索病毒解析:恶意更新如何威胁您的数据安全
  • .bat文件调用java类的main方法
  • .Mobi域名介绍
  • .NET Core 将实体类转换为 SQL(ORM 映射)
  • .NET WebClient 类下载部分文件会错误?可能是解压缩的锅
  • .net之微信企业号开发(一) 所使用的环境与工具以及准备工作
  • .net中的Queue和Stack
  • @Autowired @Resource @Qualifier的区别