确认磁盘状态并清空分区表需先用lsblk或ls -l /sys/block/*/device/model核对盘符与型号,再执行wipefs -a /dev/sdx清除签名,最后运行sgdisk --zap-all /dev/sdx彻底抹除gpt/mbr表头。

确认磁盘状态并清空分区表
动手前必须确保目标磁盘干净,否则 mdadm 可能拒绝创建阵列或后续出现元数据冲突。常见错误是误用已有分区的盘(比如 /dev/sdb1),结果阵列启动失败或无法自动组装。
推荐操作顺序:
- 用
lsblk或ls -l /sys/block/*/device/model确认盘符和型号,避免选错系统盘 - 对每块目标盘执行
wipefs -a /dev/sdX清除所有签名(比fdisk -l后手动删分区更彻底) - 再跑一次
sgdisk --zap-all /dev/sdX彻底抹掉 GPT/MBR 表头 - 不建议跳过这步直接用整盘建阵列——某些旧 BIOS 或虚拟化环境会因残留分区类型导致开机卡住
创建 RAID 5 阵列时的关键参数组合
mdadm --create 的参数顺序和取值直接影响阵列稳定性与重建效率。默认行为在现代内核(5.15+)下可能启用过时的元数据格式(0.90),导致跨发行版迁移困难或无法识别 spare 盘。
务必显式指定:
-
--metadata=1.2:强制使用 1.2 版本元数据(存于设备末尾,兼容性好,支持热备盘) -
--chunk=512K:条带大小设为 512KB,平衡小文件随机读与大文件吞吐(低于 64K 容易拖慢重建;高于 1M 在 SSD 混合场景可能浪费 IOPS) -
--raid-devices=3必须与实际参与的设备数一致;若要加热备盘,额外加--spare-devices=1并在设备列表末尾追加备用盘(如/dev/sde) - 命令示例:
mdadm --create /dev/md0 --level=5 --raid-devices=3 --spare-devices=1 --metadata=1.2 --chunk=512K /dev/sdb /dev/sdc /dev/sdd /dev/sde
挂载前必须做的两件事:文件系统格式化与持久化配置
刚创建的 /dev/md0 是裸块设备,直接挂载会报错 mount: wrong fs type。但更隐蔽的风险在于:没写入 /etc/mdadm/mdadm.conf 和 /etc/fstab,重启后阵列大概率无法自动激活,df -h 看不到 /dev/md0,甚至系统卡在 initramfs 阶段。
Zynq‑7000 / Zynq UltraScale+ 硬件调试技能。适用于 Xilinx Zynq(Cortex‑A9/A53 + FPGA)Linux 环境,调试 I2C、I2S、UART、GPIO 等外设。包括设备树配置、内核驱动、用户空间调试工具、交叉编译和常见问题排查,支持 PetaLinux 开发。
实操要点:
- 格式化优先选
mkfs.xfs -f -d su=512k,sw=3 -l version=2 /dev/md0:其中su=512k对齐 RAID 条带大小,sw=3表示 3 块盘参与条带(RAID 5 实际数据盘数),避免 XFS 内部分配碎片 - 生成配置:
mdadm --detail --scan >> /etc/mdadm/mdadm.conf,注意检查输出是否含ARRAY /dev/md0 metadata=1.2 name=...,否则需手动补全 -
/etc/fstab中挂载项必须加nofail选项,例如:/dev/md0 /mnt/raid5 xfs defaults,nofail 0 2,否则某块盘掉线时系统可能无法完成 boot
模拟故障与恢复时最常踩的坑
很多人在 mdadm --manage /dev/md0 --fail /dev/sdb 后发现 /proc/mdstat 显示 degraded,但立刻 cat /proc/mdstat 却看到 recovery 进程在跑——这是误操作:--fail 后没 --remove,系统会尝试立即重建,占用大量 IO 并掩盖真实降级状态。
正确流程只有三步:
- 先
mdadm --manage /dev/md0 --fail /dev/sdb标记故障 - 再
mdadm --manage /dev/md0 --remove /dev/sdb物理移除(此时状态才真正变为degraded) - 换新盘后,用
mdadm --manage /dev/md0 --add /dev/sdb加入,重建自动触发;别用--re-add,它只适用于临时离线又快速回归的盘
重建期间禁止写入大文件或运行 fsck,XFS 不支持在线检查,强行操作可能导致日志损坏。










