如何让 GRUB2 在 RAID 1 上检测并启动 Ubuntu?

如何让 GRUB2 在 RAID 1 上检测并启动 Ubuntu?

grub 2 无法检测到/dev/md1我的计算机上哪个是 raid 1 驱动器。

当我按下cgrub 菜单并运行时ls,我得到了所有驱动器的列表,但没有看到md1用于启动 Ubuntu 的驱动器md1_p1

这是我在 grub2 文件中使用的配置40_custom

    menuentry "Ubuntu 12.10 uuid" {
        insmod ext2
        insmod mdraid
        set root='(md1,1)'
        search --no-floppy --fs-uuid --set=root 23451bea-fd08-cff7-9289-9f9aa51f8599
        linux /boot/vmlinuz-3.5.0-17-generic root=UUID=23451bea-fd08-cff7-9289-9f9aa51f8599 ro
        initrd /boot/initrd.img-3.5.0-17-generic
}

我可以加载安装在其他分区上的 Linux,但无法启动刚刚安装在 raid 1 ext4 fs 上的 12.10。

答案1

我能够使用boot-repairLive CD 修复该问题。我遵循了以下步骤

  1. 使用 Live CD 启动 Ubuntu
  2. 安装 mdadm sudo apt-get install mdadm
  3. 组装阵列 sudo mdadm --assemble --scan
  4. 安装启动修复sudo add-apt-repository ppa:yannubuntu/boot-repair && sudo apt-get update sudo apt-get install -y boot-repair && boot-repair
  5. 使用启动修复中的高级选项,我能够选择 /dev/md1 作为我的操作系统(这是我之前安装 ubuntu 的 RAID)
  6. 重新启动并选择 Ubuntu on RAID 1

这样,启动修复就清除了以前安装的 grub,并安装了一个新的,我认为这就是问题解决的方式,因为这个新版本能够检测到 RAID 1 驱动器。

答案2

您可能需要将 linux 参数 --domdadm 传递给内核,如下所述这里因为在早期阶段不会安装 raid 设备。

相关内容