Ubuntu 12.04 在 GPT + RAID 上安装并进入 grub 救援

Ubuntu 12.04 在 GPT + RAID 上安装并进入 grub 救援

我有两个 2TB 的磁盘。我正在使用备用版本的服务器 CD 安装 Ubuntu 12.04。在分区页面上,我已按如下方式进行分区

/dev/sda1 - 32 MB - bios_grub
/dev/sda2 - 50 GB -raid 设备
/dev/sda3 - 8 GB -raid 设备
/dev/sda4 - 平衡全 GB - raid 设备

/dev/sdb1 - 32 MB - bios_grub
/dev/sdb2 - 50 GB -raid 设备
/dev/sdb3 - 8 GB -raid 设备
/dev/sdb4 - 平衡全 GB - raid 设备

此后,我已
为 /(/dev/sda2 + /dev/sdb2) 设置了 raid 设备 /dev/md0 用于 / ext4
/dev/md1 用于交换(/dev/sda3 + /dev/sdb3) 用于交换
/dev/md2 用于 /home(/dev/sda4 + /dev/sdb4) 用于 /home ext4

安装完成后,显示正在将 grub 安装到 /dev/sda 和 /dev/sdb。但是系统重新启动后,它会进入 grub rescue> 模式。执行 ls 时,我看不到 md 设备,只能看到 hd 一次。

我还尝试使用安装 CD 启动救援模式并执行 grub-install /dev/sda 和 /dev/sdb。我做错了什么?为什么 grub2 检测不到 raid 文件?

更新:我刚刚对 Ubuntu 10.04 执行了同样的步骤,一切正常。我清除了 RAID 和分区等所有内容,然后从头开始。我认为问题出在 Ubuntu 12.04 及其对 2 TB 磁盘进行分区的方式上

答案1

我不确定这是否是正确的答案,但我倾向于将 /boot 放在 LVM 或软件 RAID 系统之外。最新的 grub2 引导加载程序可能支持这一点(在某些配置中),但这并不能完全保证。

也许你可以研究一下这个想法。

摘自维基百科,关于 mdadm 的内容:

由于内核支持 MD,因此在内核运行前使用它会出现问题。具体来说,如果引导加载程序是 (e)LiLo 或 GRUB 旧版,则不会出现 MD。GRUB 2 中可能不存在。为了避免这个问题,必须使用不支持 md 或支持 RAID1 的 /boot 文件系统。在后一种情况下,系统将通过将 RAID1 设备视为普通文件系统来启动,一旦系统运行,就可以将其重新安装为 md 并将第二个磁盘添加到其中。这将导致追赶,但 /boot 文件系统应该很小。

答案2

您的 RAID 卷是否具有元数据版本 0.9?它们不包含足够的信息,无法让 grub 识别整个磁盘是否用于 raid 或只是其中的最后一个分区。

这是他们新近内置到 grub 中的检查。我遇到了类似的问题,我们正在处理错误报告:https://bugs.launchpad.net/ubuntu/+source/grub2/+bug/999076

相关内容