我正在尝试在 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 仍然可以正常工作,这将很有帮助。