GRUB2没有在RAID分区上检测到操作系统

我最近添加了一个驱动器到一个系统,并成功RAID(RAID-1)的划分,除了启动分区。 我已经准备好并镜像了,但不能得到GRUB2(update-grub)来find它。

系统:Ubuntu 11.04 Raid元数据:1.2

如果我运行update-grub,它会在/ dev / sda2分区(当前的根目录)上find内核映像,而不是/ dev / md127上的映像。

/ dev / md127由“missing”和“/ dev / sdb2”组成。

/ dev / sdb上的fdisk确认sdb2的types是fd(raid autodetect),并且标记为可引导。

我有两件事我想做。

  1. 使/ dev / sdb2上的boot.cfg有一个菜单选项,使根目录为/ dev / md127
  2. 将grub安装到/ dev / md127,以便从那里使用实际的boot.cfg。

磁盘分区:

$ sudo sfdisk -l /dev/sda Disk /dev/sda: 30394 cylinders, 255 heads, 63 sectors/track Units = cylinders of 8225280 bytes, blocks of 1024 bytes, counting from 0 Device Boot Start End #cyls #blocks Id System /dev/sda1 0+ 13 14- 112423+ de Dell Utility /dev/sda2 * 14 7837 7824 62846280 83 Linux /dev/sda3 7838 8882 1045 8393962+ 82 Linux swap / Solaris /dev/sda4 8883 30393 21511 172787107+ 5 Extended /dev/sda5 8883+ 30393 21511- 172787076 83 Linux $ sudo sfdisk -l /dev/sdb Disk /dev/sdb: 30394 cylinders, 255 heads, 63 sectors/track Units = cylinders of 8225280 bytes, blocks of 1024 bytes, counting from 0 Device Boot Start End #cyls #blocks Id System /dev/sdb1 0+ 13 14- 112423+ de Dell Utility /dev/sdb2 * 14 7837 7824 62846280 fd Linux raid autodetect /dev/sdb3 7838 8882 1045 8393962+ 82 Linux swap / Solaris /dev/sdb4 8883 30393 21511 172787107+ 5 Extended /dev/sdb5 8883+ 30393 21511- 172787076 fd Linux raid autodetect 

这里需要注意的是/ dev / sdb2是r​​aid的一部分,而/ dev / sda2则不是。 / dev / sda2是目前非raid启动工作正常。 我想切换到RAID引导,当这是好的,转换SDA2突袭,并将其添加到“失踪”RAID驱动器。

 $ cat /proc/mdstat Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10] md5 : active raid1 sda5[2] sdb5[1] 172785980 blocks super 1.2 [2/2] [UU] md127 : active raid1 sdb2[1] 62846208 blocks [2/1] [_U] 

mdadm.conf的尾部。 这是由/ usr / share / mdadm / mkconf自动生成的

 # This file was auto-generated on Thu, 30 Jun 2011 14:38:15 -0500 # by mkconf $Id$ ARRAY /dev/md127 UUID=352d87d1:23d5c92d:04cfec0a:0340cbb1 ARRAY /dev/md/5 metadata=1.2 UUID=7ea17a90:6cbf0816:feef74da:5fa4f88a name=ramuh:5 

从/ dev / sda2启动的grub.cfg文件

  menuentry 'Ubuntu, with Linux 2.6.38-11-generic-pae' --class ubuntu --class gnu-linux --class gnu --class os { recordfail set gfxpayload=$linux_gfx_mode insmod part_msdos insmod ext2 set root='(/dev/sda,msdos2)' search --no-floppy --fs-uuid --set=root 7bbe19ee-c62c-4674-b0ca-281d1cedac00 linux /boot/vmlinuz-2.6.38-11-generic-pae root=UUID=7bbe19ee-c62c-4674-b0ca-281d1cedac00 ro quiet splash vt.handoff=7 initrd /boot/initrd.img-2.6.38-11-generic-pae 

谢谢!

Grub2现在对md设备有一些了解。 应根据需要通过可加载模块提供。

确保您的系统了解它需要启动md设备。 确保所有arrays在/etc/mdadm/mdadm.conf中列出并运行:

 # dpkg-reconfigure mdadm 

(NB:我最近在我的Debian系统上有类似的东西,但它也应该适用于Ubuntu)

在grub菜单上,按'e'编辑菜单项并手动更改root = kernel参数,使其指向raidarrays并从中手动启动。 然后运行update-grub,它会看到你正在从raidarrays启动,并将自己configuration为将来。

另外,你不需要单独的/ boot分区。