应结合/proc/mdstat与mdadm命令综合判断:先用cat /proc/mdstat查看resync/recovery/check状态及中括号内设备状态码,再用sudo mdadm --detail /dev/md0确认State和Rebuild Status,最后用sudo mdadm --examine验证单盘UUID和Events一致性。

要确认 Linux 系统中软 RAID 阵列是否正在同步、重建或已就绪,不能只看一眼就下结论——【/proc/mdstat 的输出是瞬时快照,且括号里的字符含义极易误读】。例如看到 resync = 92.3% 就以为马上完成,实际 RAID5 后期可能卡住十几分钟;看到 [UUU] 就以为全盘健康,却没注意前面写着 State : clean, degraded。
用 cat /proc/mdstat 查看实时同步状态
打开终端,直接执行:
cat /proc/mdstat
观察输出中是否有 resync =、recovery = 或 check = 字样——这三者分别代表:正在同步(首次创建后)、正在重建(换盘后)、正在校验(人工触发的完整性检查)。
重点盯紧中括号里的状态码:[UUU] 表示三块盘全部在线且同步完成;[U_U] 表示中间那块盘已失效;[U_U](F) 中的 (F) 出现在设备名后(如 /dev/sdc1(F)),说明该盘已被内核标记为故障,必须处理。
如果看到 Personalities : [raid1] [raid5] 但下面没有 mdX 行,说明系统压根没识别到任何软件 RAID 设备,别再往下查参数了。
用 mdadm --detail 确认真实状态和进度依据
这一步必须配合上一步使用,因为 /proc/mdstat 不告诉你“为什么卡在 95%”,而 mdadm --detail 能揭示根本原因。
先确认目标设备名,比如 /dev/md0,然后运行:
sudo mdadm --detail /dev/md0
重点关注两行:State : 和 Rebuild Status :。前者若写 clean, degraded,说明阵列已降级但仍可读写;后者若显示 67% complete,才真正对应当前重建进度——这个值比 /proc/mdstat 里的 resync 更可靠,尤其在 RAID5/6 重建后期。
Update Time : 时间戳如果比系统当前时间早超过 10 分钟,基本可以判定重建已停滞,需检查磁盘 I/O 错误或电源不稳问题。
用 mdadm --examine 验证单盘元数据一致性(排查假同步)
方法一:检查某块疑似掉线的盘是否还属于阵列
sudo mdadm --examine /dev/sdb1
看 MD UUID : 是否与 mdadm --detail /dev/md0 输出中的 Array UUID 完全一致。不一致=该盘不属于当前阵列,可能是旧配置残留或插错槽位。
方法二:对比多块盘的 Events 计数
对所有成员盘依次执行 sudo mdadm --examine /dev/sdX1,记录每块盘的 Events : 数值。若某盘比其他盘少 200 以上,说明它长期离线过,即使现在显示 [U],重建也可能无法完成。
注意:mdadm --examine 不依赖阵列是否运行,【哪怕 /dev/md0 当前不存在,也能查出物理盘的真实归属】。











