是否可以组装特定的 RAID 阵列使用米达德姆及其扫描功能,但不需要配置文件?
背景:
我正在使用定制的 initramfs 来设置我的系统(dm-crypt 和其他东西)。一切都在初始化脚本中完成和配置,这就是我想要保留的方式,即没有任何额外的配置文件。
我的目标:
在初始化脚本中,我想仅使用命令行组装一个特定的 RAID 阵列。阵列通过其 UUID 进行识别,给出 md 设备名称,并且应该扫描阵列成员(因为例如连接的 USB 记忆棒或故障设备会弄乱 /dev/sdX 名称)。所有其他设备和潜在的 RAID 阵列都将被忽略,因为在启动过程中只有一个阵列值得关注(带有根文件系统)。
彻底阅读 mdadm 的手册页并执行多项测试后,我得出了以下结论:
mdadm --assemble --uuid <uuid> /dev/md0
这似乎有效,但是这是正确的方法吗?
从手册页:
如果仅列出了一台设备,但未给出 --scan,则 mdadm 的行为就像给出了 --scan 一样,并且从配置文件中提取身份信息。
答案1
如果您知道阵列 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 阵列。请注意,如果您有多个阵列并且只想设置其中一个,或者您的阵列已获得分裂,这不会做你想要的。)