GRUB2 是否支持 MD-raid 上 LVM 上的 /boot?

GRUB2 是否支持 MD-raid 上 LVM 上的 /boot?

Debian 9 中 GRUB2 lvm 模块已知支持(和不支持)的功能有哪些?例如,它是否支持当前元数据格式“lvm2”?

即使在加载 GRUB 模块之后,是否需要一些额外的命令或配置才能从 GRUB 访问 LVM 逻辑卷lvm

GRUB 似乎支持 MD-raid,但是当 LVM 运行在 MD-raid 之上时,它是否会以某种方式影响上述问题呢?预计grub2-mkconfig会支持/bootMD+LVM吗?

语境

我需要将文件从一个现有磁盘迁移到 RAID,因此我没有使用安装程序来进行设置。 这是针对 Debian Stretch 的。总体思路是

  1. 将现有系统复制到新磁盘上降级的 RAID
  2. 启动 RAID 系统
  3. 非常仔细地仔细检查,然后让 RAID 吞掉旧磁盘。

我知道这不一定是最明智的的想法。

我正在考虑从 MD-raid 上的 LVM 启动。如果不需要的话,我不会费心将 /boot 作为单独的 MD-raid 分区。看起来这就是 Debian 安装程序的用途https://wiki.debian.org/DebianInstaller/SoftwareRaidRoot

我在 MD-raid 之上创建了一个 LV,并将根文件系统复制到其中。但与 上描述的纯 MD-raid 设置不同RAID 维基grub-mkconfig没有找到新的Linux实例。

我启动到原始 Linux 实例的 GRUB 提示符,看看它能做什么。我可以加载part_gptmdraid1xlvm模块。没有lvm2模块。这成功地找到了我的 GPT 分区的设备以及(md/linux)我创建的MD 设备。但它没有找到我创建的任何 LVM 设备,这些设备应该看起来像(lvm/vg_linux/lv_root).

该命令对或probe根本不起作用;它只是说。因此,即使 GRUB 已经在访问 MD-raid,它也无法识别 MD-raid,更不用说 LVM 了。(hd1,gpt1)(md/linux)error: unknown filesystem

答案1

Debian 9 上的 GRUB2 绝对能够从 MD raid1(元数据 v1.2)上的正常(“线性”)LVM2 卷读取。然而我发现这似乎只有在你这样做的情况下才有效insmod lvm insmod mdraid1x

如果我以相反的顺序加载它们,它会更改 GRUB 命令 (!) 显示的设备的顺序ls,但不会将 lvm 设备添加到列表中。

标准自动配置

为了让grub-mkconfig(Debian 的后端update-grub)按照 RAID wiki 页面上的建议检测第二个 Linux 实例,安装该os-prober软件包就足够了。 (我希望 Debian 安装程序会自动安装这个软件包,如果它在最初安装引导加载程序时看到了第二个操作系统。特别是如果有 Windows 安装的话)。

有趣的是,生成的配置已加载lvm mdraid1x。然而它diskfilter之前也加载过mdraid1x。它还使用隐藏lvmid/...路径而不是(lvm/...).为了我们的理智,让我们忽略后一个差异,并想象早期diskfilter加载可能是让这个配置工作的原因:)。

我不确定您应该在哪里学习这些方法:-/。

相关内容