用GRUB引导多LINUX系统的方法,建议新手看看



个人的经验:
多个WINDOWS系统的安装想必大家都知道方法,先装低版本,再装高版本,自动生成多启动菜单。

再安装上一个LINUX系统也不是难事,往扩展分区里装就是正解(建议看看老刀的精华帖)。倒是设定引导程序的位置让很多菜鸟为难,一个是往MBR上装,一个是往LINUX系统所在的分区的第一个扇区里装,各发行版本的LINUX在安装GRUB时都会出现这两个选项。根据我的实际经验,往MBR上装绝对没问题(不要相信所谓的LINUX教程上的内容,要自己试),GRUB的多启动菜单绝对会出来,后面的那种方法我试过(安装FC1、FC4、MDK10时),系统安装完后,只见到WINDOWS的多启动菜单,GRUB愣是不出来。不过MBR是各个系统的必争之地,尤其是WINDOWS一旦重装,MBR记录就被覆盖,GRUB也就没了,也难怪各种书籍上建议不要往MBR上装。建议在安装好WINDOWS后作好GHOST备分,重装系统就不要用安装光盘了,直接还原。放心,根据我的经验,GHOST还原不会影响MBR信息。GRUB进行多系统引导的功能很强,往MBR上安装好后就可以从引导菜单中引导出WINDOWS的多启动菜单,再启动各个版本的WINDOWS。

这次我在装有WINDOWS XP的笔记本上(只有内核版本为2.6的LINUX可以支持笔记本)又安装了FC4(Fedora Core 4)和RFDT5(Red Flag Desktop 5.0)。FC4比较专业,适用于学习LINUX的高级操作和开发;RFDT5是国内开发的,易用性和中文化比较出色,适用于LINUX的个人应用。安装时先在扩展分区尾部划出大块的空闲空间,约15GB,用于两个LINUX的安装。装完FC4,扩展分区尾部的空闲空间还有7GB多,接着RFDT5被装到这7GB的空间里。两个系统的GRUB都往MBR上装,当然留下来的只会是后来者。安装完后的分区表如下:请新手注意LINUX下硬盘分区的编号方式
分区编号        所属操作系统        文件系统格式        标签/挂载点
hda1(hd0,0)        WINDOWS XP        NTFS        System
hda2(hd0,1)        WINDOWS XP        NTFS        Security
hda5(hd0,4)        WINDOWS XP        VFAT        VFAT
hda6(hd0,5)        WINDOWS XP        NTFS        NTFS-1
hda7(hd0,6)        WINDOWS XP        NTFS        NTFS-2
hda8(hd0,7)        Fedora Core 4        EXT3        /boot
hda9(hd0,8)        Fedora Core 4        EXT3        /home
hda10(hd0,9)        Fedora Core 4        EXT3        /usr
hda11(hd0,10)        FC4和RFDT5共用        SWAP        不适用
hda12(hd0,11)        Fedora Core 4        EXT3        /
hda13(hd0,12)        RFDT5        EXT3        /boot
hda14(hd0,13)        RFDT5        EXT3        /
hda15(hd0,14)        RFDT5        EXT3        /usr
hda16(hd0,15)        RFDT5        EXT3        /home

注意:普通的MBR硬盘最多支持4个主分区,或最多3个主分区加一个扩展分区,在一个扩展分区中可划分的逻辑分区个数在理论上是无限的;而GTP(GUID分区表)硬盘最多可支持128个主分区,因此无须扩展分区。

虽然安装RFDT5的GRUB时,添加了FC4,引导位置指向FC4的根目录(/)挂载的分区hda12(hd0,11)。但RFDT5可以正常引导,而FC4无法引导,总是显示“找不到文件”。GRUB在引导时LINUX时要把该版本LINUX的内核挂载上,要找到FC4的/boot目录下vmlinuz-xxx和initrd.-xxx.img两个文件,同时GRUB还要知道根目录挂载的分区编号。要让GRUB的多启动菜单中出现能正常引导FC4的选项,就必须更改RFDT5的GRUB的配置文件,这个文件在hda13(hd0,12)分区下,路径为/boot/grub/grub.conf。更改LINUX系统中的配置文件都要用到vi编辑器。下面就来介绍如何更改:
(1)        在RFDT5系统中启动命令行终端;
(2)        命令:vi /boot/grub/grub.conf    启动vi编辑器并打开grub.conf文件
(3)        注意打开的文件内容中的这一部分:
以下语句均是正确的
title Red Flag Desktop 5.0 (2.6.9-5.34DT)
root (hd0,12)
kernel /vmlinuz-2.6.9-5.34DT ro root=LABEL=/1 vga=785 splash=silent resume2=swap:/dev/hda11
initrd /initrd-2.6.9-5.34DT.img

