欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  科技

用系统引导程序Grub安装三系统不冲突的解决方案

程序员文章站 2022-05-20 23:34:58
怎么样才能让系统不打架呢?用grub是一个比较好的办法,因为grub是RedHat默认安装的。用grub来引导三个系统一点都没问题,也不用到处找别的收费软件了,详细请看本文... 13-09-30...

mandrake9.1在短时间内分别放出,做为linux的狂了爱好者,当然不能放过怎么好的机会——下载、刻盘ing……。

可是要怎么样才能让他们不打架呢?用grub是一个比较好的办法,因为grub是redhat默认安装的。

grub是什么呢?简单还说就是系统引导程序,用它来引导三个系统一点都没问题,也不用到处找别的收费软件了。
 
一、分区

本人的电脑中有两块硬盘,基本的想法是80g为win系统,10g的硬盘放两个linux系统,第一块硬盘中已有win2k系统,如果你只有一个硬盘,可以用pq分一个空区出来,然后在空出来的区中划一个交换分区,格式为/swap,大小一般为内存的1.5倍,如果你的内存为512m或者以上的交换分区和内存大小一样就行了,再分出两个大小为5g左右的根分区,格式化为ext3。这样做的好处就是当安装完linux系统后,win系统不会因为不识别ext3格式再变得非常缓慢。

二、安装linux系统

现在安装linux已经非常方便了,只要按屏幕上的提示来就行了,系统的安装不分先后,但是安装redhat9时把grub安装在硬盘hda1的mbr上,安装mandrake9.1时把lilo或grub安装到/boot的第一个扇区上就ok了。在linux中,主分区是hda1,第二个硬盘的主分区是hdb1,逻辑分区是从hda5开始的,如果有两个硬盘,可能就是从hdb5开始,以此类推。如果您不知道是怎么回事,就要用fdisk -l或df-la来查看。要安装系统的时候,也会有相应的让您选择安装位置,也是hdax或者hdbx分区之类的,linux下没有win的c和d盘之分。

三、修改grub.conf

系统安装完了,但是现在只能引导redhat9和win系统,必须要改一下/boot/grub/grub.conf才能让三系统正常运行,用root用户进入系统,先用fdisk -ld 终端中查看你的分区情况,知道分区情况就好办了,用任何文件编辑器来打开/boot/grub/grub.conf,一般来说,win系统会自动加载到grub里面的,下面是笔者的grub.conf文件,我们来分析一下

default=0

timeout=10

splashimage=(hd1,2)/boot/grub/splash.xpm.gz

title windows2k

rootnoverify (hd0,0)

chainloader +1

title redhat9

root (hd1,2)

kernel /boot/vmlinuz-2.4.20-8 ro root=label=/

initrd /boot/initrd-2.4.20-8.img

title mandrake9.1

kernel (hd1,4)/boot/vmlinuz root=/dev/hdb5 quiet devfs=mount acpi=off vga=788

initrd (hd1,4)/boot/initrd.img

default=x为默认启动的系统,0为排在第一个的系统,以此类推。

timeout=x为grub菜单停留的时间,单位为秒

title xxx,xxx为标题,也就是你要引导的操作系统的名字,可以自己修改

root (hdx,y)x和y都代表一个数值,x是linux的根分区在哪个硬盘上。如你只有一个硬盘。那就是hd0。如果你的linux的一个发行版是安装在第二个硬盘,这个x,就是1。y是代表您所安装的linux是在哪个区。这个数值有点不同,不太好说清楚。举个例子来说。比如我把mandrake安装到第二块硬盘的第二个分区,也就是hdb5了。那他的root (hdx,y),就应该写为root (hd1,4),也就是说y=hdaz或hdbz中的z减去1。

kernel (hdx,y)/boot/vmlinuz root=/dev/hdaz和initrd (hdx,y)/boot/initrd.img就是要引导哪个硬盘分区的映像和initrd文件,一定要写正确xy的数值,不然无法引导系统。

quiet devfs=mount acpi=off vga=788为启动的参数。

rootnoverify (hdx,y)如果不能启动win的话,可以改为root (hdx,y)来试试

chainloader +1意思是指定此分区上的第一个磁道来启动

想加入别的操作系统到redhat 中的grub中,也不过是如此,如者用其它发行版中的grub来引导别的发行版,原理也是一样的。这和win2k和xp中的boot.ini差不多,grub很简单吧,多试几次就会了。

做好一切,当然是重启电脑了,之后你就可以享受多系统在一起不冲突的乐趣了。