红联Linux门户
Linux帮助

再探安装多操作系统分区 grub的设置问题

发布时间:2006-01-03 09:58:23来源:红联作者:linux_
  从整理论坛的情况来看,还是有弟兄不能搞定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是不是很简单???
文章评论

共有 6 条评论

  1. shanke 于 2009-09-15 17:58:48发表:

    好贴子???值得学习,案例丰富,讲的很好

  2. hantu 于 2009-08-12 00:24:02发表:

    瞄一眼

  3. yan0917 于 2009-08-11 16:53:51发表:

    感谢楼主,深入学习了……

  4. lonkki 于 2009-08-11 09:57:52发表:

    多操作系统一直是我神往的东东,谢谢楼主分享.

  5. bcyx 于 2009-08-10 21:44:55发表:

    介绍得比较容易看得懂

  6. ffsedan 于 2009-05-18 17:53:37发表:

    如此好铁,居然沉了