Chinaunix首页 | 论坛 | 博客
  • 博客访问: 491864
  • 博文数量: 28
  • 博客积分: 858
  • 博客等级: 一等列兵
  • 技术积分: 852
  • 用 户 组: 普通用户
  • 注册时间: 2011-06-02 14:13
文章分类

全部博文(28)

文章存档

2020年(1)

2019年(1)

2018年(5)

2017年(1)

2014年(1)

2013年(2)

2012年(17)

分类: LINUX

2012-04-11 16:18:13

    今天在实验室碰到一台机器,根分区和/upgrade分区变成了read-only system.当碰到这个问题的时候,我的第一反应很可能硬件出现了故障,我使用了如下的方法来检测和排除故障:
  1. 使用dmesg检查是否有关于磁盘错误的信息,果不其然发现大量磁盘扇区错误的信息,如下: end_request: I/O error, dev 03:06 (sda), sector  
  2. 从上面的输出我们判定扇区可能出现了问题,使用badblocks -s -v -o /root/badblocks.log /dev/sda 检查硬盘是否产生坏道并输出到badblocks.log中。log大约是这样的模式:64039224 64039240 64039241 64039242 64039243 64039256 64039257 64039258 64039259 687056
  3. 可修复修复坏道修复方法:1 使用 badblocks -s -w  /dev/sda END START END代表需要修复的扇区末端,START代表需要修复的扇区起始端。2 使用fsck -a /dev/sda1
磁盘坏道分为三种:0磁道坏道,逻辑坏道,硬盘坏道。其中逻辑坏道可以使用上面的方法修复,0磁道坏道的修复方法是隔离0磁道,使用fdsk划分区的时候从1磁道开始划分区。如果是硬盘坏道的话,只能隔离不能修复。硬盘坏道的监测方法:使用上述方法检测修复后,再使用badblocks -s -v -o /root/badblocks.log /dev/sda监测看是否还有坏道存在,如果坏道还是存在的话说明坏道属于硬盘坏道。硬盘坏道隔离方法,首先记录监测出的硬盘坏道,然后分区的时候把硬盘坏道所在的扇区分在一个分区(大小一般大于坏扇区大小),划分出的坏道分区不使用即可达到隔离的目的。隔离只是暂时方案,建议尽快更换硬盘,因为坏道会扩散,以免以后出现严重的数据问题。

阅读(41813) | 评论(11) | 转发(2) |
给主人留下些什么吧!~~

sunfeng123152013-05-07 10:50:16

好详细的文章,学习了!

wwmshe2012-05-24 14:24:18

我顶~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

arezone2012-05-08 08:49:31

今生路人甲: 这一步需要非常长的时间,你所谓的卡住,应该是在进行磁盘检测,你可以tail -f /root/badblocks.log查看检查情况.....
badblocks检测通过了,没有报错。但是mkfs.ext3格式化硬盘时卡了,在线上跑了几天mkfs都还没完成。

☆彼岸★花开2012-04-15 10:23:08

哦哦,多谢了,我找到了对应工具了 !

今生路人甲2012-04-15 08:45:47

☆彼岸★花开: 硬盘linux下有坏道,win7 下没有?怎么回事? ??
只是linux那部分的坏了???.....
我推测你的环境是双系统,windows正常运行,硬盘良好,linux出现了坏道,当你使用windows的时候,其实linux分区是隐藏的,两个系统是互不影响的,所以可能你的linux分区出现了坏道,切忌使用上面的命令去修复windows系统分区,如果使用windows系统建议使用windows磁盘管理工具来处理windows问题。