如何在 RAID 系统安装上安装 GRUB?

如何在 RAID 系统安装上安装 GRUB?

我正在尝试在 RAID 1 设置上设置和安装 Ubuntu。我有两个磁盘,sdb 和 sdc。我一直在遵循本指南

https://help.ubuntu.com/community/Installation/SoftwareRAID

它或多或少可以完成所有设置并安装 Ubuntu。问题在于安装结束时,它会尝试安装 GRUB。默认情况下,它会尝试我的“第一个磁盘”,这会导致“致命错误”。我尝试将其安装在特定分区(例如 sdb1)以及 RAID 设备(例如 md0、md1 等)上。似乎没有任何效果。

实际错误是

无法在 /dev/sdb 中安装 GRUB

执行‘grub-install‘/dev/sdb’失败。

这是一个致命的错误。

然后我回到主安装菜单。如果我选​​择“在硬盘上安装 GRUB 引导加载程序”选项,我可以选择分区,但输入 sdb2 或 md1 会出现同样的错误。

所以我继续,只是没有安装 GRUB,这意味着现在我可能有一个可以正常工作的 Ubuntu 安装,但我无法启动它。我尝试从 LiveCD 启动以安装 GRUB,但我无法 chroot 进入我的系统,因为它似乎无法识别我的磁盘是 Linux 磁盘。有一个关于它是 RAID 分区的错误。

所以基本上我真的很想知道您如何知道在安装时将 GRUB 安装到哪个设备上,或者至少,如何将它安装到我的系统上。

我想我还应该提到,sda 是一个 Windows 7 安装,我希望保留它并能够在启动时访问它。

谢谢你的帮助。

答案1

我的问题是我有 GUID 分区表,因为我的每个驱动器都是 2TB。我最初尝试遵循的方法没有假设这一点,因此安装 GRUB 不起作用。

相反,您应该在每个磁盘上创建一个小的 (1MB) 分区,并将它们组成 RAID,然后将其设置为 GRUB 启动分区(我不确定实际名称)。设置其他 RAID 分区(例如 swap 和 /),然后 GRUB 安装程序应该可以正常找到启动区域。

(在 Debian 上,这称为保留 BIOS 启动区域

答案2

这里的许多答案都是错误的,告诉你禁用 BIOS RAID!正确的解决方案是这篇博文。下面我来总结一下。

在尝试安装 GRUB 的安装阶段,它将检测到

/dev/mapper

这是不完整!这就是 GRUB 安装失败的原因。

你需要要安装的 RAID 阵列的实际名称。因此,在此步骤中,按++ctrl进入busybox 终端,然后输入altF2

ls -l /dev/mapper

从显示的列表中选择阵列的名称,然后按ctrl+ alt+F1切换回安装(您可以随意来回切换,没有任何问题)并将其输入到字段中

/dev/mapper/{your array name}  

然后 GRUB 完美安装并且您可以开始使用,并且具有完整的正确的 BIOS RAID 阵列。

答案3

@root45 的配方略有不同,让我开始使用(在仅限 Ubuntu 的系统上)。我没有将可引导分区设为 Raid 阵列的一部分。

我创建了一个小型的可启动 GRUB 分区(我选择了分区编辑器的选项:“使用‘bootgrub’”或类似内容)并且没有将其与交换和数据(/)分区一起作为 Raid 设备的一部分。

您可以随时将 Grub2 数据重写到“bootgrub”分区....事实上,在安装完您选择的所有软件包后,安装过程将代表您进行选择;或者在以后的任何时间,如果损坏,请将grub-install /dev/sda“sda”更改为您在上面“第一步”中使用的分区的设备,以“用作‘bootgrub’”。

例如,如果您选择在 LAMP 服务器中安装许多软件包,则在分区后可能需要很长时间才会被询问是否将 Grub2 数据写入硬盘...并且它当时提供的默认值导致错误,直到我提供了“bootgrub”分区的设备...并且一切顺利,我现在有一个可行的系统。

答案4

我现在无法帮助安装 grub,但我按照以下说明运行了我的 RAID:

如何使用软件 RAID1 安装 Ubuntu 8.04 | HowtoForge - Linux 操作方法和教程并在每个 raid 分区上安装 grub (不是交换分区)。

当一个硬盘出现故障时,如果 grub 仍然可以正常工作,这将很有帮助。

相关内容