安全停止raid阵列需执行四步闭环:1.卸载文件系统;2.用mdadm --stop停用阵列;3.用mdadm --zero-superblock清除各成员盘元数据;4.删除/etc/mdadm.conf和/etc/fstab中相关配置。

要安全停止正在运行的 RAID 阵列并彻底清理内核中残留的虚拟块设备描述符(如 /dev/md0),不能只执行 mdadm --stop 就完事。该命令仅停用阵列,但设备节点、元数据和自动装配痕迹仍可能驻留,重启后可能被误识别或重建。关键在于“停用→卸载→清除元数据→移除配置”四步闭环。
1. 确认阵列状态并卸载文件系统
先检查阵列是否挂载、是否活跃:
- 运行
cat /proc/mdstat查看当前活动阵列 - 用
findmnt | grep md或mount | grep /dev/md找出挂载点 - 若已挂载(例如挂载在
/mnt/raid0),必须先卸载:umount /mnt/raid0
若提示“device is busy”,可用lsof +D /mnt/raid0或fuser -v /mnt/raid0查进程并终止
2. 停止RAID阵列设备
执行停用命令,让内核释放该 MD 设备:
-
mdadm --stop /dev/md0(替换为你的实际设备名,如/dev/md127) - 成功时输出类似
mdadm: stopped /dev/md0 - 再次运行
cat /proc/mdstat,确认该设备已从列表中消失
3. 彻底清除磁盘上的RAID元数据(关键步骤)
仅停用不擦除超级块,重启后 mdadm --assemble --scan 仍会自动重建阵列——因为每块成员盘(如 /dev/sdb1)都存有 RAID 元数据。
- 查清该阵列由哪些物理分区组成:
mdadm --examine /dev/sdb1 /dev/sdc1或回顾创建时的mdadm -D /dev/md0输出中的 “RaidDevice State” 列 - 对每个成员设备执行零化超级块:
mdadm --zero-superblock /dev/sdb1mdadm --zero-superblock /dev/sdc1
(注意:必须在设备未被任何 md 使用时执行,否则报错Couldn’t open ... for write – not zeroing) - 验证清除效果:
mdadm --examine /dev/sdb1应返回 “No md superblock detected”
4. 删除配置残留,防止自动装配
即使设备已停、元数据已清,/etc/mdadm.conf 或 /etc/fstab 中的旧条目仍可能导致启动时尝试装配或挂载失败。
- 删除
/etc/mdadm.conf中对应 ARRAY 行(可用mdadm --detail --scan | grep md0定位) - 注释或删除
/etc/fstab中类似/dev/md0 /mnt/raid0 ext4 defaults 0 0的行 - 可选:清空或重生成配置(避免残留):
mdadm --detail --scan > /tmp/mdadm-new.conf(仅保留当前真实阵列)
再手动编辑或覆盖原配置
完成以上四步后,/dev/md0 不再存在,内核中无对应块设备描述符,所有成员盘恢复为普通裸设备,可重新分区或格式化使用。重启也不会自动恢复该 RAID。











