现在的位置: 首页 > 综合 > 正文

理解Linux的硬盘分区

2014年03月05日 ⁄ 综合 ⁄ 共 1897字 ⁄ 字号 评论关闭

理解Linux的硬盘分区

 

通常,硬盘是由最小的物理组成单位扇区(sector)组成的,数个扇区组成一个同心圆时,就称之为柱面(cylinder),最后构成整个硬盘的容量大小。硬盘的数据示意图如下所示。

从图中可以看出,硬盘里分为两个区域,一个是放置这个硬盘的信息区,我们称之为主引导分区(Master Boot RecorderMBR),一个是实际文件数据放置区域。MBR可以说是整个硬盘最重要的地方,因为在MBR里记录了两个重要的信息,分别是:引导程序与磁盘分区表(partition table)。一旦MBR物理实体损坏时,那么这个硬盘就差不多要报废了。如果系统找不到分区表,就无法使用这块硬盘了,所以数据即使没有丢掉,但是没有MBR,还是不能使用。

先来解释一下分区表。简单而言,我们说的硬盘分区就是在修改这个分区表。它基本上定义了n个磁盘块是从第x个柱面到第y个柱面,所以,每次当系统要去读取n磁盘块时,就只会去读取第xy个扇区之间的数据。很简单吧,在和别人谈论磁盘分区的时候,不要以为系统真的会在硬盘上努力地划标签。实际上,它就是修改MBR里面的分区表。

通常,由于这个MBR块的容量有限,所以当初设计时候,就只有设计成4个分区记录,这些分区记录就被称之为主分区及扩展分区(Extend)。也就是说,一个硬盘最多可以有4个(主+扩展)分区,其中扩展分区只能有一个,因此如果要分成4块磁盘分区的话,那么最多可以这样分区:

P + P + P + P

P + P + P + E

需要特别注意的是,如果上述情况中,3P+E只有3个可用磁盘,要4个都可用,就要分成4个主分区了(因为扩展分区不能直接使用,还需要划分成逻辑分区才行)。那么,为什么要有扩展分区呢?这是因为,如果我们将硬盘划分为5个分区的话,那怎么办?这个时候就需要扩展分区来帮忙了。

由于MBR仅能保存4个分区的数据记录,如果超过4个,系统允许在额外的硬盘空间放另一份磁盘分区信息,那就是扩展分区了。假设将硬盘分区成3P+E,那么E其实是告诉系统,磁盘分区表在另外的那份分区表,也就是说,那个扩展分区其实就是指向(point额外分区表。本身扩展分区是不能在任何系统上使用的,还需要额外将扩展分区成逻辑分区才能使用,所以,通过这个扩展分区,可以分为5个以上可用的分区。但是,在实际分区时,还是容易出问题,下面我们来看看:

思考一:如果我要将大硬盘暂时分成4个分区,同时,还有其他空间用于下一次进行规划,那该如何分区?

通过前面的说明可以知道,主分区+扩展分区最多只能有4个分区,如果要超过5个分区,就需要扩展分区。在这个例子中,我们千万不能分成4个主分区,为什么呢?假如是一个20GB的硬盘,而4个主分区共用了15GB,是否还有5GB可以利用呢?错。剩下的5GB“完全不能使用,这是因为已经没有多余的分区表记录区可以记录了,因此也就无法进行额外的分区,当然,空间也就被浪费了。因此,请千万注意,如果分区超过4个时,一定要有扩展分区,而且必须将所有的剩下空间都分配给扩展分区,然后再以逻辑分区来规划扩展分区的空间。另外,考虑到磁盘的连续性,一般建议将扩展分区放在最后面的柱面内。

思考二:是否可以仅分区1个主分区与1个扩展分区?

当然可以。基本上,逻辑分区的号码可达63号,因此,可以仅分一个主分区,并且将所有其他分区都给扩展分区,利用逻辑分区来进行其他的分区规划。

思考三:假如硬盘安装在IDE1的主盘,并且我想分区6个可以使用的硬盘分区,那么每个磁盘在Linux下面的代号是什么?

由于硬盘主分区+扩展分区最多可以有4个,因此,在Linux中,已经将分区表1~4先留下来了,如果只用了2主分区+扩展分区的话,那么将会突出两个分区号。再详细说明一下,假设将4主分区+扩展分区都用完了,那么硬盘的实际分区会如同下图所示。

 

实际上,可以使用的是/dev/hda1/dev/hda2/dev/hda3/dev/hda5/dev/hda6/dev/hda76个分区。至于/dev/hda4扩展分区本身仅是用来规划出让逻辑分区可用的磁盘空间而已(其实在这个分区最前面的扇区,会有一个特殊的块,称之为超级块,扩展分区指向的就是/dev/hda4的超级块处,这就是额外记录的那个分区表)。

那么,如果只想划分1个主分区与1个扩展分区呢?这个时候,磁盘分区会变成如下图所示。

看到木?因为1~4号被预留了,所以第一个逻辑分区的代号由5号开始,以此顺序增加磁盘号。其中,/dev/hda3/dev/hda4这两个代号则是空的被保留下来的代号。

抱歉!评论已关闭.