Software RAID 5 数据恢复求助
别慌,先稳住——你之前只执行了umount /dev/md0和mdadm --stop /dev/md0这两个操作,理论上不会直接破坏RAID的超级块,大概率是新系统的识别逻辑问题,或者阵列信息没被正确读取到。下面给你一步步来排查和恢复的方法:
第一步:确认RAID磁盘的设备路径
先把所有连接的磁盘列出来,用lsblk或者sudo fdisk -l命令,通过磁盘容量、分区特征找到原来组成RAID 5的那几块盘(比如它们的分区类型可能是linux_raid_member)。第二步:自动扫描并重组阵列
先试试让mdadm自动扫描系统里的RAID信息,执行:sudo mdadm --assemble --scan如果成功,系统会自动识别并重组阵列,你可以用
cat /proc/mdstat查看阵列状态,确认/dev/md0是否正常运行。第三步:手动指定磁盘强制组装
如果自动扫描失败,就手动指定RAID成员盘来尝试强制组装。假设你的RAID盘是/dev/sdb、/dev/sdc、/dev/sdd,执行:sudo mdadm --assemble /dev/md0 /dev/sdb /dev/sdc /dev/sdd --force这里的
--force参数是用来处理超级块识别有小异常的情况,但一定要确保你指定的磁盘确实是原来RAID的成员,别选错盘。第四步:检查单个磁盘的超级块信息
如果还是不行,试试单独检查每块RAID盘的超级块,比如对/dev/sdb执行:sudo mdadm --examine /dev/sdb如果这块盘还保留着超级块,输出里会包含RAID的UUID、成员信息等。找到UUID后,用这个UUID来重组阵列:
sudo mdadm --assemble --uuid=你的RAID UUID /dev/md0最后手段:用数据恢复工具扫描文件系统
要是上面的方法都没效果,那可以试试用testdisk这类工具,直接扫描磁盘上的文件系统结构来恢复数据。不过这个是最后选项,而且操作前一定要注意:绝对不要对这些磁盘进行任何写入操作(比如格式化、分区),如果条件允许,最好先用dd给每块盘做镜像,再在镜像上操作,避免误操作毁掉数据。
备注:内容来源于stack exchange,提问作者abramek

