centos7--软raid中硬盘故障修复

系统报错某块盘的扇区损坏,虽然当时没有影响到读写,但是以后可能会出问题,所以准备做修复

/var/log/message报错:

 

 

开始修复

 --------------------------------------------------------

1、首先查看硬盘是否确实有损坏

Smartctl 可以检测下硬盘是否有坏道,PASSED为正常,FAILED表明有坏道

如果没有smartctl,可以yum安装yum install -y smartmontools-6.5-1.el7.x86_64 #如果没有,yum whatprovides */smartctl 找找

 2、使用badblock扫描报错磁盘扇区

badblock是全磁盘扫描,扫描同时会将损坏的硬盘扇区号打到badblock.log里,时间会有些长,nohup挂后台 运行

nohup badblocks -s -v -o ~/badblock.log /dev/sdk &

ps -elf | grep badblock ##查看后台进程,如果没有了,就说明扇区已经扫描完毕

注:如果上面输出没有扫描到坏扇区,有可能是badblock和默认扇区字节不一致导致,如图

系统默认是512字节一扇区,而badblock去扫描时候字节是以1024一扇区,所以直接去扫描会

图中 默认以512字节 为一扇区,扇区总数5860533168,badblock扫描时以1024一扇区,扇区总数2930266583

  因此,我们用message报错里面的扇区除以2 ,得到的就是 badblock扫描时的错误扇区,

nohup badblocks -sv  -o ./badblock.log /dev/sdh 2930266583  2867755208 &

 

PS:如果有报硬盘太大,无法扫描的情况加 -b 指定扇区大小为1024或者2048即可,如下:

 

3、扫描完毕后,cat查看生成的错误扇区号,badblock.log,如下:

  4,、停止raid,需要先停止软raid,才能对磁盘做修复

 mdadm -S /dev/md0  #停止软raid
 umount /Data2 #卸载挂载的raid盘

5、开始修复扇区

 badblocks -s -w /dev/sdk  END START 扇区号

 

修复很快,修复完成后可以检查一下,没有坏道

badblocks -v /dev/sdk 23169707 23169704

 

修复后加载raid,

mdadm -A /dev/md0 /dev/sd[b-m]
mdadm -D /dev/md0检查raid加载正常

 --end--

欢迎交流,有疑问请留言。

posted @ 2019-09-04 17:06  运维军火库  阅读(2131)  评论(0编辑  收藏  举报