深入解析Ubuntu Linux系统分区的全过程

  • 来源: 互联网 作者: 李祥敬   2010-01-14/13:27
  • 一、Linux 分区概念

    首先介绍一下linux中的分区概念,这个可是把一开始学习的我害苦了。在 Linux 中规定,每一个硬盘设备最多能有 4 个主分区(其中包含扩展分区)构成,任何一个扩展分区都要占用一个主分区号码,也就是在一个硬盘中,主分区和扩展分区一共最多是 4 个。对于早期的 DOS 和 Windows(Windows 2000 以前的版本),系统只承认一个主分区,可以通过在扩展分区上增加逻辑盘符(逻辑分区)的方法,进一步地细化分区。

    主分区的作用就是计算机用来进行启动操作系统的,因此每一个操作系统的启动,或者称作是引导程序,都应该存放在主分区上。这就是主分区和扩展分区及逻辑分区 的最大区别。我们在指定安装引导 Linux 的 bootloader 的时候,都要指定在主分区上,就是最好的例证。

    Linux规定了主分区(或者扩展分区)占用 1 至 16 号码中的前 4 个号码。以第一个 IDE 硬盘为例说明,主分区(或者扩展分区)占用了 hda1、hda2、hda3、hda4,而逻辑分区占用了 hda5 到 hda16 等 12 个号码。因此,Linux 下面每一个硬盘总共最多有 16 个分区。

    对于逻辑分区,Linux 规定它们必须建立在扩展分区上(在 DOS 和 Windows 系统上也是如此规定),而不是主分区上。因此,我们可以看到扩展分区能够提供更加灵活的分区模式,但不能用来作为操作系统的引导。

    以前对这些概念不熟,分区上走了很多弯路。那么,到底什么样是一个好的分区方案,我认为见仁见智,我是这样分的。原则上/ 和/home基本上最好是要单独挂载两个分区,因为home可以看成是windows中的my document,自己个人资料多的话home要大一些。/小一点无所谓,据说至少2G,我也没有试验过。其他的诸如/tmp和/var由于活动文件特别 多,为了避免他们的文件碎片对其他区的影响,最好他们挂一个区。最后/opt主要安装大型软件,如果有多余的分区就给他挂一个吧。#p#副标题#e#

    二、开始分区

    ok, 我就这样看,首先分一个100M的主分区出来,挂载boot。grub启动时需要的文件都在/ b o o t 目录。这样就算工作分区出了问题,只要这个分区没有问题,同样可以启动。因此最好的办法就是专门为根文件分一个区,大小一般最多64M,我为了保险给了 100M。

    之后的分区全部以扩展分区形式存在,扩展分区下很多逻辑分区。

    首先创建一个交换分区,大小是无力内存的一倍到两倍大。如果你的内存和我一样是1G,就划1G好了。事实上基本用不到这么大。分区格式记着改成linux-swap。

    然后创建一个尽量大的分区,给/usr,因为这里存放有大部分的系统软件,包括X Server等图形界面程序。我分了20G。

    接下来创建/home的挂载分区。考虑到我的工作文档比较多,源代码和程序也经常放到这里,所以给了10G。

    其他的诸如tmp,var等来说,单用户工作机是不用考虑的。当然不知道我的机器以后会不会有服务器应用,我还是给var分了2G的空间。

    其他空间就全部挂载给/。虽然一般2G就够了,但是多多益善么。

    注意:很多时候,如果你使用了ubuntu光盘自带的安装工具分区,会出现很多问题。如果遇到问题过不去,推荐两个办法:

    1 在live CD的环境中,在终端下直接用sudo fdisk /dev/xxx

    来分区,然后w保存后reboot,之后再进安装工具,手工编辑注册表时它认得的就是你编辑的分区表,不用修改直接下一步即可。

    2 你也可以同样用livecd的fdisk分好区后,用光盘上的livecdinstaller程序,在命令行下安装。不过这个安装程序只需要你挂载/和swap。那么其他分区怎么办呢?可以先在分好,也可以安装完系统再分。如果将其他分区挂载到希望的目录下?举个例子。如果你想把/home/user挂载到新的sda8分区下,可以这样做:

    首先,将/dev/sda8 mount到 /mnt/sda8中。如果没有这个目录就自己mkdir。

    然后,cp -R /home/user/* /mnt/sda8/user ,和cp -R /home/user/.* /mnt/sda8/user

    最后修改/etc/fstab,增加一行/dev/sda8 /home ext3 defaults 0 2(参数自己确定)即可。


    评论 {{userinfo.comments}}

    {{money}}

    {{question.question}}

    A {{question.A}}
    B {{question.B}}
    C {{question.C}}
    D {{question.D}}
    提交

    驱动号 更多