关于raid丢盘手动修复方法。
参考了大神“玉尺书生”的方法,但是有部分写的不是很明白,最终是恢复数据了。https://club.fnnas.com/forum.php?mod=viewthread&tid=16940&highlight=
一、先找出有问题的阵列
1、在飞牛设置里面打开ssh功能,先用普通用户登录进去,然后sudo -i 这一步输入自己密码,切换root用户;
2、在root在执行命令 lsblk -fp
这个是查询全部整列状态,
然后找出有问题的阵列, 前面写着INACTIVE-ARRAY的, 就是不活跃raid。然后记住不活跃的ID就是md后面的数字这个很重要,不然容易后续操作把正常整列搞停止了。比如博主写的/dev/md126这是他的,我的就是127,其中md127就是被移除的存储空间,显示inactive了。

3、查看阵列内磁盘状态
这个查询就使用lsblk -fp这个命令查询。
lsblk -fp

这里可以看到md127内有8块硬盘,其中sdk sdd被剔除在md127之外了。按道理md127是raid6,是支持2块硬盘故障的。再具体看下这8块硬盘的events。
二、查看阵列中, 每个磁盘的状态, 确定event
mdadm --examine /dev/sda1
这个就根据dev下面挂载去查询上面mdadm --examine /dev/后面根据每块盘去更改,
比如查询信息为 sda1=28967 sdb1=28967 sdc1=28967
sdd1=28967
sde1=76
sdf1=28967 sdh1=28967 sdg1=28967
例如, 是8盘组成的raid5, sda1的events是28967, sdb1的是28967, sde1的是76, 那就证明是因为sde1的事件出错导致raid故障
因为raid5是允许丢一个盘的, 那就用sda1-sdd1,sdf1-sdg1先重建一个降级的阵列, 再把sdc1给添加回去可以看到events是157 ,md127内各硬盘基本都是28967,然后唯一就sde1=76说明这块盘丢失导致数据无法重构,然后使用命令强制重建。重建前停止故障raid。
三、停止原来的raid, 要注意/dev/md127, 是指故障的raid, 不要弄错了
mdadm --stop /dev/md127
四、强制重建
mdadm --assemble --force -v /dev/md127 /dev/sda1 /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sdf1 /dev/sdg1 /dev/sdh1
这个代码的意思就是md127整列内abcdfgh7块盘正常的,然后用正常的去组阵列,就可以把丢失的e盘符恢复回来。
五、查看是否已经重建阵列
在root在执行命令 lsblk -fp
这个是查询全部整列状态,如果阵列恢复成功, 就可以在WEBUI上点击挂载, 然后再把sdc1给恢复回去, 就完成了。
其他的形式阵列也可以参考这个方法。
关于events的解释如下:
在 Linux 的 mdadm 软件 RAID 中,Events 值记录了阵列元数据的更新次数。每次阵列发生配置变更(如创建、重组、磁盘添加/移除、同步事件等),Events 值会递增。通过 mdadm –examine /dev/sdX 查看的 Events 值反映了该成员磁盘参与的阵列事件次数。