平谷六号 发表于 2004-9-23 21:47:47

RH9遇到Grub error 18不能多重引导的请进!

自RH9面世以来,不断有用户报告在双引导或多引导时出错,Grub错误代号error 18。而对于解决方法,也是众说纷纭,有说一定要分两个主分区的,有的说一定要只分一个主分区的,有的说调整BIOS的,有的说一定要单独分一个/boot区的,有说重装Grub的,有说改用NTLoader/Grub4Dos的。近日在下也遇到了这个问题,几经周折终于解决。现写点体会希望后来者少走弯路:

1. 问题的产生:如果你对Grub error 18的概念和历史已很了解,请跳过这一段,解决这个问题首先要明白什么是Grub error 18,它是指Grub加载时在预计的硬盘柱面范围(对于RH9为1~1024)内没有找到系统内核。据说Grub不能寻址1024以上柱面这个问题在RH8中已经解决,但不知什么原因,RH9(Grub版本号0.93)在这方面又倒退回去。同时,由此还衍生了其它问题,比如,在安装程序中不论用自动分区还是Disk Druid手分,只要显式地违返此规则,都会报错误的配置参数,而在安装时grub.conf会包含错误。修正这些表面错误不会,“重复——不会”,对Grub正确引导系统起帮助作用,包括在安装光盘拯救模式的shell下使用grub-install /dev/<设备名>重装Grub!而这一失败的方法是本版精华区所保留而且受到版主hew肯定的!这本质上来说根本不是多重引导的问题,但确实易为多重引导引发。因为多重引导时一般是别的分区先装,有些人还喜欢把属于同一种的系统分区连续排列,这很容易超过1024柱面的范围。另外,如果不把/boot挂载点单独分一个区,也很容易造成同样的问题,因为即使在/处于1024柱面的范围内时,有可能根/所在分区很大,而其下的/boot的实际位置是自动设的,不一定就也在1024柱面范围内。
2. 问题的解决:不了解问题的根本所在,只是生搬过去的经验是行不通的,相信有不少人在这个问题上已有陷入泥潭的深深无力感。而在了解了问题的根本原因以后,解决它就很简单了。
既然问题的起因是Grub 0.93不能寻址1024以上柱面,那么把系统内核(在挂载点/boot之下)装在1024以下柱面就可以了。这就要求任何情况下要单独分一个区给/boot,同时这个区应尽量靠前,双重引导下最好紧跟第一个分区(主区,系统分区,占用少于1024柱面),不一定非要分为Primary,多重引导类似。当然,安装完Grub双引导系统后要手动激活分区,这也算是这款RH的又一缺陷吧! :mrgreen:

zhizhuo 发表于 2004-9-23 22:26:25

深有体会!当时不晓得我不分swap就不出现这种情况!搞不动!

平谷六号 发表于 2004-9-23 22:41:19

老大你把swap分到/boot或/前面去了? :shock:

nostoryboy 发表于 2006-1-2 21:57:33

1024柱面……这个概念还需要多学习下,对硬盘结构不是很了解,这样就很难把握第一个分区该分多大
/boot通常分100M就够鸟?
页: [1]
查看完整版本: RH9遇到Grub error 18不能多重引导的请进!