我的linux grub不能引导solaris 10!?
原先,我的操作系统是windows2003, RED HAT LINUX AS4,用grub引导两个系统-------很正常!但是昨天,在此之上我又安装了solaris 10(第一次接触),安装是很成功的,只是它的引导装载程序覆盖了我原先在主硬盘MBR上的grub(只能引导solaris 10和windows2003),我试着运行了solaris 10和windows2003-----一切正常!之后,我试着用linux的第一张安装光盘进入救援模式(rescue模式)来恢复linux的 grub引导程序-----成功了,但是grub这时只能引导linux和windows2003,solaris 10又进不去了( 苦呀!)
没办法,我只有暂时先这样了。进入linux后我用 fdisk -l命令查看硬盘分区的情况,如下所示:
Disk /dev/hda: 80.0 GB, 80026361856 bytes
16 heads, 63 sectors/track, 155061 cylinders
Units = cylinders of 1008 * 512 = 516096 bytes
Device Boot Start End Blocks Id System
/dev/hda1 1 24640 12418213+ 7 HPFS/NTFS //主硬盘第一个分区 (windows 2003中的C盘)
Partition 1 does not end on cylinder boundary.
/dev/hda2 24640 110368 43206817+ f W95 Ext'd (LBA)//扩展分区
Partition 2 does not end on cylinder boundary.
/dev/hda3 * 110369 155060 22524768 bf Unknown //主分区(激活)solaris
Partition 3 does not end on cylinder boundary.
/dev/hda5 24640 55575 15591051 b W95 FAT32
/dev/hda6 55575 80214 12418213+ b W95 FAT32
/dev/hda7 80214 95115 7510356 b W95 FAT32
/dev/hda8 95116 110368 7687071 b W95 FAT32
Disk /dev/hdb: 40.0 GB, 40060403712 bytes //从硬盘,全部用于RED HAT LINUX AS4
255 heads, 63 sectors/track, 4870 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/hdb1 * 1 26 208813+ 83 Linux
/dev/hdb2 27 2012 15952545 83 Linux
/dev/hdb3 2013 2978 7759395 83 Linux
/dev/hdb4 2979 4870 15197490 f W95 Ext'd (LBA)
/dev/hdb5 2979 3631 5245191 83 Linux
/dev/hdb6 3632 4154 4200966 83 Linux
/dev/hdb7 4155 4677 4200966 83 Linux
/dev/hdb8 4678 4868 1534176 82 Linux swap
大家看看我的“主分区(激活)solaris”处显示的是Unknown,由于我是第一次接触solaris,所以在安装solaris时有些具体的细节我只能是按步就班的来做,比如solaris分区我是先用diskman分区工具分好后再安装的,在diskman里我查看solaris分区,也显示为 “UNIX OTHER”,好象并不是与Linux swap一样的是82类型,安装的过程中,solaris应该会把它给格式化的吧?而且solaris运行一切正常呀!?(对了,在安装时我在这个主分区下建立了3个分区:/ ,/swap,/export/home)
我在网上找了相关的用grub来引导solaris的方法:修改/boot/grub/grub.conf,加入如下的内容:
title solaris 10
rootnoverify(hd0,2)
chainloader +1
可是在引导时提示:Invalid or unsupported executable format
请大家帮帮我吧,我好象看见了solaris的曙光,但是成功的路上需要您的帮助!
万分感谢所有帮助我的朋友!谢谢! 如果只有两个硬盘
rootnoverify(hd0,2)
应该是
rootnoverify(hd0,1)
如果grub不同上一个盘上,应该另外加上
map (hd0) (hd1)
map (hd1) (hd0)
详见 http://www.linuxfans.org/nuke/modules.php?name=Forums&file=viewtopic&t=29204
相信你可以搞定它。 :mrgreen: 谢谢您--“月下刀客”斑主!
只是我还是有些不明白:为什么
应该是
rootnoverify(hd0,1)
还请指教!? 是我看错了,sorry。
应该还是2 还要问一下斑主:
如果grub不同上一个盘上,应该另外加上 //这句有点不明白
map (hd0) (hd1)
map (hd1) (hd0) 应该是grub不在同一个硬盘上。比如grub在hdb上,要启动hda上的系统。(刚才打错字了,咋的,今天老出错)
map可以使两个硬盘相互映射。
看我给你的链接文章就知道了。 哦!我明白了,谢谢斑主的帮助。
但是,我的grub是安装在主硬盘上的也就是安装在solaris与windows的那个硬盘上的,那么是不是不需要这个映射呢?
另外,我是这样考虑的,还请帮我参考一下:
我现在不能肯定solaris是不是在安装时会自动把我设置的那个分区给格式化成solaris自身的格式,如果是的话,那是不是我的内核不支持solaris分区信息!
编译内核我还是不会,不知哪里有RPM包可以下载的? 问题解决了,原来是我的grub.conf文件有问题:
title solaris 10
rootnoverify(hd0,2) //错误就在这里:左括号前应该有空格
chainloader (hd0,2)+1
修改后,重新启动系统,引导到solaris---OK!可是登录后进入桌面时出现了错误,说是GNOME的什么出了问题。于是我又重新振奋了起来,在网上查找相关资料终于找到了解决办法:还是修改grub.conf文件:
title solaris 10
rootnoverify(hd0,2)
chainloader (hd0,2)+1
makeactive//激活主分区
boot//这里我不明白起什么作用,只是看资料是这样,也就照做了
现在一切OK了,三系统共存,用GRUB引导,两天的努力---很值得!!
希望能对后来的朋友起到一个参考的作用!
谢谢坛子里热心的朋友!!
chainloader (hd0,2)+1
后面的+1什么意思?
后面的+1什么意思?
应该是指:所指定系统根root分区的第一个扇区。
页:
[1]