灰儿 发表于 2016-6-9 16:33:24

板载Fake RAID安装Ubuntu server 12.04无法自动安装grub的解决办法

联想万全T168/T468 G5 塔式服务器,板载 LSI megaRAID software RAID 软磁盘阵列卡,两块250G SATA硬盘已经在主板bios里面设置成raid1。开机显示软 RAID 卡型号如下:



我安装的是Ubuntu 12.04 64位服务器版本。

开始的安装很顺利,到最后一步grub无法安装,出现致命错误,这个时候是关键了,不要慌张。在live USB的“拯救模式”里面打开一个终端。
以下是步骤:
1.提权# sudo -i    #提权
2.查看raid阵列分区状况,获取 Linux 系统安装分区编号用ls和blkid命令查mbr分区情况:# blkid# ls -l /dev/mapper
假如我的 raid 的 / 分区是 ddf1_XXXXXXXXXXp1,也有的raid的识别为 md126p1 样式。

3.挂载ubuntu安装根分区:
# mkdir target或# chroot /target /bin/sh
# mount /dev/mapper/pdc_XXXXXXXXXXXXp1 /target
pdc_XXXXXXXXXXXX 在安装过程中应该有,p1为分区编号,没有记住的话,df 命令可以列出来。
4.挂载其他所需的目录(使用 --bind)mount --bind /dev /target/devmount --bind /proc /target/proc   #经测试,此步可省略
mount --bind /sys /target/sys         #经测试,此步可省略
5.Chroot 到raid阵列上的 Linux 系统

# chroot /target
6.创建device.map给grub
# echo "(hd0) /dev/mapper/pdc_XXXXXXXXXXXX" > /boot/device.map


这里的 pdc_XXXXXXXXXXXX 是raid阵列设备的的代号,代号后面不要再加分区编号

# cp /boot/device.map /boot/grub/


7.安装&更新 Grub
# grub-install --root-directory=/ /dev/mapper/pdc_XXXXXXXXXXXX或# grub-setup /dev/mapper/pdc_XXXXXXXXXXXX
grub会自动找到并且配置好ubuntu启动选项,生成/boot/grub/grub.cfg文件。
注意root-directory参数跟的是”/”,空格,” /dev/mapper/pdc_XXXXXXXXXXXX″,前一个目录参数是指定根目录,后一个目录参数是指定安装位置。

# update-grub#非必需

8.Grub 已经修复成功,我们还需要退出 chroot 环境、卸载已经挂载的设备与目录(以下操作可省略):
# exit                #退出 chroot 环境# umount /target/dev# umount /target/proc# umount /target/sys# umount /target
9.重启!

软raid不能自动安装grub的原因分析:
问题原因应该出自 Fake RAID 组成的逻辑卷起始并不是物理上的首磁盘,引起了 grub 安装到了错误的位置上,在raid的安装上,如果要mount到合适的/boot分区,就必须mount到/dev/md126pX这种设备上,而这些设备是没有所谓MBR的,而GRUB的安装参数则必须要放到/dev/md126上,这个小小的差异就导致了问题。

intel主板识别出的RAID名称为 isw_****,如果主板是AMD的将会得到 pdc_**** 的名称。
页: [1]
查看完整版本: 板载Fake RAID安装Ubuntu server 12.04无法自动安装grub的解决办法