mdadm 在 centos 7 中需手动安装并配置 /etc/mdadm.conf 和 systemd 服务才能开机自动激活 raid;挂载应使用 uuid 或 label 并添加 x-systemd.requires=mdadm.target,且须确保 bios/uefi 设置为 ahci 模式。

mdadm 是 CentOS 7 自带的软 RAID 管理工具,无需额外安装就能用——但前提是它没被卸载或禁用。多数最小化安装的系统默认不装 mdadm,所以“启用”实际是确认安装、配置自动识别、并让系统在启动时正确加载阵列。
怎么确认 mdadm 已就位
直接运行:mdadm --version
如果返回类似 mdadm - v4.0 - 2017-01-09,说明已安装;若提示 command not found,就得先装:yum install -y mdadm
注意:不要用 dnf,CentOS 7 默认用 yum。
为什么创建完 RAID 后重启就没了
这是最常踩的坑:Linux 软 RAID 不像硬件卡那样固化在固件里,每次启动都得靠内核重新扫描和组装。没做两件事,阵列就“消失”:
- mdadm --detail --scan 输出必须写入 /etc/mdadm.conf(不是自建文件,必须是这个路径+文件名)
- /etc/mdadm.conf 里不能只有 UUID 行,还得有 ARRAY 开头的完整行(例如 ARRAY /dev/md0 metadata=1.2 name=localhost:0 uuid=xxx)
- 如果用的是旧版 mdadm(如 v3.x),可能需要加 --force 才能生成兼容格式的配置
CentOS Linux 7.9.2009是传统CentOS Linux 7的最后主要版本,也是很多企业历史服务器中仍可能遇到的系统版本。它以稳定、兼容RHEL 7生态、文档丰富和软件支持广泛著称,曾长期用于Web服务、数据库、虚拟化节点和企业内部业务系统。不过CentOS Linux 7已于2024年6月30日停止维护,现在继续使用会面临安全补丁缺失风险。该版本更适合旧业务迁移、历史环境恢复或离线兼容性测试。
mdadm 启动时自动激活的关键路径
CentOS 7 使用 systemd,mdadm 的开机自动装配依赖两个服务:
- mdmonitor.service:监控 RAID 状态,发邮件或写日志(可选)
- mdadm@.service 模板服务:真正负责 assemble 的服务,由 /etc/mdadm.conf 触发
检查是否启用:systemctl is-enabled mdmonitorsystemctl is-enabled mdadm
如果返回 disabled,执行:systemctl enable mdmonitorsystemctl enable mdadm
注意:mdadm 这个 unit 名对应的是模板实例,启用后会根据 mdadm.conf 自动派生具体实例(如 mdadm@md0.service)
挂载点没生效?fstab 写法要小心
很多人把 /dev/md0 直接写进 /etc/fstab,结果偶尔挂载失败——因为设备节点出现时间晚于 fstab 解析时机。
更稳的做法是:
- 用 UUID(blkid /dev/md0 查)或 LABEL(e2label /dev/md0)代替 /dev/md0
- 在 fstab 行末尾加上 x-systemd.requires=mdadm.target(告诉 systemd 必须等 RAID 就绪再挂载)
示例:UUID=xxxx-xxxx /mnt/raid ext4 defaults,x-systemd.requires=mdadm.target 0 2
真正容易被忽略的点是:即使 mdadm.conf 写对了、服务也启用了,如果磁盘在 BIOS/UEFI 中被设为 RAID 模式(而非 AHCI),或者主板开启了 Intel RST,Linux 内核根本看不到原始物理盘,mdadm 就完全无法工作——这种情况下你面对的其实是硬 RAID,得换用 MegaCli 或厂商工具。










