从整理论坛的情况来看,还是有弟兄不能搞定GRUB引导多操作系统的问题.看来再次讨论还是有点必要.当然有经验的弟兄,根本就无需看这帖.如果初次安装多操作系统,总是出这样或者那样的问题.这也正常,其实最好的解决办法就是多安装几次,多format几次,这个问题一点也不难.
一.分区:
这也是大家常谈的事了,其实也没有什么难的,但这是最重要的.分区时,最好一次成功.不要给后面安装操作系统带来麻烦.比如空间的大小,分区的个数等.主、扩展以及逻辑分区的个数.这些都是最重要的.
1.硬盘划分为什么很重要?
您可以用dos下的PQ,可能这是最简单的分区工具了.主分区最好只有一个,扩展分区也是一个了.逻辑分区那就根据自己的需要来分.分区要规划好,以防为以后安装操作系统带来麻烦.要有个预期,也就是说,以防您以后安装操作系统,而没有空间.我们就要划分硬盘要好好的规划.以满足我们未来不可预期情况的需要.
2.我应该把硬盘划分为多少个区,每个区应该有多大?
对于这个问题,可能有的弟兄很是疑惑.其实对于我们玩家来说,无非是学习和实践.我们要为每个linux划分为一个区,空间大小为6G以上.现在的linux体积都很大,如果是初次玩linux,我还是建议完全安装,这样便于您的学习,否则少东少西的,自己都不知道为什么.等玩的技术差不多时,你再拫据自己的需求来选择安装组件.
举个例子,比如我想在一块硬盘上安装两个linux和一个windows,那我就可以这样来划分硬盘.把windows的分区放在硬盘的第一个分区.这个分区大家常用来安装windows系统.如果您还想为windows划分应用程序的分区以及备份文件的分区,那就把第二个和第三个等分区做为windows的分区.linux分区要放在windows的分区的后面,应该避免把windows和linux的分区交叉.我们可以用PQ把linux分区分好.为每个linux分一个大一点的分区6G以上,这里,我们将要在每个分区里,要安装一个linux,其实每个6G左右的分区,就是我们要安装linux的根分区.然后再划分一个小一点的分区,大小为内存的两倍就行.如果用PQ来划分.linux的分区格式,可以不用指定.安装系统时,也会有相关的步骤来格式化磁盘.
仔细看一下下面的例子:
在这里,我把安装了,两个linux和一个windows,分区情况如下.主分区是hda1,格式为ntfs,系统是XP,hda2是扩展分区,hda5是逻辑分区,格式为nfts,是windows的安装应用软件的磁盘,hda6,hda7是逻辑分区,格式为fat32的,也是windwows用的,我用来备份和存放常用程序和文档的磁盘.hda8和hda9是linux的磁盘.看一下应该能看得出来,大小为6-7G左右吧.在hda8和hda9,我每个区都安装了一个linux,也就是说,这两个分区是不同的linux的/根分区.hda10也是linux的磁盘,大小是内存的1.5倍,如果您的内存为512M或者以上的,交换分区和内存大小一样就行,格式为/swap.也就是linux的交换分区.
linux的分区,没有windows下面的C盘和D盘的概念.这一点大家应该明白.
一块磁盘最多只能分4个主分区.扩展分区也算一个主分区,为了简便 ,我们一块硬盘就分一个主分区,一个扩展分区,其它的都是逻辑分区.下面的例子就是.这样做的好处就是在安装linux的时候,分区表不会错,也不会出现这样或者那样危机windows分区的情况.
在linux中,逻辑分区是从hda5开始的,当然这是说一台机器中只有一个硬盘的情况来说的.如果有两个硬盘,可能就是从hdb5开始,以此类推.如果您不知道,是怎么回事,就要用fdisk -l来查看.要安装系统的时候,也会有相应的让您选择安装位置 ,也是hdaX或者 hdbX分区之类的,没有WIN的C和D盘的概念.
[root@linuxsir01 root]# fdisk -l
Disk /dev/hda: 255 heads, 63 sectors, 4865 cylinders
Units = cylinders of 16065 * 512 bytes
Device Boot Start End Blocks Id System
/dev/hda1 * 1 1147 9213246 7 HPFS/NTFS
/dev/hda2 1148 4864 29856802 f Win95 Ext'd (LBA)
/dev/hda5 1148 2039 7164958 7 HPFS/NTFS
/dev/hda6 2040 2804 6144831 b Win95 FAT32
/dev/hda7 2805 3824 8193118 b Win95 FAT32
/dev/hda8 3825 3830 7768163 83 Linux
/dev/hda9 3831 4799 7783461 83 Linux
/dev/hda10 4800 4864 522081 82 Linux swap
3.硬盘的分区划好后,我如何安装linux呢?
我们可以先安装windows,然后再安装linux,这样做的目的就是用grub能把windows引导起来.如果先安装linux,可能windows就把grub从MBR中删除.我们如果重装windwows经常会出现这样的情况,方法只是把GRUB恢复一下就行了.为了方便,我们还是先安装windows.这样就减少不少劳动.呵……
接着举例:
在这里,我是先安装Mandrake 9.0,到hda8,这样做的,在安装过程中,有个[自定义],在划分硬盘和安装软件时都有[自定义].我们就选这一项,然后把光标移动到hda8,[编辑,指定分区格式和挂载点.格式为ext3,挂载点为/.OK一下,然后再移动hda10,我们编辑这个分区,格式为/swap.这样就简单了.分区都处理好了,就是选择组件来来装.下面就是点鼠标.应该简单……一直到.
然后我们安装redhat 8.0到hda9,也就是说,我们要把redhat 8.0的根分区设置为hda9.安装过程也一样的……在划分磁盘是,要[自定义]用disk druid 来分区.光标移动到hda9,然后[编辑],格式为ext3,挂载点为/,可能会跳出一个对话框,那就anyway.吧.不用再编辑交换区了,系统能认得出hda10是交换区,不用我们再设置了.linux的交换区是能共用的.我们把hda9设置好后,确认一下,就进入软件安装的过程了.也是[自定久]……下面的就一路下去,不用我多说了.
到GRUB的设置的那一块.我们要把GRUB安装到MBR上.这样就把mandrake的GRUB覆盖.这也没有什么可怕的,我们可以把它加在Redhat 的GRUB中,系统安装好后,我们设置一下就行了.只是修改一个文件/etc/grub.conf
4.如何修改/etc/grub.conf
一般的发行版,GRUB的配置文件都在/etc/grub.conf中,如果我们安装了多个linux,就要修改这个文件.那我们如何修改呢?一般的情况下,windows是自动加载到了grub.conf中,打开grub.conf,就能看到windows的设置情况.可能有时系统会突然出现不能引志windwows的情况,我们就要下面的类似的改动一下.
title DOS
rootnoverify (hd0,0)
chainloader 1
改成
title WinXP在这里,title是的,WinXP,您可以用别的名,您喜欢怎么样就怎么样.
root (hd0,0)
chainloader 1
这样就能启动了.
2.如何把其它的linux的引导加入到GRUB来引导呢?我们可以用下面的方法.也是比较简单.GRUB引导linux系统,就是靠三行来定义.
title XXX
在这里,XXX是您要引导的操作系统的名字.可以自己来定.
root (hdX,Y)
在这里,X和Y都代表一个数值.X是linux的根分区在哪个硬盘上.如果您只有一个硬盘.那就是hd0.如果您的linux的一个发行版是安装在第二个硬盘,这个X,就是1.那Y代表什么?Y是代表您所安装的linux是在哪个区.这个数值有点不同.用原理没有办法说清楚.应该用实例来说.比如我把mandrake安装到hda8了.那他的root (hdX,Y),就应该写为root (hd0,7),也是说是linux所在的根分区hdaZ中的Z减去1就是这个Y的数值:在这之中,hdaZ或者 hdbZ中的Z也是一个数值.看一下上面的例子就明白了.
用fdisk -l 或者df -la来查看
kernel /boot/vmlinuz root=/dev/hdaZ
这里中的Z,也是一个数值,接着上面的例子,我们把Mandrake的引导加入到Redhat 的GRUB中.就可以写成如下的样子:
kernel /boot/vmlinuz root=/dev/hda8
通过上面的分析,我们要让Redhat的GRUB来引导Mandrake 9.0,我们要改动Redhat中的GRUB的配置文件,加入下面的一段:
title MD 8.0
root (hd0,7)
kernel /boot/vmlinuz root=/dev/hda8
如果您想加入其它的操作系统到Redhat 中的GRUB中,也不过是如此,如者用其它发行版中的GRUB来引导别的发行版,原理也是一样的.
GRUB是不是很简单???