Debian 9 中 GRUB2 lvm 模块已知支持(和不支持)的功能有哪些?例如,它是否支持当前元数据格式“lvm2”?
即使在加载 GRUB 模块之后,是否需要一些额外的命令或配置才能从 GRUB 访问 LVM 逻辑卷lvm
?
GRUB 似乎支持 MD-raid,但是当 LVM 运行在 MD-raid 之上时,它是否会以某种方式影响上述问题呢?预计grub2-mkconfig
会支持/boot
MD+LVM吗?
语境
我需要将文件从一个现有磁盘迁移到 RAID,因此我没有使用安装程序来进行设置。 这是针对 Debian Stretch 的。总体思路是
- 将现有系统复制到新磁盘上降级的 RAID
- 启动 RAID 系统
- 非常仔细地仔细检查,然后让 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_gpt
、mdraid1x
和lvm
模块。没有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
加载可能是让这个配置工作的原因:)。
我不确定您应该在哪里学习这些方法:-/。