实时同步进度必须用cat /proc/mdstat查看,因其显示resync = XX.X%或recovery = XX.X%、剩余时间及速率;mdadm --detail仅输出静态结构信息,不刷新、无进度百分比。

看实时同步进度,只用 /proc/mdstat
mdadm --detail 不刷新、不显示进度百分比,它只告诉你“当前结构什么样”。真要看“还剩多少没同步完”,必须盯住内核实时状态接口:/proc/mdstat。
执行 cat /proc/mdstat,关键信息在这一行:
md0 : active raid1 sdb[1] sda[0]
[=====>..] resync = 33.3% (349568/1048576) finish=2.0min speed=20480k/sec
-
resync = XX.X%或recovery = XX.X%:正在初始化或重建,百分比是真实进度 -
finish=XX.Xmin:剩余估算时间(注意:负载高时可能严重不准) -
speed=XXXXk/sec:当前同步速率,可判断是否被 I/O 压制 - 括号里
[UU]表示两盘都在线;[U_]表示一块已掉线,同步会卡住不动
持续监控要用 watch,别手敲
手动反复敲 cat /proc/mdstat 容易漏看变化,尤其同步耗时几十分钟时。直接用 watch 自动刷新:
运行 watch -n 2 cat /proc/mdstat,每 2 秒刷新一次。按 Ctrl+C 退出。
Zynq‑7000 / Zynq UltraScale+ 硬件调试技能。适用于 Xilinx Zynq(Cortex‑A9/A53 + FPGA)Linux 环境,调试 I2C、I2S、UART、GPIO 等外设。包括设备树配置、内核驱动、用户空间调试工具、交叉编译和常见问题排查,支持 PetaLinux 开发。
-
-n 2是刷新间隔(秒),太短(如-n 0.5)会让终端刷屏、增加内核压力 - 不要用
watch -n 1—— 多数 RAID 同步粒度在秒级,1 秒刷新毫无必要,反而干扰阅读 - 如果输出里突然消失
resync字样,只留active和[UU],说明同步已完成
同步卡住?先查是不是有盘掉线或降级
进度长时间卡在 99.9% 或完全不动,不是“慢”,大概率是阵列异常:
- 检查
/proc/mdstat中括号状态:[U_]、[_U]或[__]都表示至少一块盘离线 - 运行
sudo mdadm --detail /dev/md0(替换为你的设备),看State :行是否含degraded - 看
Failed Devices :数值,非零就必须换盘;Working Devices :应等于预期盘数 - 若某成员盘显示
spare rebuilding,说明热备盘刚顶上,此时同步才刚开始,不是卡住
物理盘健康不能靠 mdadm 判断
一块盘在 mdadm --detail 里仍标着 active sync,不代表它没问题。SMART 层故障(比如坏扇区激增)mdadm 完全感知不到。
- 从
mdadm --detail输出中确认成员盘设备名,例如/dev/sdb1→ 实际查盘用/dev/sdb(整盘,不是分区) - 执行
sudo smartctl -a /dev/sdb,重点看: -
SMART overall-health self-assessment test result:必须是PASSED -
Reallocated_Sector_Ct、Current_Pending_Sector、UDMA_CRC_Error_Count这三项非零且持续增长,就是硬件风险信号
同步进度本身不撒谎,但它的前提是一切底层物理盘都还“能说话”。一旦 SMART 报警,哪怕 /proc/mdstat 显示 100%,也得立刻换盘。

















