如何在不使用/etc/mdadm.conf的情况下组装特定的RAID阵列


9

是否可以使用mdadm及其扫描功能来组装特定的RAID阵列,而无需配置文件?

背景:
我正在使用定制的initramfs来设置系统(dm-crypt和其他内容)。一切都在init脚本中完成并配置,这就是我想要保留的方式,即无需任何其他配置文件。

我的目标:
在初始化脚本中,我只想使用命令行组装一个特定的RAID阵列。通过其UUID标识阵列,给出md设备名称,并应扫描阵列成员(因为例如,连接的USB记忆棒或发生故障的设备会弄乱/ dev / sdX名称)。所有其他设备和潜在的RAID阵列都将被忽略,因为在引导过程中,只有一个阵列是感兴趣的(带有根文件系统)。


仔细阅读mdadm的手册页并进行一些测试,我想到了:

mdadm --assemble --uuid <uuid> /dev/md0


这似乎可行,但这是正确的方法吗?


在手册页中:
如果仅列出了一个设备,但未指定--scan,则mdadm的行为就好像已给出--scan一样,并且从配置文件中提取了身份信息。

Answers:


15

如果知道阵列UUID,则mdadm --assemble /dev/md0 --uuid <uuid>(请注意参数顺序上的细微差别)将执行所需的操作:扫描所有未使用的卷,以md查找具有给定UUID的元数据的卷。其他选项:

  • mdadm --assemble /dev/md0 --name <name>(与进行相同的操作--uuid,但使用数组名而不是UUID。)
  • mdadm --assemble /dev/md0 --super-minor <minor id #>(与进行相同的操作--uuid,但元数据中的设备号较小。仅建议用于0.90版元数据。)
  • mdadm --assemble /dev/md0 /dev/disk/by-id/<disk>...(如果udev已设置/dev/disk/by-id别名,则别名在硬件更改中应该是静态的。)
  • mdadm --assemble --scan配置文件中未列出任何阵列(扫描所有未使用的卷以获取md元数据,并根据发现的内容组装RAID阵列。请注意,如果您有多个阵列,并且只想设置其中一个,或者阵列已经建立拆分,这将无法满足您的要求。)
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.