![Grub2 是否支持将 /boot 放在 RAID5 分区上?](https://linux22.com/image/20216/Grub2%20%E6%98%AF%E5%90%A6%E6%94%AF%E6%8C%81%E5%B0%86%20%2Fboot%20%E6%94%BE%E5%9C%A8%20RAID5%20%E5%88%86%E5%8C%BA%E4%B8%8A%EF%BC%9F.png)
看起来像现在大多数操作系统安装程序坚持将 /boot 放在非 RAID 分区(或“看起来像”非 RAID 分区的 RAID1 分区)上,甚至支持 RAID5 和 GRUB2 的安装程序也是如此。
我猜测这个限制是 Grub1 遗留下来的历史遗留问题。我的理解是,Grub1 对 RAID 一无所知,因此无法启动任何类型的 RAID 阵列——除了“看起来像”非 RAID 阵列的 RAID 阵列。
这是 Grub2 或操作系统安装程序的限制吗?
我听说谣言Grub2“能够在 RAID-0、RAID-1 或 RAID-5、元数据 0.90、1.0、1.1 或 1.2 上支持 /boot”。
Grub2 真的支持将 /boot 放在具有 1.2 元数据的软件 RAID1 分区上吗?
Grub2 真的支持将 /boot 放在软件 RAID5 分区上吗?
理想的答案是链接到一个教程,解释如何将 /boot 分区(在非 RAID 分区上)移动到 RAID5 分区。
我所说的“看起来像”非 RAID 分区是指
- 当 Grub1 仅读取具有 ext3 或 ext4 文件系统的软件 RAID1 阵列的一个硬盘驱动器并忽略分区末尾的 RAID 元数据 0.90 或 1.0 时,它看起来就像 Grub1 可以处理的非 RAID ext2 文件系统。或者
- 不是软件或假 RAID,而是完整的硬件 RAID,看起来像普通的非 RAID 磁盘。
答案1
是的,grub2 完全支持 raid(和 LVM)。事实上,您根本不需要单独的 /boot 分区;你可以把所有东西都放在raid5上。
理想情况下,您根本不希望使用 /boot 分区进行安装,但在事后删除它只是意味着将所有文件复制到根分区,然后重新安装 grub,如下所示:
umount /boot
mount /dev/[bootpart] /mnt
cp -ax /mnt/* /boot
grub-install /dev/sda
当然,您需要从 /etc/fstab 中删除 /boot 行,并且您仍然保留着该分区,只是未使用。
请注意,您还可以将 grub 安装到 raid5 中的所有驱动器,以便可以从其中任何驱动器启动。 Ubuntu grub-pc 软件包将提示您(dpkg-reconfigure grub-pc
让它再次询问)检查您想要安装它的所有驱动器并为您安装它。
答案2
Linux 中这是一个可怕的混乱。使用 mdadm 的默认超级块版本是版本 1.20。一旦你的启动值超过 0.90,你就进入了未知领域。当然,lilo 对 1.0 以上的版本没有兴趣。最好的办法是在使用安装过程之前形成 raid 阵列(提示:在 mdadm 创建中使用参数 --metadata=0.90)。然后您可以在 RAID 阵列上安装并使用您最喜欢的引导加载程序。