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


43

我正在尝试在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,但由于无法识别我的磁盘是Linux磁盘,所以无法将chroot进入系统。它是RAID分区存在错误。

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

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

谢谢你的帮助。


不说错误是什么,我们无济于事。安装到sda(可能还包括sdb和sdc)是正确的做法。要从livecd访问RAID,您需要安装mdadm软件包:sudo apt-get install --no-install-recommends mdadm
psusi 2011年

抱歉,我已编辑帖子以包含错误消息。我尝试在sdb之外的其他东西上安装sdc的原因是,我阅读了该线程,似乎在说我应该在/ dev / mapper下找到正确的分区。但是当我放到安装程序中的shell时,除了控件以外,在/ dev / mapper中什么都没有出现。
克里斯·哈珀

那是为了fakeraid,而不是软件突袭。
psusi 2011年

1
您正在使用MSDOS或GPT分区表吗?如果使用的是GPT,则必须创建bios_boot分区。
psusi 2011年

1
我设法通过在每个驱动器上创建三个分区,将文件系统的两个集合一起RAID并交换来使它工作,并使最后两个未被RAID。然后,我选择了/ boot作为其中之一的挂载点,并在安装GRUB时选择了该引导点。这似乎有效。我唯一关心的是GRUB尚未安装在另一个驱动器上,因此,如果驱动器发生故障,则可能无法启动。也许我可以通过在其他驱动器上安装GRUB来解决此问题,尽管该分区未设置为/ boot挂载点?
克里斯·哈珀

Answers:


16

我的问题原来是我有GUID分区表,因为每个驱动器均为2TB。我最初尝试使用的方法没有采用这种方法,因此安装GRUB无效。

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

(在Debian上,这称为保留BIOS引导区。)


1
这仅适用于raid1-我正在尝试使用raid6,它一直失败而没有帮助错误消息:(
Mr.Gosh

您如何创建软件团队?我目前正在尝试做同样的事情。请参阅我关于serverfault的问题:serverfault.com/q/749274/71452
c33s

13

这里的许多答案完全是错误的,告诉您禁用BIOS RAID!正确的解决方案是在此博客条目中。我将在下面总结。

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

/dev/mapper

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

您需要安装RAID阵列的实际名称。因此,在该步骤中,按ctrl+ alt+ F2放到busybox终端,然后输入

ls -l /dev/mapper

从显示的列表中选择阵列的名称,然后按ctrl+ alt+ F1切换回安装(您可以根据需要任意切换来回切换,没有问题),然后在字段中输入

/dev/mapper/{your array name}  

然后GRUB安装完美,您就可以准备就绪,并且具有正确的BIOS RAID阵列。


7
如果ls -l / dev / mapper仅显示“ control”作为内容,该怎么办?
Brian Bauman

我不确定。我怀疑您当时没有BIOS RAID,也就是“假” RAID吗?
杰夫·阿特伍德

我照常完成了分区和安装,然后在GRUB安装时安装失败。我不确定为什么此时无法启动RAID,因为安装是专门针对我构建的三个RAID阵列-raid1 //,raid0 swap和raid1 / home。
Brian Bauman 2012年

值得一提的是,我错误地交替使用了fakeRAID和软件RAID。我的第一次尝试是基于使用BIOS突袭,但是此线程的建议建议我改用Linux软件RAID,这是我从那时以来一直在努力的工作。会再次使用BIOS fakeRAID尝试您的建议并报告。
布赖恩·鲍曼

1
这对14.04仍然有效吗?我无法在14.04中激活启动标志-所以我想知道此解决方案是否仅适用于12.04
Gosh先生

2

@ root45的配方略有变化使我着迷(在仅Ubuntu的系统上)。我没有将可引导分区作为Raid阵列的一部分。

我创建了一个小的可引导GRUB分区(我选择了分区编辑器的选项:“ use is'bootgrub””或类似的东西),并且没有使其与交换分区和数据(/)分区一起成为Raid设备的一部分。

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

例如,如果您选择在LAMP服务器中安装许多软件包,则在分区后可能要花相当长的一段时间,然后才会询问您将Grub2数据写入硬盘...以及该硬盘提供的默认设置。时间导致错误,直到我提供了“ bootgrub”分区的设备为止……并且一切正常,并且我现在有了一个可行的系统。


1

我现在无法安装grub,但是要使RAID运行,我遵循以下说明:

如何使用软件RAID1安装Ubuntu 8.04。HowtoForge-Linux Howtos和教程,并在每个RAID分区上安装grub(不交换)。

当一个HDD出现故障时,这仍然很有用。


当创建第一个分区(用于文件系统)时,无法将该分区设置为可引导。该选项在那里,但是如果我选择它,它只会闪烁并显示“ bootable flag:no”。我继续安装它,但是在安装GRUB时仍然遇到相同的错误。
克里斯·哈珀

嗯,我以前没有听说过这种行为。您用来建立团队的确切配置是什么?
K. Hendrik

我有三个磁盘,sda是Windows7。启动时,其他磁盘sdb和sdc是空白的。进入分区管理器后,我在文件系统的每个驱动器上创建了一个新分区。您的链接指南说将其设置为“ RAID的物理卷”,而不是“ Ext4文件系统”,因此我做到了。但这意味着我无法设置可启动标志。我进行了其余的驱动器交换,并在其他驱动器上进行了相同的操作。
克里斯·哈珀

在我看来,您并没有完全遵循指示。创建raid卷之后,必须在分配文件系统(例如ext4)之后将它们映射到raid中,然后才能分配可引导标志。您需要在每个驱动器上创建2个RAID分区,以将一个交换为/。
K. Hendrik

好吧,我最终做到了。但是您的指南在创建软件RAID之前说“使分区可启动”,并且安装程序不允许我这样做。我完成安装并创建RAID,然后将/分配给两个RAID设备。但是,当尝试安装GRUB时仍然存在错误。
克里斯·哈珀
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.