使用Grub2启动linux mdraid全设备RAID6

使用Grub2启动linux mdraid全设备RAID6

Linux mdraid 支持设备 RAID(与分区 RAID 相对)。新的超级块版本也足够智能,不会将元数据放在磁盘的开头。这是否意味着可以在 MBR 上安装 grub2 并使用 GRUB2 引导整个设备 RAID6?

如果可能的话,哪些发行版安装程序允许您执行此操作?当您安装 Debian 或 Ubuntu 时,不会提供此选项。我知道您可以手动完成,但开箱即用的解决方案会更好。

答案1

我自己从未尝试过,但我认为即使 Grub2 确实支持 RAID-6(是吗?),也会有一些限制。

要使 Grub2 正常工作,它需要(至少)加载core.img通常为 30K 大小的文件。但是,全磁盘 mdadm 设置(使用1.2元数据)仅提供 4K 可用空间。因此没有空间可以嵌入core.img.

在这种情况下,Grub2 尝试做的是将其直接映射到core.img文件系统中物理所在的驱动器。理论上,这甚至可以在 RAID-6 中完成,因为它core.img应该位于整体的某个位置(除非您的块大小小于 32K)。这样,Grub2 就能够加载它并启动,但前提是磁盘没有出现故障,因为现阶段还没有冗余。

对于 RAID,您通常希望即使磁盘出现故障,盒子也能继续工作(并继续启动),因此这不是一个令人满意的解决方案。

因此,如果您希望它可靠,至少您必须对磁盘进行分区,以留出足够的可用空间来嵌入core.img.就我个人而言,我比较守旧,在每个磁盘上创建一个小分区以用于/bootRAID-1 模式(使用0.901.0元数据,以便即使不支持 RAID 的引导加载程序也可以从中读取)。即使 RAID 由于某种原因而降级,它至少可以让设备启动到简约的 initramfs 环境。

答案2

这似乎并不是一件小事。 GRUB 2 据说可以做到,但是旧版本在降级阵列方面存在问题,目前还不清楚哪个版本的 Debian 软件包修复了这个问题。这上游错误说他们假设它是固定的,但是Debian 错误并不那么有希望。

这就是为什么我建议暂时对 /boot 使用 RAID-1,这就是我稍后要做的事情。

相关内容