mdadm 在启动时构建旧式阵列

mdadm 在启动时构建旧式阵列

我有使用 Windows 动态磁盘构建的 RAID0。我了解到这是一个旧式阵列,可以使用 mdadm 中的构建进行组装。我已使用以下命令构建和安装阵列:

sudo mdadm --build /dev/md0 --chunk=64 --level=0 --raid-devices=2 /dev/sdc1 /dev/sdb1
sudo mount -t ntfs-3g /dev/md0 /media/raid

这很有效!

现在我正在努力让这个阵列在启动时挂载。我已将以下条目添加到 fstab:

 /dev/md0 /media/raid ntfs-3g defaults,locale=en_US.utf8 0 0

这就是我的问题所在。不过,在挂载 md0 之前,需要先组装它。我读到的所有内容都说要运行以下命令:

sudo mdadm --detail --scan

并将输出放入 mdadm.conf。但是输出是:

ARRAY /dev/md0 metadata=

由于该阵列是遗留的,它没有 uuid 或任何元数据,并且 mdadm 无法单独ARRAY /dev/md0在 conf 文件中构建它。

我应该在 mdadm.conf 中输入什么内容才能在启动时以传统模式组装 raid?

答案1

由于mdadm.conf指定了用于汇编的数组,因此它只能用于“普通”数组,而不能用于旧数组。手册页指出,对于旧数组(构建模式):

此用法类似于 --create。不同之处在于它创建一个没有超级块的数组。对于这些数组,最初创建数组和随后组装数组之间没有区别,只是希望在第二种情况下那里有有用的数据。

所以这些阵列没有组装。我猜这是因为没有办法检查阵列是否已成功构建。mdadm在这种情况下,只会制造新设备,而不关心原始设备上有什么数据。

/etc/init.d您的解决方案是在启动时使用(或)中的脚本构建数组,/etc/rc.local该脚本将在挂载所有 fstab 文件系统之前调用。

您可以在中尝​​试此行mdadm.conf,但我不认为它会起作用:ARRAY /dev/md0 level=0 devices=/dev/sdc1,/dev/sdb1

相关内容