title Red Flag Desktop 5.0-2.6.9-5.34DT (Safe Mode)
root (hd0,12)   
kernel /vmlinuz-2.6.9-5.34DT ro root=LABEL=/1 4   
initrd /initrd-2.6.9-5.34DT.img

title Red Flag Desktop 5.0-2.6.9-5.34DT (Console Mode)   
root (hd0,12)   
kernel /vmlinuz-2.6.9-5.34DT ro root=LABEL=/1 3   
initrd /initrd-2.6.9-5.34DT.img

title Microsoft Windows   
rootnoverify (hd0,0)   
chainloader +1

title Red Hat Fedora Core 4   
root (hd0,7)   
kernel /vmlinuz-2.6.11-1.1369_FC4 root=/dev/hda12   
initrd /initrd-2.6.11-1.1369_FC4.img

很明显title后的语句就是GRUB菜单中的各个选项的名字,可以看出GRUB的引导菜单中共有5个要引导的对象。

对于LINUX系统,root语句指明GRUB的根文件系统要挂入的分区,注意GRUB的根文件系统与LINUX操作系统的根文件系统是没有任何关系的,只是为了挂入分区;kernel语句就是要把指明路径下的LINUX内核装载上,注意这个路径是针对按照GRUB的根文件系统来确定的,并非LINUX系统的根文件系统。

例如:FC4的内核vmlinuz-2.6.11-1.1369_FC4位于分区hda8(hd0,7)上,这个分区挂载在FC4的/boot目录上,在FC4中内核的路径为/boot/ vmlinuz-2.6.11-1.1369_FC4,实际上LINUX的内核就在LINUX的/boot目录下,但这个分区挂在GRUB的根文件系统(/)上后,路径就应为/ vmlinuz-2.6.11-1.1369_FC4,/下的内容就是hda8(hd0,7)中的内容而不是FC4的/所挂上的hda12(hd0,11)中的内容。因此,kernel 后的参数是/vmlinuz-2.6.11-1.1369_FC4,而不是/boot/ vmlinuz-2.6.11-1.1369_FC4,后面给root变量赋的值才是FC4的/挂上的分区编号,GRUB在引导过程中必须让内核启动后知道LINUX根文件系统的位置。ro一般表示的是该分区以只读的方式挂载。

initrd语句要将initrd文件装载,这个文件的作用我还不是太明白,据说是提供什么可用的RAM盘。这个文件在启动LINUX时很重要,因此也要将其在GRUB的根文件系统中的路径指明,而这个文件总是和内核在同一路径下。
由于WINDOWS使用的是链式装载方式进行启动的,title下的引导语句就和LINUX不一样。由于涉及写块列表的知识,这个我就不太懂了。一般的GRUB配置文件中的关于引导WINDOWS的这一部分内容都和上面列出的部分完全一样。

理解了上面所讲的内容,那么要引导出FC4,就只要把root  kernel  initrd语句学着上面的例子写对就可以了,关键是路径和分区编号必须准确。当初我的FC4引导不出来,就是因为RFDT5的GRUB把它识别为了WINDOWS这种采用链式装载的系统,title下的语句是引导WINDOWS的写法。

在vi中更改文本,需知道vi的一些基本操作:
(1)        直接在命令行下输入vi加文件名就可以启动vi进入一般模式并打开文件,但在一般模式下无法进行编辑;
(2)        只要按下I、o、a等字符,就可以进入编辑模式,对文本中的内容进行更改;
(3)        编辑好后,按Esc键退出编辑模式,返回一般模式;
(4)        在一般模式下按下:(即进行输入:的操作),这时光标会移动到画面的左下角,等待输入指令,输入q执行,退出不存盘;输入wq执行,存盘并退出;输入wq!执行,强制存盘并退出,这是在文件的权限不允许写入时采用的。
以上就是我的部分经验,如有错误、疏漏和不明之处,还望各位朋友指出。关于LINUX的目录结构、硬盘分区编号方法和vi的使用方法日后再发帖细说。
 

你可能感兴趣的:(用GRUB引导多LINUX系统的方法,建议新手看看)