![mdadm RAID 阵列在重启后消失](https://linux22.com/image/170506/mdadm%20RAID%20%E9%98%B5%E5%88%97%E5%9C%A8%E9%87%8D%E5%90%AF%E5%90%8E%E6%B6%88%E5%A4%B1.png)
我正在运行 manjaro,我刚刚使用 mdadm 设置了一个额外的 RAID 0 并将其格式化为 ext4。我开始使用它,一切都很好。然而,在我重新启动后,该阵列消失了。我认为它只是没有自动重新组装,但它似乎已经完全消失了:
sudo mdadm --assemble --force /dev/md0 /dev/nvme0 /dev/nvme1 /dev/nvme2
mdadm: cannot open device /dev/nvme0: Invalid argument
mdadm: /dev/nvme0 has no superblock - assembly aborted
cat /proc/mdstat
cat: /proc/mdstat: No such file or directory
cat /etc/mdstat/mdstat.conf
cat: /etc/mdstat/mdstat.conf: No such file or directory
sudo mdadm --assemble --scan --force
mdadm: No arrays found in config file or automatically
sudo mdadm --assemble --force /dev/md0 /dev/nvme0n1 /dev/nvme1n1 /dev/nvme2n1
mdadm: Cannot assemble mbr metadata on /dev/nvme0n1
mdadm: /dev/nvme0n1 has no superblock - assembly aborted
看来连那个数组的配置都消失了?和超级街区?现在,我们假设驱动器在重新启动期间不会随机发生故障,尽管这并非不可能。当然,我没有在该数组上存储任何关键数据,但我必须了解哪里出了问题。当然,恢复阵列会很棒,并且可以节省我几个小时的设置时间。
一些额外信息
mdadm: Cannot assemble mbr metadata on /dev/nvme0n1"
据我所知,磁盘应该使用 GPT。我需要设置一些参数才能尝试使用 GPT 吗?
我发现在不格式化的情况下重新创建阵列将恢复对其上所有数据的访问:
sudo mdadm --create --verbose --level=0 --metadata=1.2 --raid-devices=3 /dev/md/hpa /dev/nvme0n1 /dev/nvme1n1 /dev/nvme2n1
但每次我重新启动它都会再次消失,我必须重新创建它。
sudo mdadm --detail --scan
ARRAY /dev/md/hpa metadata=1.2 name=Mnemosyne:hpa UUID=02f959b6:f432e82a:108e8b0d:8df6f2bf
cat /proc/mdstat
Personalities : [raid0]
md127 : active raid0 nvme2n1[2] nvme1n1[1] nvme0n1[0]
1464763392 blocks super 1.2 512k chunks
unused devices: <none>
我还能尝试什么来分析这个问题?
答案1
基本上,对我有用的解决方案是使用单个 fd00 linux raid 分区格式化我的 nvme 驱动器,然后将其用于 RAID。
gdisk /dev/nvme[0-2]n1
命令 n,然后按 Enter 键,直到提示输入十六进制代码分区类型。输入fd00,按回车键。命令 w 并确认。对所有驱动器重复此操作,然后像以前一样继续创建阵列,但这次使用您创建的块设备分区,例如:
mdadm --create --verbose --level=0 --metadata=1.2 --raid-devices=3 /dev/md/hpa /dev/nvme0n1p1 /dev/nvme1n1p1 /dev/nvme2n1p1