我知道,关于 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)
这个想法如下:
- EFI 检测前两个分区中的任一个(元数据 1.0 表示 raid 数据位于分区末尾)
- EFI启动,调用initramfs
- Udev 规则应该(做过)组建不同的突袭
- Luks 解密 md3 并将其安装。
- zfs-mount.service 加载密钥并挂载 fs
- 系统顺利启动并运行
在救援中,我可以召集突袭队,解密并访问一切。
我去提取了 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 点......)处理它并纠正/完成尽可能多的信息。
如果您知道我应该在哪里查找错误吗?
我会提供尽可能多的信息,但我只有我的手机......
提前致谢