重新粘一下GPT的结果吧
结论(v1.2)
md127
处于 inactive 状态 → LVM 无法识别 → /vol1
等数据卷无法挂载。
只要 强制重新组装阵列 → 激活卷组 → 手工或自动挂载,即可恢复 RAID5 存储空间。
一、立即可执行的修复步骤
重要:如阵列中有任意硬盘存在物理故障,--force 可能导致同步操作,请先保证备份或仅在只读场景下执行。
# 0️⃣ 切换到 root,后续无需频繁 sudo
sudo -i
# 1️⃣ 保守做法:彻底停止已存在的(inactive)md127
mdadm --stop /dev/md127 # 若报 “not active”,可忽略
# 2️⃣ 强制重新组装并激活;-v 显示过程,--force 忽略事件计数差异
mdadm --assemble --verbose --force /dev/md127 /dev/sd{d,e,f}1
# 3️⃣ 再次确认状态应为 active [UUU](三块盘都在线)
cat /proc/mdstat
# 4️⃣ 让 LVM 重新扫描并激活卷组(PV→VG→LV)
pvscan && vgscan
vgchange -ay
# 5️⃣ 找到逻辑卷路径并挂载
lvs # 例如 /dev/mapper/trim_43c0f5da_e134_4e6e_895f_e8b966fda464-0
mount -t btrfs /dev/mapper/trim_43c0f5da_e134_4e6e_895f_e8b966fda464-0 /vol1
# 6️⃣ 写入阵列信息,防止下次启动再失联
mdadm --detail --scan >> /etc/mdadm.conf
# 如属 Debian/Ubuntu 系列,更新 initramfs:
update-initramfs -u
验证:
lsblk -fp
能看到 /vol1
FSUSE% 正常。
btrfs fi show
输出卷信息正常。
二、为什么会变成 inactive?
可能原因 |
现象 |
典型触发场景 |
系统启动过快 / udev 事件顺序不一 |
设备先被标记 spare,mdadm 未及时组装 |
SSD/HDD 上电时间差、initrd 脚本早于硬盘就绪 |
成员盘 Event Counter 不一致 |
mdadm 认为“脏阵列” → 降级为 spare |
上次异常断 电,或曾手动拆盘后未 sync 完成 |
auto=inactive 标志留存 |
clean 关闭后写入该标志 |
部分发行版/工具的“安全卸载”逻辑 |
三、长期方案决策树
数据需要保留?
**
**─────**─────**
** **
是 否(重建)
**
**────────────**────────────**
** **
保留 mdadm+LVM 迁移到单层方案
** **
+ 只需确保 /etc/mdadm.conf + 简化栈层
与 systemd 服务即可 - 需重新格式化
- 两层结构稍复杂 - Btrfs RAID5/6 写放大
推荐:若当前架构满足性能与容量需求,直接 保留 mdadm+LVM 最稳妥,后续仅需保证 mdadm-raid.service
或等效单元在开机时启动。
四、可选自动化脚本示例
#!/usr/bin/env bash
# 文件: /usr/local/bin/raid_auto_mount.sh
# 功能: 组装 md127 → 激活 VG → 挂载 /vol1
# 版本: v1.0 2025-06-22
set -euo pipefail
# 1) 组装 RAID5
mdadm --assemble --force --scan || \
mdadm --assemble --force /dev/md127 /dev/sd{d,e,f}1
# 2) 激活卷组
pvscan && vgscan
vgchange -ay
# 3) 自动查找第一个 btrfs LV 并挂载
LV_PATH=$(lvs --noheadings -o lv_path | grep -m1 '^/dev/mapper')
mountpoint -q /vol1 || mount -t btrfs "$LV_PATH" /vol1
参数说明
参数 |
说明 |
--assemble --force |
忽略事件计数偏差,强制激活 |
pvscan/vgscan |
重新发现物理卷 / 卷组 |
vgchange -ay |
将卷组设为activeyes |
mountpoint -q |
判断挂载点是否已被使用 |
将脚本配合 systemd oneshot 服务即可达成“断 电后自动恢复阵列 + 挂载”。
五、你还可能关心
- 盘序固定:建议通过
udev
规则或 SATA/NVMe 端口标识确保盘符不乱跳。
- 阵列监控:配置
mdadm --monitor --scan --daemonise --program /usr/bin/mail -y root
,第一时间邮件告警。
- 备份策略:RAID ≠ 备份;定期离线备份或远端快照仍然必要。
如在第 2 步或第 4 步遇到报错,请贴出完整输出(mdadm --assemble
、vgchange -ay
、dmesg | tail
)。
我会根据具体错误码给出下一步建议。
祝顺利恢复!