当使用 mdadm 管理 RAID 时,出现 "bad header magic" 错误通常表示磁盘的超级块损坏或缺失。磁盘故障、配置错误或意外重启导致的。
$ mdadm --examine /dev/sdb
mdadm: No md superblock detected on /dev/sdb
解决步骤
- 检查磁盘状态
使用以下命令检查磁盘是否包含 RAID 信息:
sudo mdadm --examine /dev/sdX
如果返回 "No md superblock detected",说明超级块丢失。
- 手动重建超级块
如果超级块丢失,可以尝试重新创建 RAID 阵列,但要确保数据安全。以下命令会创建一个新的 RAID 阵列:
sudo mdadm --create /dev/md0 --level=1 --raid-devices=2 /dev/sdb missing
此命令将 /dev/sdb 添加到新的 RAID 阵列中,并标记另一个设备为缺失。
- 恢复现有阵列
如果阵列信息仍然存在但未正确加载,可以尝试手动组装:
sudo mdadm --assemble --scan
如果失败,指定设备手动组装:
sudo mdadm --assemble /dev/md0 /dev/sdb /dev/sdc
- 更新配置文件
确保 /etc/mdadm/mdadm.conf 包含最新的阵列信息:
sudo mdadm --detail --scan >> /etc/mdadm/mdadm.conf
sudo update-initramfs -u
- 检查和监控状态
使用以下命令检查 RAID 状态:
cat /proc/mdstat
sudo mdadm --detail /dev/md0 