在 initramfs 期间,udev 忽略了我的 mdadm raid 1,但 raid 在救援中完美组装

在 initramfs 期间,udev 忽略了我的 mdadm raid 1,但 raid 在救援中完美组装

我知道,关于 mdadm 还有另一个问题......

我会尽力解释清楚:

系统:

Archlinux
Kernel 5.15.81-1-lts
systemd 252.2-3-arch

救援:

ArchISO (with zfs module)
Kernel 5.10.78-1-lts
systemd 249.6-3-arch
Zfs 2.1.1-1

我的系统由两个驱动器组成:

nvme{0,1}n1:
- p1 - F32 - md1 (Metadata=1.0, homehost=any)
- p2 - zfs - root fs
- p3 - luks - md3 (Metadata 1.0, homehost=any)

这个想法如下:

  1. EFI 检测前两个分区中的任一个(元数据 1.0 表示 raid 数据位于分区末尾)
  2. EFI启动,调用initramfs
  3. Udev 规则应该做过)组建不同的突袭
  4. Luks 解密 md3 并将其安装。
  5. zfs-mount.service 加载密钥并挂载 fs
  6. 系统顺利启动并运行

在救援中,我可以召集突袭队,解密并访问一切。

我去提取了 initramfs,以检查所有 udev 规则。

我可以使用 udev 规则的命令行来组建突袭 ( mdadm --incremental --export $devnode)

我不确定他为什么会忽略这些设备(或者即使它真的忽略了它们)。

虽然,最多一天前一切都还正常……

仅供参考:两次突袭都是这样创建的:

$name 和 $part 分别是 boot/1 和 secure/3:

mdadm --create --metadata=1.0 --name=$name --raid-device=2 --homehost=any /dev/md$part /dev/nvme{0,1}n1p$part

我还尝试创建一个手动钩子,简单地组装两个 raid,检查 mdadm.conf,但似乎不起作用(根据记忆写的,我会尽快编辑它,編輯):

run_hook(){
    if [ -r /etc/mdadm.conf ] && [ -x /usr/bin/mdadm ]; then
        /usr/bin/mdadm -A /dev/md1 -c /etc/mdadm.conf
        /usr/bin/mdadm -A /dev/md3 -c /etc/mdadm.conf
    fi
}

我会在稍后(凌晨 3 点......)处理它并纠正/完成尽可能多的信息。

如果您知道我应该在哪里查找错误吗?

我会提供尽可能多的信息,但我只有我的手机......

提前致谢

相关内容